man3 changes provided by jpman project

Submitted by:	yuko@veltec.co.jp, jpman project <man-jp@jp.FreeBSD.org>
Obtained from:	http://veltec.co.jp/jman/
This commit is contained in:
Kazuo Horikawa 2002-03-09 15:23:45 +00:00
parent 5ef64e9b55
commit 961e281418
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12404
39 changed files with 2974 additions and 2905 deletions

View file

@ -1,3 +1,4 @@
# $FreeBSD$
MAN3 = _secure_path.3\
abort.3\
abs.3\
@ -17,7 +18,7 @@ MAN3 = _secure_path.3\
atof.3\
atoi.3\
atol.3\
auth_getval.3\
auth.3\
bcmp.3\
bcopy.3\
bindresvport.3\
@ -36,6 +37,7 @@ MAN3 = _secure_path.3\
ceil.3\
cfree.3\
cftime.3\
cipher.3\
clock.3\
com_err.3\
confstr.3\
@ -358,7 +360,7 @@ MAN3 = _secure_path.3\
time2posix.3\
times.3\
timezone.3\
tmpfile.3\
tmpnam.3\
toascii.3\
tolower.3\
toupper.3\
@ -389,7 +391,7 @@ MLINKS+= asinh.3 asinhf.3
MLINKS+= atan.3 atanf.3
MLINKS+= atan2.3 atan2f.3
MLINKS+= atanh.3 atanhf.3
MLINKS+= auth_getval.3 auth.3
MLINKS+= auth.3 auth_getval.3
MLINKS+= bitstring.3 bit_alloc.3
MLINKS+= bitstring.3 bit_clear.3
MLINKS+= bitstring.3 bit_decl.3
@ -436,6 +438,10 @@ MLINKS+= cam_cdbparse.3 csio_encode.3
MLINKS+= cam_cdbparse.3 csio_encode_visit.3
MLINKS+= ceil.3 ceilf.3
MLINKS+= cftime.3 ascftime.3
MLINKS+= cipher.3 encrypt.3
MLINKS+= cipher.3 setkey.3
MLINKS+= cipher.3 des_cipher.3
MLINKS+= cipher.3 des_setkey.3
MLINKS+= cos.3 cosf.3
MLINKS+= cosh.3 coshf.3
MLINKS+= crypt.3 des_cipher.3
@ -1191,8 +1197,8 @@ MLINKS+= termcap.3 tgoto.3
MLINKS+= termcap.3 tparm.3
MLINKS+= termcap.3 tputs.3
MLINKS+= time2posix.3 posix2time.3
MLINKS+= tmpfile.3 tempnam.3
MLINKS+= tmpfile.3 tmpnam.3
MLINKS+= tmpnam.3 tempnam.3
MLINKS+= tmpnam.3 tmpfile.3
MLINKS+= ttyname.3 isatty.3
MLINKS+= ttyname.3 ttyslot.3
MLINKS+= tzset.3 tzsetwall.3

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the American National Standards Committee X3, on Information
@ -15,8 +15,8 @@
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
@ -33,7 +33,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)atof.3 8.1 (Berkeley) 6/4/93
.\" @(#)atof.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/stdlib/atof.3,v 1.4.2.2 2001/03/06 16:46:02 ru Exp %
.\"
.\" $FreeBSD$
@ -75,4 +75,4 @@ strtod(nptr, (char **)NULL);
.Fn atof
´Ø¿ô¤Ï
.St -isoC
適合しています。
準拠しています。

View file

@ -1,8 +1,8 @@
.\"
.\"
.\" Copyright (c) 1998 Jordan Hubbard
.\"
.\"
.\" All rights reserved.
.\"
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
@ -22,28 +22,25 @@
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %Id: auth.3,v 1.1 1998/10/08 06:53:32 jkh Exp %
.\" "
.\"
.\" %FreeBSD: src/lib/libutil/auth.3,v 1.4.2.3 2001/07/22 12:07:18 dd Exp %
.\" $FreeBSD$
.\" "
.Dd October 7, 1998
.Os
.Dt auth_getval 3
.Dt AUTH_GETVAL 3
.Sh 名称
.Nm auth_getval
.Nd
.Pa /etc/auth.conf
から値を読み取る関数
.Sh ライブラリ
.Lb libutil
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <libutil.h>
.Ft char *
.Fn auth_getval "char *name"
.Pp
.Xr cc 1
コマンド行で
.Va -lutil
を付けてリンクすること。
.Fn auth_getval "const char *name"
.Sh 解説
関数
.Fn auth_getval
@ -54,8 +51,8 @@
できない場合は NULL を返します。
.Pp
.Sh 関連項目
.Xr properties_read 3 ,
.Xr properties_free 3 ,
.Xr properties_read 3 ,
.Xr property_find 3 ,
.Xr auth.conf 5
.Pp
@ -67,4 +64,3 @@
name=value
のペアが
含まれています。
.\" kuma

View file

@ -1,32 +1,103 @@
.\" @(#)bindresvport.3n 2.2 88/08/02 4.0 RPCSRC; from 1.7 88/03/14 SMI
.\" %FreeBSD: src/lib/libc/rpc/bindresvport.3,v 1.10.2.1 2000/12/08 13:49:29 ru Exp %
.\"
.\" $FreeBSD$
.Dd November 22, 1987
.Dd January 27, 2000
.Dt BINDRESVPORT 3
.Os
.Sh 名称
.Nm bindresvport
.Nm bindresvport ,
.Nm bindresvport_sa
.Nd 特権 IP ポートにソケットをバインドする
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <netinet/in.h>
.Fd #include <rpc/rpc.h>
.Ft int
.Fn bindresvport "int sd" "struct sockaddr_in **sin"
.Fn bindresvport "int sd" "struct sockaddr_in *sin"
.Ft int
.Fn bindresvport_sa "int sd" "struct sockaddr *sa"
.Sh 解説
.Nm bindresvport
.Nm bindresvport_sa
は、ソケット記述子を、特権
.Tn IP
ポート、すなわち範囲 0 1023 のポートに結合するために使用されます。
このルーチンは処理が正常に終了すると
0 を返し、そうでない場合は -1 を返し、エラーの原因を反映するように
.Va errno
が設定されます。
.Pp
ルートだけが特権ポートに結合できます。この呼び出しは他のユーザについては
処理失敗します。
.Pp
.Va sin
がヌルポインタでない場合、
.Va sin->sin_family
.Va sd
によって渡されるソケットのアドレスファミリで初期化する
必要があります。
sin->sin_port の値がゼロでない場合、
.Fn bindresvport
は、その特定のポートを
使用しようとします。それに失敗すると、別の特権付きポートを自動的に
選択します。
.\" kuma
は、指定したポートを使用しようとします。
それに失敗すると、別の特権付きポートを自動的に選択します。
.Pp
.Va sin
にヌルポインタを渡すことは正当です。
この場合、呼び出し側は
.Fn bindresvport
が拾ったポート番号を得ることができません。
.Pp
.Fn bindresvport
の関数プロトタイプは、
.Dv AF_INET
ソケットに特化しています。
.Fn bindresvport_sa
は、より中立的な関数プロトタイプを持ちますが、
正確に同じように動作します。両方の関数とも
正確に同じ挙動を示すことと、両方とも
.Dv AF_INET
ソケットと同様に、
.Dv AF_INET6
ソケットをサポートすることに注意してください。
.Sh 戻り値
.Fn bindresvport
.Fn bindresvport_sa
は、処理が成功したら値 0 を返します。そうでない場合は \-1 が返され、
エラーを示すために
.Va errno
が設定されます。
.Sh エラー
.Fn bindresvport
.Fn bindresvport_sa
関数は次の場合に失敗します。
.Bl -tag -width Er
.It Bq Er EBADF
.Fa sd
が有効な記述子ではありません。
.It Bq Er ENOTSOCK
.Fa sd
はソケットではありません。
.It Bq Er EADDRNOTAVAIL
指定されたアドレスはこのローカルマシンから利用可能ではありません。
.It Bq Er EADDRINUSE
指定されたアドレスはすでに使用中です。
.It Bq Er EINVAL
ソケットはすでにあるアドレスにバインドされています、または、
ソケットファミリと指定されたアドレスのファミリとが一致しません。
.It Bq Er EACCES
要求されたアドレスは保護されており、現在のユーザは、そこに
アクセスするには不適切なパーミッションを持っています。
.It Bq Er EFAULT
.Fa name
パラメータは、ユーザアドレス空間の正当な部分に存在しません。
.It Bq Er ENOBUFS
システムには、この操作を実行するために十分な資源がありません。
.It Bq Er EPFNOSUPPORT
システムにプロトコルファミリが設定されていないか、
プロトコルファミリに対する実装が存在しないか、
引数の間でアドレスファミリが一致しません。
.El
.Sh 関連項目
.Xr bind 2 ,
.Xr socket 2 ,
.Xr rresvport 3 ,
.Xr rresvport_af 3

View file

@ -32,19 +32,20 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)bitstring.3 8.1 (Berkeley) 7/19/93
.\" %Id: bitstring.3,v 1.4 1997/04/13 14:19:58 bde Exp %
.\" %FreeBSD: src/share/man/man3/bitstring.3,v 1.6.2.4 2001/08/17 13:08:36 ru Exp %
.\"
.\" $FreeBSD$
horikawa Exp $
.Dd July 19, 1993
.Dt BITSTRING 3
.Os BSD 4
.Os
.Sh ̾¾Î
.Nm bit_alloc ,
.Nm bit_clear ,
.Nm bit_decl ,
.Nm bit_ffs ,
.Nm bit_nclear ,
.Nm bit_nset,
.Nm bit_nset ,
.Nm bit_set ,
.Nm bitstr_size ,
.Nm bit_test
@ -164,10 +165,11 @@
#include <limits.h>
#include <bitstring.h>
...
\&...
#define LPR_BUSY_BIT 0
#define LPR_FORMAT_BIT 1
#define LPR_DOWNLOAD_BIT 2
\&...
#define LPR_AVAILABLE_BIT 9
#define LPR_MAX_BITS 10

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1990, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Chris Torek.
@ -13,8 +13,8 @@
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
@ -31,7 +31,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)bstring.3 8.1 (Berkeley) 6/4/93
.\" @(#)bstring.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/string/bstring.3,v 1.3.2.2 2001/03/06 16:46:04 ru Exp %
.\"
.\" $FreeBSD$
@ -72,12 +72,13 @@
.Ft void *
.Fn memset "void *b" "int c" "size_t len"
.Sh 解説
これらの関数は、さまざまな長さのバイト文字列を操作します。
これらは、
これらの関数は、さまざまな長さのバイトストリングに作用します。これらは、
.Xr string 3
にリストされたルーチンのように終了のヌルバイトをチェックしません。
にリストされたルーチンのように終了の
ヌルバイトをチェック
しません。
.Pp
詳細については、それぞれのマニュアルページを参照してください。
詳細については、専用のマニュアルページを参照してください。
.Sh 関連項目
.Xr bcmp 3 ,
.Xr bcopy 3 ,
@ -90,25 +91,29 @@
.Xr memset 3
.Sh 規格
関数
.Fn memchr ,
.Fn memcmp ,
.Fn memcpy ,
.Fn memchr
.Fn memcmp
.Fn memcpy
.Fn memmove
および
および
.Fn memset
.St -isoC
適合しています。
準拠しています。
.Sh 歴史
関数
.Fn bzero
関数
.Fn memccpy
関数
.Bx 4.3
登場しました。
現れました。関数
.Fn bcmp
関数
.Fn bcopy
関数
.Bx 4.2
登場しました。
現れました。

View file

@ -30,91 +30,95 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)btree.3 8.4 (Berkeley) 8/18/94
.\"
.\" %FreeBSD: src/lib/libc/db/man/btree.3,v 1.3.2.1 2001/01/12 08:30:09 ru Exp %
.\" $FreeBSD$
.\"
.TH BTREE 3 "August 18, 1994"
.\" .UC 7
.SH 名称
btree \- btree データベースアクセス方式
.SH 書式
.nf
.ft B
#include <sys/types.h>
#include <db.h>
.ft R
.fi
.SH 解説
.Dd August 18, 1994
.Dt BTREE 3
.Os
.Sh 名称
.Nm btree
.Nd "btree データベースアクセス方式"
.Sh 書式
.Fd "#include <sys/types.h>"
.Fd "#include <db.h>"
.Sh 解説
ルーチン
.IR dbopen
.Fn dbopen
は、データベースファイルへのライブラリインタフェースです。
サポートされているファイル形式の 1 つは btree ファイルです。
サポートされているファイル形式の 1 つは
.Nm
ファイルです。
データベースアクセス方式の一般的な説明は
.IR dbopen(3)
.Xr dbopen 3
にあります。このマニュアルページは、
btree に固有の情報についてだけ説明しています。
.PP
btree データ構造は、関連するキー / データのペアを格納する、
.Nm
に固有の情報についてだけ説明しています。
.Pp
.Nm
データ構造は、関連するキー / データのペアを格納する、
ソート済みのバランスのとれたツリー構造です。
.PP
.I dbopen
に提供される btree アクセス方式に固有のデータ構造は、
次のように <db.h> インクルードファイルに定義されています。
.PP
.Pp
.Fn dbopen
に提供される
.Nm
アクセス方式に固有のデータ構造は、
次のように
.Aq Pa db.h
インクルードファイルに定義されています。
.Bd -literal
typedef struct {
.RS
u_long flags;
.br
u_int cachesize;
.br
int maxkeypage;
.br
int minkeypage;
.br
u_int psize;
.br
int (*compare)(const DBT *key1, const DBT *key2);
.br
size_t (*prefix)(const DBT *key1, const DBT *key2);
.br
int lorder;
.RE
u_long flags;
u_int cachesize;
int maxkeypage;
int minkeypage;
u_int psize;
int (*compare)(const DBT *key1, const DBT *key2);
size_t (*prefix)(const DBT *key1, const DBT *key2);
int lorder;
} BTREEINFO;
.PP
.Ed
.Pp
この構造体のエレメントは次のとおりです。
.TP
flags
.Bl -tag -width indent
.It Va flags
flag の値は以降の値の
.IR or
.Em or
(論理和) を取ることによって定義されます。
.RS
.TP
R_DUP
.Bl -tag -width indent
.It Dv R_DUP
ツリー内部に重複したキーを許容します。
すなわち、挿入するキーが
ツリー内に既に存在する場合にも挿入を許容します。
.IR dbopen(3)
.Xr dbopen 3
に記述されたデフォルトの動作としては、
新しいキーを挿入するときに一致するキーを上書きするか、
または R_NOOVERWRITE フラグが指定されている場合は処理失敗します。
R_DUP フラグは R_NOOVERWRITE フラグによって上書きされ、
R_NOOVERWRITE フラグが指定されている場合は、
または
.Dv R_NOOVERWRITE
フラグが指定されている場合は処理失敗します。
.Dv R_DUP
フラグは
.Dv R_NOOVERWRITE
フラグによって上書きされ、
.Dv R_NOOVERWRITE
フラグが指定されている場合は、
重複するキーをツリーに挿入しようとする処理が失敗します。
.IP
.Pp
データベースに重複したキーが含まれている場合、
.I get
.Va get
ルーチンを使用すると、
キー / データのペアの取り出しの順序は未定義になります。
しかし、R_CURSOR フラグを設定して
.I seq
.Va seq
ルーチンを呼び出すと、
重複したキーの論理的な ``最初'' が必ず返されます。
.RE
.TP
cachesize
重複したキーの論理的な
.Dq 最初
が必ず返されます。
.El
.It Va cachesize
メモリキャッシュの示唆する最大サイズ (バイト単位)。
この値は
.B 単に
.Em 単に
アドバイスにすぎず、
アクセス方式は処理失敗せずに多くのメモリを割り振ります。
各検索がツリーのルートページを調査するので、
@ -125,34 +129,40 @@ cachesize
明らかに、キャッシュを使用すると、
ツリーを修正している間にシステムがクラッシュした場合、
データが破損または喪失される見込みは増大します (増大するだけです)。
.I cachesize
.Va cachesize
が 0 (サイズが指定されていない) の場合、
デフォルトのキャッシュが使用されます。
.TP
maxkeypage
.It Va maxkeypage
1 ページに格納されるキーの最大数。現時点では実現されていません。
.TP
minkeypage
.\" The maximum number of keys which will be stored on any single page.
.\" Because of the way the
.\" .Nm
.\" data structure works,
.\" .Va maxkeypage
.\" must always be greater than or equal to 2.
.\" If
.\" .Va maxkeypage
.\" is 0 (no maximum number of keys is specified) the page fill factor is
.\" made as large as possible (which is almost invariably what is wanted).
.It Va minkeypage
1 ページに格納されるキーの最少数。
この値を使用して、
オーバフローページにどのキーが格納されるかを判定します。
すなわち、キーまたはデータ構造が、minkeypage 値で除算された
pagesize より長い場合は、ページ自体にではなく、
オーバフローページに格納されます。
.I minkeypage
.Va minkeypage
が 0 (キーの最少数が指定されていない) の場合、
値 2 が使用されます。
.TP
psize
.It Va psize
ページサイズは、ツリー内のノードに使用されるページのサイズ
(バイト単位)です。最少ページサイズは 512 バイトであり、
最大ページサイズは 64K です。
.I psize
.Va psize
が 0 (ページサイズが指定されていない) の場合、
ページサイズは、基層となっている
ファイルシステム入出力ブロックサイズを基礎にして選択されます。
.TP
compare
.It Va compare
compare はキー比較関数です。
最初のキー引数が 2 番めのキー引数より小さいと考えられるときは、
0 より小さい整数を返す必要があります。
@ -162,79 +172,110 @@ compare
0 より大きい整数を返す必要があります。
指定のツリーについては、ツリーが開かれるたびに、
同じ比較関数を使用する必要があります。
.I compare
がヌルの場合 (比較関数が指定されない場合)、
.Va compare
.Dv NULL
の場合 (比較関数が指定されない場合)、
キーは辞書的に比較され、
短いキーは長いキーより小さいと見なされます。
.TP
prefix
prefix は接頭語比較関数です。
.It Va prefix
.Va prefix
は接頭語比較関数です。
指定すると、このルーチンは、2 番めのキーとなる引数のバイト数を返します。
これは、2 番めの引数が1 番めの引数より大きいことを判定するために必要です。
キーが等しい場合は、キーの長さが返されるはずです。
このルーチンの便利さはきわめてデータに依存します。
しかし、データセットによっては、
ツリーのサイズと検索時間が大幅に削減できることもあることに注意してください。
.I prefix
がヌル (接頭語関数が指定されていない) であって、
.B しかも
.Va prefix
.Dv NULL
(接頭語関数が指定されていない) であって、
.Em しかも
比較関数が指定されない場合は、
デフォルトの辞書的な比較ルーチンが使用されます。
.I prefix
がヌルであり、しかも比較ルーチンが指定されている場合、
.Va prefix
.Dv NULL
であり、しかも比較ルーチンが指定されている場合、
比較は行われません。
.TP
lorder
.It Va lorder
格納されたデータベースメタデータ内の整数のバイト順序。
数字は整数としての順序を表すはずです。
たとえば、ビッグエンディアン順では数字 4,321 になります。
.I lorder
.Va lorder
が 0 の (順序が指定されていない) 場合、
現在のホスト順序が使用されます。
.PP
.El
.Pp
ファイルが既に存在している場合
(しかも O_TRUNC フラグが指定されていない場合)、
パラメータフラグ lorder と psize について指定された値は、
(しかも
.Dv O_TRUNC
フラグが指定されていない場合)、
パラメータ
.Va flags ,
.Va lorder ,
.Va psize
について指定された値は、
ツリーが作成されたときに使用された値のために無視されます。
.PP
.Pp
ツリーの前方シーケンシャル走査は、
最も小さいキーから最も大きいキーに向かいます。
.PP
.Pp
ツリーからキー / データのペアを削除することによって解放された空間は、
再び要求されることはありませんが、
再使用のために利用できるようにされるのが普通です。
すなわち、btree 記憶域は成長のみです。
すなわち、
.Nm
記憶域は成長のみです。
唯一の解決策は、過度な削除を避けること、
または既存のツリーの走査から定期的に新しいツリーを作成することです。
.PP
btree 内の検索、挿入、および削除はすべて、
.Pp
.Nm
内の検索、挿入、および削除はすべて、
基底が平均のフィル要因である基底 N の O の対数で完了します。
順序付けられたデータを btree に挿入すると、
順序付けられたデータを
.Nm
に挿入すると、
フィル要因が低くなることがよくあります。
この実装では、順序付けられた挿入が最良のケースとなり、
通常のページフィル要因よりはるかに良い結果になるように修正してあります。
.SH 誤り
.I btree
.Sh エラー
.Nm
アクセス方式ルーチンは、ライブラリルーチン
.IR dbopen(3)
.Xr dbopen 3
について指定したエラーの場合、処理失敗し、
.I errno
.Va errno
を設定する可能性があります。
.SH 関連項目
.IR dbopen (3),
.IR hash (3),
.IR mpool (3),
.IR recno (3)
.sp
.IR "The Ubiquitous B-tree" ,
Douglas Comer, ACM Comput. Surv. 11, 2 (June 1979), 121-138.
.sp
.IR "Prefix B-trees" ,
Bayer and Unterauer, ACM Transactions on Database Systems, Vol. 2, 1
(March 1977),11-26.
.sp
.IR "The Art of Computer Programming Vol. 3: Sorting and Searching" ,
D.E. Knuth, 1968, pp 471-480.
.SH バグ
.Sh 関連項目
.Xr dbopen 3 ,
.Xr hash 3 ,
.Xr mpool 3 ,
.Xr recno 3
.Rs
.%T "The Ubiquitous B-tree"
.%A Douglas Comer
.%J "ACM Comput. Surv. 11"
.%N 2
.%D June 1979
.%P 121-138
.Re
.Rs
.%A Bayer
.%A Unterauer
.%T "Prefix B-trees"
.%J "ACM Transactions on Database Systems"
.%N 1
.%V Vol. 2
.%D March 1977
.%P 11-26
.Re
.Rs
.%B "The Art of Computer Programming Vol. 3: Sorting and Searching"
.%A D. E. Knuth
.%D 1968
.%P 471-480
.Re
.Sh バグ
ビッグエンディアンおよびリトルエンディアンのバイト順序だけがサポート
されています。

View file

@ -25,11 +25,11 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %Id: cam.3,v 1.1 1998/10/14 06:20:36 ken Exp %
.\" %FreeBSD: src/lib/libcam/cam.3,v 1.5.2.5 2001/08/17 15:42:55 ru Exp %
.\"
.\" $FreeBSD$
.Dd October 10, 1998
.Os FreeBSD 3.0
.Os
.Dt CAM 3
.Sh 名称
.Nm cam_open_device ,
@ -46,7 +46,10 @@
.Nm cam_device_copy ,
.Nm cam_get_device
.Nd CAM ユーザライブラリ
.Sh ライブラリ
.Lb libcam
.Sh 書式
.Fd #include <stdio.h>
.Fd #include <camlib.h>
.Ft struct cam_device *
.Fo cam_open_device
@ -309,10 +312,7 @@ CAM
は、
.Xr malloc 3
を使用して
CCB (
.Xr ccb 4
を参照
)
CCB
を割り振り、
.Va cam_device
構造の値を使用して
@ -388,13 +388,10 @@ CCB
.Pp
.Bl -tag -width 1234 -compact
.It /dev/foo0a
.It /dev/rfoo0a
.It /dev/rfoo1s2c
.It /dev/foo1s2c
.It foo0
.It foo0a
.It rfoo0
.It rfoo0a
.It nrfoo0
.It nfoo0
.El
.Pp
.Fn cam_get_device
@ -464,14 +461,14 @@ CCB
.Sh 関連項目
.Xr cam_cdbparse 3 ,
.Xr pass 4 ,
.Xr camcontrol 8 ,
.Xr camcontrol 8
.Pp
.Sh 歴史
CAM ライブラリは最初に
.Fx 3.0
で現れました。
.Sh 作者
.An Kenneth Merry Aq ken@FreeBSD.ORG
.An Kenneth Merry Aq ken@FreeBSD.org
.Sh バグ
.Fn cam_open_device
は、渡された

View file

@ -25,8 +25,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %Id: cam_cdbparse.3,v 1.1 1998/10/14 06:20:36 ken Exp %
.\" %FreeBSD: src/lib/libcam/cam_cdbparse.3,v 1.3.2.9 2001/08/17 15:42:55 ru Exp %
.\" $FreeBSD$
p %
.\"
.\" This man page borrows heavily from the old scsi(3) man page, which had
.\" the following copyright:
@ -63,7 +64,7 @@
.\"
.\"
.Dd October 13, 1998
.Os FreeBSD 3.0
.Os
.Dt CAM_CDBPARSE 3
.Sh 名称
.Nm csio_build ,
@ -76,7 +77,10 @@
.Nm csio_encode_visit ,
.Nm buff_encode_visit
.Nd CAM ユーザライブラリ SCSI バッファパーズルーチン
.Sh ライブラリ
.Lb libcam
.Sh 書式
.Fd #include <stdio.h>
.Fd #include <camlib.h>
.Ft int
.Fo csio_build
@ -159,18 +163,20 @@ CAM
バッファ
/CDB
エンコードおよびデコードルーチンは、古い
.Fx
.Tn SCSI
レイヤの、類似した名前の
.Va scsireq_ Ns *
関数で書かれたユーザランド
.Tn SCSI
アプリケーション用の比較的簡単なパスを提供します。
アプリケーションに対し、比較的簡単に新しいインタフェースへの
移行できる道筋を提供します。
.Pp
これらの関数は、新しいアプリケーションで使われる可能性がありますが、ユーザ
は、
これらの関数は、新しいアプリケーションで使っても構いませんが、
ユーザは、
.Xr cam 3
ライブラリに組み入れられた関数を構築する各種 SCSI CCB 構築関数を
使用する方が簡単と考えることもあります (
使用する方が簡単だということに気づくでしょう (
たとえば、
.Fn cam_fill_csio ,
.Fn scsi_start_stop ,
@ -251,10 +257,10 @@ typedef enum {
} ccb_flags;
.Ed
.Pp
複数のフラグOR (論理和) を取る必要があります。
どの CCB フラグを使用することもできますが、
以降の重要ないくつかのフラグは使用する
意味がありません
複数のフラグを指定する場合、OR (論理和) を取る必要があります。
どの CCB フラグを使用することもできます
以降の重要ないくつかのフラグについては特に説明しておく価値が
あります
.Pp
.Bl -tag -width CAM_PASS_ERR_RECOVER
.It CAM_DIR_IN
@ -267,13 +273,13 @@ typedef enum {
.It CAM_DIR_NONE
このコマンドについて転送されるデータはないことを示します。
.It CAM_DEV_QFRZDIS
デバイス待ち行列を無効にし、エラー回復メカニズムとして
凍結します。
デバイス待ち行列の、エラー回復メカニズムとしての凍結を
無効にします。
.It Dv CAM_PASS_ERR_RECOVER
.Xr pass 4
ドライバにエラー回復を有効にするように
通知します。デフォルトではエラー回復を実行されません。すなわち、このフラグ
がない場合は再試行カウントは重要視されません。
がない場合は再試行カウントは意味を持ちません。
.It CAM_DATA_PHYS
.Fa data_ptr
に入っているアドレスが、仮想アドレスではなく物理
@ -289,18 +295,18 @@ typedef enum {
指示されていない限り、再試行カウントは無視されます。
.Pp
.Fa timeout
は、指定のコマンドが完了するのをどのくらい待機するかをカーネルに
は、指定のコマンドが完了するまでどのくらい待機するかをカーネルに
通知します。時間が切れ、しかもコマンドが完了していないと、
CCB
は、該当する
エラーステータスでカーネルからります。
エラーステータスでカーネルからります。
.Pp
.Fa cmd_specis
は SCSI CDB を構築するのに使用される CDB 形式指示子です。
このテキストストリングは、フィールド指示子のリストで構成されます。
フィールド指示子は、
各 CDB フィールド用の値
(値を変数引数リスト内の次の引数から取ったことを示すことも含む)、
(値を変数引数リスト内の次の引数から取るべきことを示すことも含む)、
フィールドの幅
(ビット単位またはバイト単位)、
およびオプションの名前を指定します。
@ -309,9 +315,7 @@ CCB
.Pp
オプションの名前は、フィールド指定子の最初の部分であり、中括弧で
囲まれます。次の例で中括弧で囲まれたテキストは名前です。
.Bd -literal -offset indent
.Fa "{PS} v:b1 {Reserved} 0:b1 {Page Code} v:b6 # Mode select page"
.Ed
.Dl "{PS} v:b1 {Reserved} 0:b1 {Page Code} v:b6 # Mode select page"
.Pp
このフィールド指定子には、3 つのフィールドがあります。
1 ビットのフィールドが
@ -334,7 +338,7 @@ CDB
1 バイト値が
CDB
の使用されていない次のバイトにコピーされます。文字
中の次の未使用バイトにコピーされます。文字
.Fa v
使用されているとき、次の整数引数が変数引数リストから取られ、その値が
@ -349,7 +353,8 @@ CDB
たとえば、
.Fa 3:4 ,
.Fa 3:b4 ,
.Fa 3:i3 )
.Fa 3:i3 ,
.Fa v:i3 )
は、指定のビットまたは
バイト幅のフィールドを指定します。定数値、または
(V 指定子の場合)
@ -377,17 +382,16 @@ CDB
文字
.Fa i
の後に
1
2
3 または
1,
2,
3, または
4 が続いたフィールド幅指示子は、
.Tn SCSI
バイト順に
(MSB が先頭)
バイト順 (MSB が先頭) に
スワップしなければならない
1
2
3 または
1,
2,
3, または
4 バイトの
整数値を示します。
.Pp
@ -417,7 +421,7 @@ CDB
2 つの引数を取ります。
.Bl -tag -width field_name
.It Fa gethook
起動のたびに
関数呼び出しのたびに
.Fn arg_get
関数に渡されます。これによって、
.Fn arg_get
@ -439,7 +443,7 @@ CDB
.Fn csio_build
のコマンド指示子処理に類似していますが、
.Fa csio->data_ptr
によって指されるデータからデータを取り出す点異なります。
によって指されるデータからデータを取り出す点異なります。
stdarg
リストは、整数値ではなく整数を指すポインタです。
シークフィールドタイプと抑制修飾子が追加されます。
@ -451,20 +455,20 @@ stdarg
または
.Fa *b4 )
は、フィールドからの割り当てを抑制し、データ内のバイトまたは
ビットをスキップするのに使用できます。これらを
ビットをスキップするのに使用できます。これにより
arg
リスト内のダミー変数に
コピーする必要はありません
コピーする必要がなくなります
.Pp
シークフィールドタイプ
.Fa s
によって、データをスキップできます。
これは、'+' 符号の存在があるかないかを基礎にして
データ内の絶対位置 (
.Fa s3 )
これは、'+' 符号の存在の有無に基づき
データ内の絶対位置
.Pq Fa s3
または
相対位置 (
.Fa s+3 )
相対位置
.Pq Fa s+3
を探します。
シーク値は
.Fa v
@ -494,8 +498,8 @@ arg
関数に渡される値を指す void ポインタです。
.It Fa count
.Fn arg_put
関数に渡される引数の数です。
現時点では、これは 1 にしか設定できません
関数に渡される値のサイズです。
引数のフォーマットにより大きさの単位が決まります
.It Fa name
フィールドのテキスト記述です。ただし
.Fa fmt
@ -570,7 +574,9 @@ arg
.Pp
.Sh 歴史
これらの関数の CAM バージョンは、
古い FreeBSD の
古い
.Fx
.Tn SCSI
レイヤ用に実現された類似の関数を基礎にしています。
.Tn SCSI
@ -591,8 +597,12 @@ Peter Dufault
新しい CCB データ構造は、
CAM-2 および CAM-3 仕様に由来しています。
.Pp
Peter Dufault は、386bsd で SGI のインタフェースのクローンを実現しました。
これがオリジナルの FreeBSD
.An Peter Dufault
は、
.Bx 386
で SGI のインタフェースのクローンを実現しました。
これがオリジナルの
.Fx
.Tn SCSI
ライブラリと関連カーネル ioctl に至るものになりました。
互換性の必要がある場合は、dufault@hda.com に連絡してください。
@ -604,12 +614,13 @@ CAM
CDB および
.Tn SCSI
CCB のデータバッファ部分の両方をエンコードする関数はおそらく
あるはずです
必要でしょう
.Xr camcontrol 8
で任意のコマンド実行コードを実現している間に私はこれを発見しましたが、
で任意のコマンド実行コードを実現している間に私はこの必要性に
気づきましたが、
そのような関数を実現する時間がまだありません。
.Pp
CCB フラグの説明には本当はここに属さないものがあります。
それらは一般の CCB マニュアルページに属します。
そのマニュアルページはまだ書かれていないので、
ここでの短い説明で間に合います
ここでの短い説明で間に合わせざるを得ません

View file

@ -39,7 +39,7 @@
.Sh ĚžžÎ
.Nm ceil ,
.Nm ceilf
.Nd x 以上の最も小さな整数値への切上げ
.Nd x 以上で最も小さい整数への切上げ
.Sh ˝ńź°
.Fd #include <math.h>
.Ft double
@ -48,11 +48,13 @@
.Fn ceilf "float x"
.Sh ˛ňŔâ
.Fn ceil
および
関数と
.Fn ceilf
関数は、(倍精度数として表現される)
関数は、
.Fa x
以上の最も小さな整数値を返します。
以上の最も小さい整数値
(倍精度数として表現される)
を返します。
.Sh ´ŘϢšŕĚÜ
.Xr abs 3 ,
.Xr fabs 3 ,
@ -62,8 +64,6 @@
.Xr rint 3
.Sh ľŹłĘ
.Fn ceil
関数は
関数は
.St -isoC
に適合しています。
に準拠しています。

View file

@ -23,23 +23,23 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %Id: cfree.3,v 1.3 1997/02/22 15:06:02 peter Exp %
.\" " <- this is for hilit19 :)
.\" %FreeBSD: src/lib/libcompat/4.3/cfree.3,v 1.4.2.1 2000/11/22 13:32:18 ben Exp %
.\" $FreeBSD$
.\" " <- this is for hilit19 :)
.Dd November 23, 1995
.Dt CFREE 3
.Os
.Sh 名称
.Nm cfree
.Nd 割り振られたメモリの解放
.Sh ライブラリ
.Lb libcompat
.Sh 書式
.Ft void
.Fn cfree "void *"
.Sh 解説
.Bf -symbolic
cfree 関数は時代遅れであると考えられています。
.br
これは互換性ライブラリ libcompat により利用できます。
.Ef
.Pp
.Nm

View file

@ -1,10 +1,10 @@
.\"
.\"
.\" Copyright (c) 1994, 1995 Joerg Wunsch
.\"
.\"
.\" All rights reserved.
.\"
.\"
.\" This program is free software.
.\"
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
@ -19,7 +19,7 @@
.\" 4. The name of the developer may not be used to endorse or promote
.\" products derived from this software without specific prior written
.\" permission.
.\"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
@ -30,9 +30,9 @@
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\"
.\" %Id: cftime.3,v 1.4 1997/03/19 00:58:04 bde Exp %
.\"
.\"
.\" %FreeBSD: src/lib/libcompat/4.1/cftime.3,v 1.6.2.3 2001/07/22 12:07:04 dd Exp %
.\"
.\" $FreeBSD$
.Dd June 15, 1993
@ -42,6 +42,8 @@
.Nm cftime
.Nm ascftime
.Nd 日付と時刻の文字列への変換
.Sh ライブラリ
.Lb libcompat
.Sh 書式
.Fd #include <time.h>
.Ft int
@ -50,23 +52,25 @@
.Fn ascftime "char *s" "const char *format" "const struct tm *tmptr"
.Sh 解説
.Bf -symbolic
.Nm cftime
.Fn cftime
関数と
.Nm ascftime
関数は、strftime(3) によって旧式なものとなっています。
これらは互換性ライブラリ libcompat により利用できます。
.Fn ascftime
関数は、
.Xr strftime 3
によって旧式なものとなっています。
.Ef
.Pp
関数
.Nm cftime
.Fn cftime
および
.Nm ascftime
.Fn ascftime
はできるだけ使用しないでください。
バッファのオーバーフロー状態をチェックする方法がないからです。代わりに
バッファのオーバーフロー状態をチェックする方法がないからです。
代わりに
.Xr strftime 3
を使用してください。
.Nm ascftime
.Pp
.Fn ascftime
.Xr strftime 3
とほとんど同じです。ただし、最大バッファ長を指定するパラメータがないことと、
@ -76,8 +80,8 @@
パラメータがデフォルトで
.Dq %C
になるという点だけは異なります。
.Nm cftime
.Pp
.Fn cftime
は同じ処理を行ないますが、指定された
.Fa clock
を変換するために最初に
@ -85,15 +89,13 @@
を起動してから、
.Fa format
引数で要求されているような変換を実行します。
.Sh 戻り値
.Nm cftime
.Sh 返却値
.Fn cftime
関数と
.Nm ascftime
.Fn ascftime
関数は、出力バッファ
.Fa s
に書き込まれた文字数を返します。その場合、末尾のヌル文字は数えません。
.Sh 関連項目
.Xr localtime 3 ,
.Xr strftime 3

View file

@ -0,0 +1,150 @@
.\" FreeSec: libcrypt for NetBSD
.\"
.\" Copyright (c) 1994 David Burren
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 4. Neither the name of the author nor the names of other contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/secure/lib/libcipher/cipher.3,v 1.6.2.1 2001/03/06 12:00:18 ru Exp %
.\" $FreeBSD$
.\"
.\" Manual page, using -mandoc macros
.\"
.Dd March 9, 1994
.Dt CIPHER 3
.Os "FreeSec 1.0"
.Sh 名称
.Nm setkey ,
.Nm encrypt ,
.Nm des_setkey ,
.Nm des_cipher
.Nd DES 暗号化
.Sh ライブラリ
.Lb libcipher
.Sh 書式
.Fd #include <unistd.h>
.Ft int
.Fn setkey "const char *key"
.Ft int
.Fn encrypt "char *block" "int flag"
.Ft int
.Fn des_setkey "const char *key"
.Ft int
.Fn des_cipher "const char *in" "char *out" "long salt" "int count"
.Sh 解説
.Fn encrypt ,
.Fn setkey ,
.Fn des_setkey ,
.Fn des_cipher
関数は、
.Tn DES
アルゴリズムへのアクセス手段を提供します。
.Fn setkey
には、バイナリ値 (数値 0 または 1) を持つ 64バイトの配列を渡します。
この配列から 56 ビットの鍵が取り出されます。
これは、配列を 8 バイトのグループに分割し、各グループの最後のビットを
無視することで行ないます。
このビットは DES によりバイトパリティチェックのために予約されていますが、
これらの関数はこのビットを無視します。
.Pp
.Fn encrypt
の引数
.Fa block
もまた、バイナリ値を持つ 64 バイトの配列です。
.Fa flag
の値が 0 の場合、
.Fa block
は暗号化されます。それ以外の場合は復号化されます。
.Fn setkey
により指定した鍵を使い、配列の値を処理した後で、
処理結果は元の配列
.Fa block
に返されます。
.Pp
.Fn des_setkey
の引数は長さ 8 のキャラクタの配列です。
各キャラクタの最下位ビット (パリティビット) は無視され、
残りのビットをくっつけて 56 ビットの鍵を形成します。
.Fn des_cipher
関数は
.Fa count
.Xr abs 3
.Tn DES
を繰り返して、
.Fa in
にある 8 キャラクタに格納された 64 ビットの値を暗号化 (
.Fa count
が負の場合は復号化) し、
結果の 64 ビットを 8 キャラクタにして
.Fa out
(これは、
.Fa in
と同じ場所でも構いません)
に格納します。
.Fa salt
.Tn DES
アルゴリズムに対し、16777216 通りまたは 4096 通り
(つまり、24 ビットまたは 12 ビット)
の中から 1 通りという不規則性を導入します (
.Ar salt
のビット
.Em i
が設定されている場合、
.Tn DES
E-box 出力中のビット
.Em i
とビット
.Em i+24
とが交換されます) 。
.Pp
.Fn setkey ,
.Fn encrypt ,
.Fn des_setkey ,
.Fn des_cipher
関数は処理に成功した場合 0 を返し、失敗した場合 1 を返します。
.Pp
.Fn setkey
.Fn des_setkey
関数は同じ鍵空間を操作します。
.Sh 関連項目
.Xr login 1 ,
.Xr passwd 1 ,
.Xr crypt 3 ,
.Xr getpass 3 ,
.Xr passwd 5
.Sh 歴史
このライブラリ (FreeSec 1.0) は、アメリカ合衆国のみで使える
.Nx
libcrypt 暗号化ライブラリに対して、そのような障害のない置き換えとして
アメリカ合衆国の外で開発されました。
ユーザは、このコード (とこのライブラリを静的リンクしたプログラム) は
合衆国の外に輸出できないことを理解しておかねばなりません。もっとも、
輸入できることは明らかなのですが。
.Sh 作者
.An David Burren Aq davidb@werj.com.au

View file

@ -1,7 +1,7 @@
.\" Copyright (c) 1988 Massachusetts Institute of Technology,
.\" Student Information Processing Board. All rights reserved.
.\"
.\" %Header: /home/ncvs/src/lib/libcom_err/com_err.3,v 1.1.1.1 1995/01/14 22:23:41 wollman Exp %
.\" %FreeBSD: src/contrib/com_err/com_err.3,v 1.1 1999/09/04 09:48:58 markm Exp %
.\"
.\" $FreeBSD$
.\"

View file

@ -27,341 +27,279 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %Id: crypt.3,v 1.6 1997/02/22 14:40:30 peter Exp %
.\" %FreeBSD: src/lib/libcrypt/crypt.3,v 1.6.2.10 2001/08/17 15:42:57 ru Exp %
.\" $FreeBSD$
.\"
.\" Manual page, using -mandoc macros
.\"
.\" $FreeBSD$
.Dd March 9, 1994
.Dd January 19, 1997
.Dt CRYPT 3
.Os
.Sh 名称
.Nm crypt ,
.Nm setkey ,
.Nm encrypt ,
.Nm des_setkey ,
.Nm des_cipher
.Nd DES 暗号化
.Nm crypt
.Nd トラップドア暗号化
.Sh ライブラリ
.Lb libcrypt
.Sh 書式
.Fd #include <unistd.h>
.Ft char *
.Fn crypt "const char *key" "const char *setting"
.Fn crypt "const char *key" "const char *salt"
.Ft const char *
.Fn crypt_get_format "void"
.Ft int
.Fn setkey "const char *key"
.Ft int
.Fn encrypt "char *block" "int flag"
.Ft int
.Fn des_setkey "const char *key"
.Ft int
.Fn des_cipher "const char *in" "char *out" "long salt" "int count"
.Fn crypt_set_format "const char *string"
.Sh 解説
.Fn crypt
関数は、パスワードの暗号化を行います。これは
関数は、パスワードのハッシュ化を行ない、キー検索の試みを
思いとどまらせるためのコードを付加します。
ハッシュ化には異なるアルゴリズムを使用することができます。
.\"
.\" NOTICE:
.\" If you add more algorithms, make sure to update this list
.\" and the default used for the Traditional format, below.
.\"
現在含まれるアルゴリズムは、
.Tn NBS
データ暗号化規格
(NBS Data Encryption Standard)
に由来するものです。キー検索の試みを
防止するために、その他のコードが追加されています。
.Nm crypt
の最初の引数は
.Dv NUL
で終了するストリングです
(
通常は、ユーザが入力したパスワード
)
2 番めの
引数は、長さが
9 バイトのキャラクタ配列であり、アンダースコア
(``_'')
に、
4 バイトの反復カウントと
4 バイトの
salt
が続いたもので構成されます。反復
.Tn Data Encryption Standard (DES) ,
.Tn MD5 ,
.Tn Blowfish
です。
.Tn DES
.Tn Blowfish
がインストールされているかどうか、また、
デフォルトを変更するために
.Fn crypt_set_format
がすでに呼び出されているかどうかにより、
使用されるアルゴリズムは salt
(モジュール化暗号フォーマット(Modular Crypt Format(MCF)) に従います)
のフォーマットに依存します。
.Pp
.Nm
の最初の引数はハッシュ化のためのデータ (通常はパスワードです) で、
ヌル文字で終了する文字列です。
2 番めの引数は salt で、次の 3 個のうちのいずれかの形式です。
.Pp
.Bl -tag -width Traditional -compact -offset indent
.It Extended
アンダースコア
.Pq Dq _
で始まる場合、鍵の解釈も salt の解釈もともに、次に概要を説明する
.Tn DES
拡張形式を使用します。
.It Modular
文字列
.Dq $digit$
で始まる場合、次に概要を説明する
モジュール化暗号フォーマット (MCF) を使用します。
.It Traditional
上のいずれにも該当しない場合、伝統的なフォーマット (Traditional Format)
を想定し、文字列全体 (または最初の部分) を salt として使用します。
.El
.Pp
どのルーチンも計算に時間が掛かる設計になっています。
.Tn Pentium
166/MMX で簡単なテストをすると、
.Tn DES
暗号化では、1 CPU 秒当たり暗号化を約 2640 回行ない、
MD5 暗号化では、1 CPU 秒当たり暗号化を約 62 回行ないました。
.Ss DES 拡張形式:
.Pp
.Ar key
は 8 文字からなるグループに分割されます (最後のグループにはナルバイトが
詰められます)。
各キャラクタの下位 7 ビット (グループごとに 56 ビット) が、
次に説明するようにして、
.Tn DES
キーを作るために用いられます。
最初のグループの 56 ビットは、
.Tn DES
鍵の初期値です。
その後のグループごとに、現在の
.Tn DES
鍵それ自身とそのグループのビットを XOR することで暗号化し、次の
.Tn DES
鍵とします。
.Pp
salt は 9 キャラクタの配列であり、アンダースコアの後ろに 4 バイトの
反復回数と 4 バイトの salt からなります。
これらは印字可能文字でエンコードされます。
6 ビットごとに 1 文字を対応させ、最下位キャラクタを最初にして、
エンコードされます。
0 から 63 までの値は ``./0-9A-Za-z'' としてエンコードされます。
これにより
.Fa count
.Fa salt
の両方が、キャラクタ当たり
6 ビットでエンコードされます。
最下位ビットが最初です。それぞれ
0 から
63 の値が、
``./0-9A- Za-z''
キャラクタによってエンコードされます。
のそれぞれに 24 ビットを使うことができます。
.Pp
.Fa salt
を使用して、
16777216 個の可能な方法の
1 つで、
.Tn DES
アルゴリズム内に
無秩序を引き起こします
(
特に、
アルゴリズムに対し、16777216 通りまたは 4096 通り
(つまり、24 ビットまたは 12 ビット)
中の 1 通りという不規則性を導入します (
.Ar salt
のビット
.Em i
が設定されており、
が設定されている場合、
.Tn DES
E-Box 出力中の
ビット
.Em i
ビットと
ビット
.Em i+24
ビットが
.Tn DES
"E" ボックス出力でスワップされる場合です
)
.Ar key
8 キャラクタのグループに分けられ
(
最後の短いグループは
NULL
でパッドされます
)
、各キャラクタの下位の
7 ビット
(
グループごとに
56 個
)
が、以降のように
DES
キーを形成するのに使用されます。
56 ビットの最初のグループが、初期
DES
キーになります。その他の各グループについては、グループビットおよび
DES
キー自体の暗号化の排他的論理和
(XOR)
が次の
DES
キーになります。最後に、
最終的な
DES
キーが使用されて
64 ビット定数の
.Ar count
累積暗号化が
実行されます。返される値は、
.Dv NUL
で終了するストリングで、長さは
20 バイト、
.Ar setting
にエンコードされた
64 ビットの暗号化が続いたもので構成されます。
とが交換されます) 。
.Pp
.Xr crypt 3
の過去のバージョンとの互換性のために、
.Ar setting
は、上記のように
エンコードされた
2 バイトの
salt
で構成できます。この場合、反復
.Ar count
25
使用され、摂動の少ない
.Tn DES
が利用でき、最長
8 キャラクタの
.Ar key
使用されます。返される値は
.Dv NUL
で終了する長さが
13 バイトのストリング
鍵を使い、64ビットの定数に
.Ar count
回 DES を繰り返し適用し暗号化します。
返される値は、ヌル文字で終了する文字列で、長さは
20 バイトまたは 13 バイト (にヌル文字が加わります) で、
.Ar salt
の後に、エンコードされた 64 ビットの暗号化を続いたもので
構成されます。
.Ss モジュール化暗号:
.Pp
salt が文字列
.Fa $digit$
から始まる場合は、モジュール化暗号フォーマット (MCF) が使用されます。
.Fa digit
は暗号化の際にどのアルゴリズムが使用されるかを表します。
その後ろのトークンが実際の salt として暗号化に用いられます。
salt の長さは 16 キャラクタに制限されています。
これは、返す出力の長さも _PASSWORD_LEN で制限されているからです。
salt はヌル文字かドル記号を末尾に置く必要があります。
ドル記号の後ろの文字はなんであれ無視されます。
.Pp
現在サポートするアルゴリズムは、
.Pp
.Bl -enum -compact -offset indent
.It
MD5
.It
Blowfish
.El
.Pp
これ以外の暗号化フォーマットは容易に追加できます。
salt の例として次のものがあります。
.Bl -tag -offset indent
.It Cm "$3$thesalt$rest"
.El
.Pp
.Ss "Traditional" 暗号化:
.Pp
.\"X The algorithm used will depend upon whether
使用されるアルゴリズムは、
.Fn crypt_set_format
.\"X has been called and whether a global default format has been specified.
がすでに呼び出されているか否か、グローバルデフォルトフォーマットが
すでに指定されているか否かに依存します。
.\"X Unless a global default has been specified or
グローバルデフォルトがあらかじめ指定されているか、
.Fn crypt_set_format
.\"X has set the format to something else, the built-in default format is
.\"X used.
で何か他のフォーマットを設定されているか、そのどちらでもない場合、
組み込みのデフォルトフォーマットが使用されます。
.\"X This is currently
現在のところ、これは、
.\"X .\"
.\"X .\" NOTICE: Also make sure to update this
.\"X .\"
.\"X DES
.\"X if it is available, or MD5 if not.
DES が使えるなら DES に、そうでないなら MD5 になります。
.Pp
.\"X How the salt is used will depend upon the algorithm for the hash. For
.\"X best results, specify at least two characters of salt.
salt をどのように用いるかはハッシュ化のアルゴリズムに依存します。
最高の結果を得るために、少なくとも 2 文字の salt を指定してください。
.Pp
.Fn crypt_get_format
.\"X function returns a constant string that represents the name of the
.\"X algorithm currently used.
関数は現在使用しているアルゴリズムを表す定数文字列を返します。
有効な値は、
.\"X Valid values are
.\"X .\"
.\"X .\" NOTICE: Also make sure to update this, too, as well
.\"X .\"
.Ql des ,
.Ql blf ,
.Ql md5
です。
.Pp
関数
.Fn encrypt
.Fn setkey
.Fn des_setkey
、および
.Fn des_cipher
では、
.Tn DES
アルゴリズムに、制限されたアクセスができます。
.Fn setkey
へのキー
.Ar key
引数は、
64 キャラクタのバイナリ値
(
数字の
0 または
1)
の配列です。
56 ビットの
キーはこの配列から導出されます。そのためには、配列を
8 つのグループに
分割し、各グループ内の最後のビットを無視します。
.Fn crypt_set_format
関数は指定する
.Fa string
に従い、デフォルトエンコードフォーマットを設定します。
.Pp
.Fn encrypt
の引数
.Fa block
も、バイナリ値の
64 キャラクタ配列です。
.Fa flag
の値が
0 の場合、引数
.Fa block
は暗号化されます。そうでない場合は、
暗号解除されます。暗号化または暗号解除は、それを処理するために
.Fn setkey
指定したキーを使用した後、オリジナルの配列
.Fa block
内に返されます。
.Pp
.Fn des_setkey
関数と
.Fn des_cipher
関数は高速ですが、
.Fn setkey
および
.Fn encrypt
より移植性は劣ります。
.Fn des_setkey
への引数は、長さが
8 の
キャラクタ配列です。各キャラクタの
.Em 最下位
ビットは無視され、各キャラクタの
次の
7 ビットが連結されて
56 ビットのキーを生成します。関数
.Fn des_cipher
は、
.Tn DES
.Fa count
反復の
.Xr abs 3
を使用して
.Fa in
8 キャラクタ内に保存された
64 ビットを暗号化
(
または
.Fa count
が負の場合は暗号解除
)
し、
64 ビットの結果を
8 キャラクタで
.Fa out
に保存します。
.Fa salt
は、前記のように
.Tn DES
の摂動を
指定します。
.Pp
関数
グローバルデフォルトフォーマットは、
.Pa /etc/auth.conf
ファイルで、
.Ql crypt_format
属性を使い設定することができます。
.Sh 返却値
.Fn crypt
は、処理が成功した場合は暗号化された値を指すポインタを返し、
処理が失敗した場合は
NULL
を返します。関数
.Fn setkey
.Fn encrypt
.Fn des_setkey
、および
.Fn des_cipher
は、処理が成功した場合は
0 を返し、処理が
失敗した場合は
1 を返します。歴史的には、関数
.Fn setkey
.Fn encrypt
はどのような値も返しませんでした。これらの関数が戻り値を指定されたのは、
主にハードウェアサポートが備わっているものの使用はできない場合、または
通常の方針の愚かさのために
DES
が利用できない場合に、システムを
区別するためです。
.Pp
は、処理が成功した場合、暗号化された値を指すポインタを返します。
処理が失敗した場合、NULL を返します。
注意: これは通常の挙動ではありません。
AT&T の
.Fn crypt
を使用するには、
.Nm libcrypt
ライブラリとのリンクが必要です。
.Fn setkey
.Fn encrypt
.Fn des_setkey
、および
.Fn des_cipher
は、
.Nm libcipher
ライブラリ内に
見つかります。
(
標準の
C
ライブラリ、
.Nm libc
にはこれらのルーチンへのかけらしか
入っていません
)
は常に文字列を指すポインタを返します。
.Pp
.Fn crypt_set_format
.\"X will return 1 if the supplied encoding format was valid.
は、与えられたエンコードフォーマットが正当であれば、1 を返します。
.\"X Otherwise, a value of 0 is returned.
それ以外の場合、値 0 が返されます。
.Sh 関連項目
.Xr login 1 ,
.Xr passwd 1 ,
.Xr auth_getval 3 ,
.Xr cipher 3 ,
.Xr getpass 3 ,
.Xr auth.conf 5 ,
.Xr passwd 5
.Rs
.%T "Mathematical Cryptology for Computer Scientists and Mathematicians"
.%A Wayne Patterson
.%D 1987
.%N ISBN 0-8476-7438-X
.Re
.Rs
.%T "Password Security: A Case History"
.%A R. Morris
.%A Ken Thompson
.%J "Communications of the ACM"
.%V vol. 22
.%P pp. 594-597
.%D Nov. 1979
.Re
.Rs
.%T "DES will be Totally Insecure within Ten Years"
.%A M.E. Hellman
.%J "IEEE Spectrum"
.%V vol. 16
.%P pp. 32-39
.%D July 1979
.Re
.Sh バグ
.Fn crypt
関数は静的データへのポインタを返します。
そして、以後の
.Fn crypt
の呼び出しは同じデータを変更します。
.Fn crypt_set_format
も同様に静的データを変更します。
.Sh 歴史
ローターを採用した
.Fn crypt
関数は、
.At v6
で現れました。現在の
スタイルの
で現れました。
現在のスタイルの
.Fn crypt
は、最初に
.At v7
に現れました。
.Sh バグ
.Fn des_setkey
への引数の各キャラクタの
.Em 最下位
ビットを
落とすのはとんでもないことです。
.Pp
.Fn crypt
関数は、結果を内部の静的オブジェクトに残し、そのオブジェクトを指す
ポインタを返します。後で
.Fn crypt
を呼び出すと、同じオブジェクトが
修正されます。
.Tn DES
セクションのコード (FreeSec 1.0) は、アメリカ合衆国のみで使える
.Nx
libcrypt 暗号化ライブラリに対して、そのような障害のない置き換えとして
アメリカ合衆国の外で開発されました。
.Sh AUTHORS
.An -nosplit
元は
.An David Burren Aq davidb@werj.com.au
によって書かれました。
その後の追加、更新は、
.An Poul-Henning Kamp ,
.An Mark R V Murray ,
.An Kris Kennaway ,
.An Brian Feldman ,
.An Paul Herman
.\"X and
.An Niels Provos
によって行なわれました。

View file

@ -30,428 +30,490 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)dbopen.3 8.5 (Berkeley) 1/2/94
.\"
.\" %FreeBSD: src/lib/libc/db/man/dbopen.3,v 1.3.2.1 2001/01/12 08:30:10 ru Exp %
.\" $FreeBSD$
.TH DBOPEN 3 "January 2, 1994"
.UC 7
.SH 名称
dbopen \- データベースアクセス方式
.SH 書式
.nf
.ft B
#include <sys/types.h>
#include <limits.h>
#include <db.h>
DB *
dbopen(const char *file, int flags, int mode, DBTYPE type,
.ti +5
const void *openinfo);
.ft R
.fi
.SH 解説
.I dbopen
.\"
.Dd January 2, 1994
.Dt DBOPEN 3
.Os
.Sh 名称
.Nm dbopen
.Nd データベースアクセス方式
.Sh 書式
.Fd "#include <sys/types.h>"
.Fd "#include <limits.h>"
.Fd "#include <db.h>"
.Ft DB *
.Fn dbopen "const char *file" "int flags" "int mode" "DBTYPE type" "const void *openinfo"
.Sh 解説
.Fn dbopen
は、データベースファイルへのライブラリインタフェースです。
サポートされているファイルフォーマットは、
.I btree
btree
形式、ハッシュ形式、UNIX ファイル指向形式です。
.I btree
btree
フォーマットは、ソート済みのバランスのとれた
ツリー構造の表現です。ハッシュフォーマットは、拡張可能で動的な
ハッシュスキーマです。フラットファイルフォーマットは、固定長または可変長
レコードからなるバイトストリームファイルです。フォーマットおよび
ファイルフォーマットに固有の情報については、それぞれのマニュアルページに
詳しく述べられています。
.IR btree (3),
.IR hash (3),
.IR recno (3)
.Xr btree 3 ,
.Xr hash 3 ,
.Xr recno 3
です。
.PP
.I dbopen
.Pp
.Fn dbopen
は、読み込みまたは書き込み用に
.I file
.Fa file
を open します。ディスク上に保持する必要のないファイルは、
ファイルパラメータをヌルに設定することで作成できます。
.PP
ファイルパラメータを
.Dv NULL
に設定することで作成できます。
.Pp
引数
.I flags
.Fa flags
と引数
.I mode
.Fa mode
は、
.IR open (2)
.Xr open 2
で指定されものと同じです。しかし、
O_CREAT, O_EXCL, O_EXLOCK, O_NONBLOCK, O_RDONLY, O_RDWR, O_SHLOCK, O_TRUNC
の各フラグだけに意味があります (データベースファイルは O_WRONLY では
open できないことに注意してください) 。
.Dv O_CREAT , O_EXCL , O_EXLOCK , O_NONBLOCK ,
.Dv O_RDONLY , O_RDWR , O_SHLOCK ,
.Dv O_TRUNC
の各フラグだけに意味があります (データベースファイルは
.Dv O_WRONLY
では
open できないことに注意してください)。
.\"Three additional options may be specified by
.\".IR or 'ing
.\".Em or Ns 'ing
.\"them into the
.\".I flags
.\".Fa flags
.\"argument.
.\".TP
.\"DB_LOCK
.\".Bl -tag -width indent
.\".It Dv DB_LOCK
.\"Do the necessary locking in the database to support concurrent access.
.\"If concurrent access isn't needed or the database is read-only this
.\"flag should not be set, as it tends to have an associated performance
.\"penalty.
.\".TP
.\"DB_SHMEM
.\".It Dv DB_SHMEM
.\"Place the underlying memory pool used by the database in shared
.\"memory.
.\"Necessary for concurrent access.
.\".TP
.\"DB_TXN
.\".It Dv DB_TXN
.\"Support transactions in the database.
.\"The DB_LOCK and DB_SHMEM flags must be set as well.
.PP
.\"The
.\".Dv DB_LOCK
.\"and
.\".Dv DB_SHMEM
.\"flags must be set as well.
.\".El
.Pp
引数
.I type
は、タイプ DBTYPE (インクルードファイル <db.h> で定義されています)
であり、DB_BTREE, DB_HASH, DB_RECNO を設定できます。
.PP
.Fa type
は、タイプ
.Ft DBTYPE
(インクルードファイル
.Aq Pa db.h
で定義されています)
であり、
.Dv DB_BTREE ,
.Dv DB_HASH ,
.Dv DB_RECNO
を設定できます。
.Pp
引数
.I openinfo
.Fa openinfo
は、アクセス方式のマニュアルページに説明してあるように、
アクセス方式に固有の構造を指すポインタです。
.I openinfo
がヌルの場合、各アクセス方式は、システムとアクセス方式に
.Fa openinfo
.Dv NULL
の場合、各アクセス方式は、システムとアクセス方式に
適切なデフォルトを使用します。
.PP
.I dbopen
は、処理が成功すると DB 構造体を指すポインタを返し、
.Pp
.Fn dbopen
は、処理が成功すると
.Ft DB
構造体を指すポインタを返し、
エラーの場合にはヌルを返します。
DB 構造体は、インクルードファイル <db.h> 内に定義されており、
.Ft DB
構造体は、インクルードファイル
.Aq Pa db.h
内に定義されており、
少なくとも次のフィールドが含まれています。
.sp
.nf
.Bd -literal
typedef struct {
.RS
DBTYPE type;
int (*close)(const DB *db);
int (*del)(const DB *db, const DBT *key, u_int flags);
int (*fd)(const DB *db);
int (*get)(const DB *db, DBT *key, DBT *data, u_int flags);
int (*put)(const DB *db, DBT *key, const DBT *data,
.ti +5
u_int flags);
int (*sync)(const DB *db, u_int flags);
int (*seq)(const DB *db, DBT *key, DBT *data, u_int flags);
.RE
DBTYPE type;
int (*close)(const DB *db);
int (*del)(const DB *db, const DBT *key, u_int flags);
int (*fd)(const DB *db);
int (*get)(const DB *db, DBT *key, DBT *data, u_int flags);
int (*put)(const DB *db, DBT *key, const DBT *data,
u_int flags);
int (*sync)(const DB *db, u_int flags);
int (*seq)(const DB *db, DBT *key, DBT *data, u_int flags);
} DB;
.fi
.PP
.Ed
.Pp
これらの要素は、データベースタイプと各種のアクションを実行する
関数のセットを記述しています。これらの関数は、
.I dbopen
.Fn dbopen
によって返された構造体へのポインタを引数に取り、
時々キー/データ構造とフラグ値を指す 1 つまたは複数のポインタを
取ることもあります。
.TP
type
.Bl -tag -width indent
.It Va type
基本アクセス方式 (およびファイルフォーマット) のタイプ。
.TP
close
.It Va close
キャッシュされた情報をディスクにフラッシュし、割り振られたリソースを
解放し、基になっているファイル (1 つまたは複数) を閉じるルーチンを指す
ポインタ。キー/データの組はメモリにキャッシュされるので、ファイルを
.I close
.Va close
関数または
.I sync
.Va sync
関数でファイルを同期するのに失敗すると、情報に矛盾や欠落が
生じるかもしれません。
.I close
ルーチンは、エラー終了時には -1 を返し (errnoを設定) 、
.Va close
ルーチンは、エラー終了時には -1 を返し (
.Va errno
を設定)、
正常終了時には 0 を返します。
.TP
del
.It Va del
キー/データの組をデータベースから削除するルーチンを指すポインタ。
.IP
.Pp
パラメータ
.I flag
.Fa flags
は次の値に設定できます。
.RS
.TP
R_CURSOR
.Bl -tag -width indent
.It Dv R_CURSOR
カーソルが参照するレコードを削除します。カーソルは、
あらかじめ初期化しておく必要があります。
.RE
.IP
delete
ルーチンはエラー終了時には -1 を返し (errnoを設定) 、
.El
.Pp
.Va delete
ルーチンはエラー終了時には -1 を返し (
.Va errno
を設定)、
正常終了時には 0 を返します。指定した
.I key
.Fa key
がファイルの中になかった場合は 1 を返します。
.TP
fd
.It Va fd
基本データベースのファイル記述表現を返すルーチンを指すポインタ。
同じファイルを参照しているファイル記述子は、同じ
.I file
.Fa file
名で
.I dbopen
.Fn dbopen
を呼び出す全プロセスに返されます。このファイル記述子は、ロック関数
.IR fcntl (2)
.Xr fcntl 2
.IR flock (2)
.Xr flock 2
への引数として安全に使用できます。
ファイル記述子は、必ずしもアクセス方式が使用している基本ファイルに
関連付けられている必要はありません。ファイル記述子は
メモリデータベース内で利用できません。
.I fd
ルーチンは、エラー終了時は -1 を返し (errnoを設定) 、
.Va \&fd
ルーチンは、エラー終了時は -1 を返し (
.Va errno
を設定)、
正常終了時にはファイル記述子を返します。
.TP
get
.It Va get
データベースからキーを使用して取り出すインタフェースである
ルーチンを指すポインタ。指定の
.I key
.Fa key
に関連付けられたデータのアドレスと長さが、
.I data
.Fa data
で参照される構造体内に返されます。
.I get
ルーチンはエラー終了時には -1 を返し (errnoを設定) 、
.Va get
ルーチンはエラー終了時には -1 を返し (
.Va errno
を設定)、
正常終了時には 0 を返します。
.I key
がファイルの中になかった場合は 1 を返します。
.TP
put
.It Va put
キー/データの組をデータベース内に保存するルーチンを指すポインタ。
.IP
.Pp
パラメータ
.I flag
.Fa flags
には次の値の 1 つを設定できます。
.RS
.TP
R_CURSOR
.Bl -tag -width indent
.It Dv R_CURSOR
カーソルが参照するキー/データの組を置き換えます。カーソルは、
あらかじめ初期化されている必要があります。
.TP
R_IAFTER
.I key
.It Dv R_IAFTER
.Fa key
で参照されるデータの直後にデータを追加し、
新しいキー/データの組を作成します。追加したキー/データの組のレコード番号が
.I key
.Fa key
構造体内に返されます (
DB_RECNO アクセス方式にだけ適用できます) 。
.TP
R_IBEFORE
.I key
.Dv DB_RECNO
アクセス方式にだけ適用できます)。
.It Dv R_IBEFORE
.Fa key
で参照されるデータの直前にデータを挿入し、
新しいキー/データの組を作成します。追加したキー/データの組のレコード番号が
.I key
構造体内に返されます (DB_RECNO アクセス方式にだけ適用できます) 。
.TP
R_NOOVERWRITE
.Fa key
構造体内に返されます (
.Dv DB_RECNO
アクセス方式にだけ適用できます)。
.It Dv R_NOOVERWRITE
キーがそれ以前に存在しない場合にだけ、新しいキー/データの組を入力します。
.TP
R_SETCURSOR
.It Dv R_SETCURSOR
キー/データの組を保存し、それを参照するカーソルの位置をセット、または
初期化します (DB_BTREE および DB_RECNO アクセス方式にだけ適用できます) 。
.RE
.IP
R_SETCURSOR
が利用できるのは、DB_BTREE と DB_RECNO のアクセス方式でだけです。
初期化します (
.Dv DB_BTREE
および
.Dv DB_RECNO
アクセス方式にだけ適用できます)。
.El
.Pp
.Dv R_SETCURSOR
が利用できるのは、
.Dv DB_BTREE
.Dv DB_RECNO
のアクセス方式でだけです。
キーには、変化しない固有の順序があることを意味しているからです。
.IP
R_IAFTER と R_IBEFORE は DB_RECNO アクセス方式にだけ利用できます。
.Pp
.Dv R_IAFTER
.Dv R_IBEFORE
.Dv DB_RECNO
アクセス方式にだけ利用できます。
どれも、アクセス方式が新しいキーを作成できることを意味しているからです。
これは、キーが順序付けられており独立な場合にだけ真となります。
たとえば、レコード番号です。
.IP
.I put
.Pp
.Va put
ルーチンのデフォルトの動作は、新しいキー/データの組を入力し、
それ以前に存在していたキーを置き換えることです。
.IP
.I put
ルーチンはエラー終了時には -1 を返し (errnoを設定) 、
.Pp
.Va put
ルーチンはエラー終了時には -1 を返し (
.Va errno
を設定)、
正常終了時には 0 を返し、
R_NOOVERWRITE フラグが設定されていて、しかもキーがファイル内に
.Dv R_NOOVERWRITE
フラグが設定されていて、しかもキーがファイル内に
既に存在する場合は 1 を返します。
.TP
seq
.It Va seq
データベースからのシーケンシャルな取り出し用インタフェースである
ルーチンを指すポインタ。キーのアドレスと長さは
.I key
.Fa key
が参照する構造体内に返され、データのアドレスと長さは
.I data
.Fa data
が参照する構造体内に返されます。
.IP
.Pp
シーケンシャルなキー/データの組の取り出しは、いつでも開始することができ、
``カーソル''の位置は
.IR del ,
.IR get ,
.IR put ,
.I sync
.Dq カーソル
の位置は
.Va del ,
.Va get ,
.Va put ,
.Va sync
の各ルーチンによる呼び出しによって影響を受けません。
シーケンシャルな走査の間のデータベースの修正は走査に反映されます。
すなわち、カーソルの前に挿入されたレコードが返されるまでの間、
カーソルの後ろに挿入されたレコードは返されません。
.IP
フラグ値は次の値の 1 つにセットしなければなりません。
.RS
.TP
R_CURSOR
.Pp
.Fa flags
値は次の値の 1 つにセットしなければ
.Em なりません
.Bl -tag -width indent
.It Dv R_CURSOR
指定のキーに関連付けられたデータが返されます。これはカーソルをキーの位置に
セットまたは初期化するという点で
.I get
ルーチンと異なります (DB_BTREE
.Va get
ルーチンと異なります (
.Dv DB_BTREE
アクセス方式の場合、返されたキーは必ずしも指定のキーと正確に一致する
必要がないことに注意してください。返されるキーは、指定のキーより
大きいかまたは等しいような、最小のキーであり、
部分的なキー一致と範囲検索ができます) 。
.TP
R_FIRST
部分的なキー一致と範囲検索ができます)。
.It Dv R_FIRST
データベースの最初のキー/データの組が返され、カーソルはそれを
参照するようにセットまたは初期化されます。
.TP
R_LAST
.It Dv R_LAST
データベースの最後のキー/データの組が返され、カーソルはそれを
参照するようにセットまたは初期化されます (
DB_BTREE と DB_RECNO の各アクセス方式にだけ適用できます) 。
.TP
R_NEXT
.Dv DB_BTREE
.Dv DB_RECNO
の各アクセス方式にだけ適用できます)。
.It Dv R_NEXT
カーソルの直後にあるキー/データの組を取り出します。カーソルがまだ
セットされていない場合は、これは R_FIRST フラグと同じになります。
.TP
R_PREV
セットされていない場合は、これは
.Dv R_FIRST
フラグと同じになります。
.It Dv R_PREV
カーソルの直前にあるキー/データの組を取り出します。カーソルがまだ
設定されていない場合には、これは R_LAST フラグと同じになります。(
DB_BTREE と DB_RECNO の各アクセス方式にだけ適用できます) 。
.RE
.IP
R_LAST と R_PREV が利用できるのは、DB_BTREE と DB_RECNO の各
設定されていない場合には、これは
.Dv R_LAST
フラグと同じになります。(
.Dv DB_BTREE
.Dv DB_RECNO
の各アクセス方式にだけ適用できます)。
.El
.Pp
.Dv R_LAST
.Dv R_PREV
が利用できるのは、
.Dv DB_BTREE
.Dv DB_RECNO
の各
アクセス方式についてだけです。これらはそれぞれキーに変化しない固有の
順序があることを意味しているからです。
.IP
.I seq
ルーチンはエラー終了時には -1 を返し (errnoを設定) 、
.Pp
.Va seq
ルーチンはエラー終了時には -1 を返し (
.Va errnoerrno
を設定)、
正常終了時には 0 を返し、指定のキーまたは現在のキーより小さいかまたは
大きいキー/データの組が存在しない場合は 1 を返します。
DB_RECNO アクセス方式が使用されていて、
.Dv DB_RECNO
アクセス方式が使用されていて、
しかもデータベースファイルがキャラクタ特殊ファイルであり、
完全なキー/データの組がその時点で存在しない場合、
.I seq
.Va seq
ルーチンは 2 を返します。
.TP
sync
.It Va sync
キャッシュされた情報をディスクにフラッシュするルーチンを指すポインタ。
データベースがメモリ内にだけ存在する場合、
.I sync
.Va sync
ルーチンには何の効果もなく、処理は常に正常終了します。
.IP
フラグ値は次の値にセットできます。
.RS
.TP
R_RECNOSYNC
DB_RECNO アクセス方式が使用される場合、このフラグは
.I sync
.Pp
.Fa flags
値は次の値にセットできます。
.Bl -tag -width indent
.It Dv R_RECNOSYNC
.Dv DB_RECNO
アクセス方式が使用される場合、このフラグは
.Va sync
ルーチンが、
.I recno
.Va recno
ファイル自身ではなく、
.I recno
recno
ファイルの基となる
.I btree
btree
ファイルに適用されるようにします (詳細については
.IR recno (3)
.Xr recno 3
マニュアルページの
.I bfname
フィールドを参照してください) 。
.RE
.IP
.I sync
ルーチンはエラー終了時には -1 を返し (errnoを設定) 、
.Va bfname
フィールドを参照してください)。
.El
.Pp
.Va sync
ルーチンはエラー終了時には -1 を返し (
.Va errno
を設定)、
正常終了時には 0 を返します。
.SH キー/データの組
.Sh キー/データの組
すべてのファイルタイプへのアクセスはキー/データの組を基にしています。
キーとデータの両方が次のデータ構造で表されます。
.PP
.Bd -literal
typedef struct {
.RS
void *data;
.br
size_t size;
.RE
void *data;
size_t size;
} DBT;
.PP
DBT 構造体の要素は次のように定義されます。
.TP
data
.Ed
.Pp
.Ft DBT
構造体の要素は次のように定義されます。
.Bl -tag -width "data"
.It Va data
バイトストリングを指すポインタ。
.TP
size
.It Va size
バイトストリングの長さ。
.PP
.El
.Pp
キーとデータバイトストリングは、同時に利用できるメモリにフィットする必要
はありますが、参照できる文字列の長さには本質的には制限がありません。
アクセス方式は、バイトストリングのバイトアラインについては
何の保証もしていないことに注意すべきです。
.SH エラー
.I dbopen
.Sh エラー
.Fn dbopen
ルーチンがエラー終了すると、ライブラリルーチン
.IR open (2)
.Xr open 2
.IR malloc (3)
.Xr malloc 3
で書かれているエラー、または下記のエラーに対する
.I errno
.Va errno
をセットします。
.TP
[EFTYPE]
.Bl -tag -width Er
.It Bq Er EFTYPE
ファイルのフォーマットが間違っています。
.TP
[EINVAL]
.It Bq Er EINVAL
既存のファイル指定と互換性のないパラメータ (ハッシュ関数、
パッドバイトなど) や、関数に意味のないパラメータが指定された (たとえば、
事前の初期化が行なわれていないカーソルの使用)
事前の初期化が行なわれていないカーソルの使用)、
またはファイルとソフトウェアのバージョン間に不一致があります。
.PP
.I close
.El
.Pp
.Va close
ルーチンがエラー終了すると、ライブラリルーチン
.IR close (2),
.IR read (2),
.IR write (2),
.IR free (3),
.IR fsync (2)
.Xr close 2 ,
.Xr read 2 ,
.Xr write 2 ,
.Xr free 3 ,
.Xr fsync 2
に書かれているエラーについての
.I errno
.Va errno
をセットします。
.PP
.IR del ,
.IR get ,
.IR put ,
.I seq
.Pp
.Va del ,
.Va get ,
.Va put ,
.Va seq
の各ルーチンがエラー終了すると、ライブラリルーチン
.IR read (2),
.IR write (2),
.IR free (3),
.IR malloc (3)
.Xr read 2 ,
.Xr write 2 ,
.Xr free 3 ,
.Xr malloc 3
に書かれているエラーについての
.I errno
.Va errno
をセットします。
.PP
.I fd
ルーチンがエラー終了すると、メモリデータベース内の ENOENT に
.I errno
.Pp
.Va fd
ルーチンは、メモリ内のデータベースでエラー終了すると、
.Er ENOENT
.Va errno
をセットします。
.PP
.I sync
.Pp
.Va sync
ルーチンがエラー終了すると、ライブラリルーチン
.IR fsync(2)
.Xr fsync 2
に書かれているエラーについての
.I errno
.Va errno
をセットします。
.SH 関連項目
.IR btree (3),
.IR hash (3),
.IR mpool (3),
.IR recno (3)
.sp
.IR "LIBTP: Portable, Modular Transactions for UNIX" ,
.SH バグ
typedef DBT は、``data base thang'' の略称で、
.Sh 関連項目
.Xr btree 3 ,
.Xr hash 3 ,
.Xr mpool 3 ,
.Xr recno 3
.Rs
.%T "LIBTP: Portable, Modular Transactions for UNIX"
.%A Margo Seltzer
.%A Michael Olson
.%R "USENIX proceedings"
.%D Winter 1992
.Re
.Sh バグ
typedef
.Ft DBT は、
.Dq "data base thang"
の略称で、
まだ使用されていない合理的な名前を誰も思いつかなかったために
使われることになりました。
.PP
.Pp
ファイル記述子インタフェースは構成が調和しておらず、
インタフェースの今後のバージョンでは削除される予定です。
.PP
.Pp
どのアクセス方式も、並行アクセス、ロック、またはトランザクション
は、どのような形式でも提供しません。

View file

@ -1,122 +1,112 @@
.\" @(#)des_crypt.3 2.1 88/08/11 4.0 RPCSRC; from 1.16 88/03/02 SMI;
.\" %FreeBSD: src/lib/libc/rpc/des_crypt.3,v 1.4.2.2 2001/07/22 10:14:45 dd Exp %
.\" $FreeBSD$
.TH DES_CRYPT 3 "6 October 1987"
.SH 名称
des_crypt, ecb_crypt, cbc_crypt, des_setparity \- 高速 DES 暗号化
.SH 書式
.nf
.B #include <des_crypt.h>
.LP
.B int ecb_crypt(key, data, datalen, mode)
.B char *key;
.B char *data;
.B unsigned datalen;
.B unsigned mode;
.LP
.B int cbc_crypt(key, data, datalen, mode, ivec)
.B char *key;
.B char *data;
.B unsigned datalen;
.B unsigned mode;
.B char *ivec;
.LP
.B void des_setparity(key)
.B char *key;
.fi
.SH 解説
.IX encryption cbc_crypt "" \fLcbc_crypt\fP
.IX "des encryption" cbc_crypt "DES encryption" \fLcbc_crypt\fP
.IX encryption des_setparity "" \fLdes_setparity\fP
.IX "des encryption" des_setparity "DES encryption" \fLdes_setparity\fP
.B ecb_crypt()
.\"
.Dd October 6, 1987
.Dt DES_CRYPT 3
.Os
.Sh 名称
.Nm des_crypt , ecb_crypt , cbc_crypt , des_setparity
.Nd 高速 DES 暗号化
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd "#include <rpc/des_crypt.h>"
.Ft int
.Fn ecb_crypt "char *key" "char *data" "unsigned datalen" "unsigned mode"
.Ft int
.Fn cbc_crypt "char *key" "char *data" "unsigned datalen" "unsigned mode" "char *ivec"
.Ft void
.Fn des_setparity "char *key"
.Sh 解説
.Fn ecb_crypt
.B cbc_crypt()
.Fn cbc_crypt
は、
.SM NBS
.SM DES
.Tn NBS
.Tn DES
(Data Encryption Standard) を実現しています。これらのルーチンは、
.BR crypt (3)
.Xr crypt 3
より高速で汎用的です。また、
.SM DES
.Tn DES
ハードウェアが用意されていれば、それも利用できます。
.B ecb_crypt(\|)
.Fn ecb_crypt
は、
.SM ECB
.Tn ECB
(Electronic Code Book) モードで暗号化します。
これはデータのブロックを独立に暗号化するものです。
.B cbc_crypt(\|)
.Fn cbc_crypt
は、
.SM CBC
.Tn CBC
(Cipher Block Chaining) モードで暗号化します。これは
連続するブロックを一つにつなげるものです。
.SM CBC
.Tn CBC
モードは、ブロックの挿入、削除、置き換えに対する保護を行ないます。
また、通常のテキストにおける正規性は暗号テキストには現れません。
.LP
.Pp
これらのルーチンを使用する方法は次のとおりです。最初のパラメータ
.I key
.Fa key ,
は、パリティ付き 8 バイトの暗号化キーです。キーのパリティ (
.SM DES
.Tn DES
の場合、これは各バイトの下位ビットにあります) を設定するためには、
.I des_setparity
.Fn des_setparity
を使用します。2 番めのパラメータ
.I data
.Fa data
には、暗号化または暗号解除されるデータが入っています。
3 番めのパラメータ
.I datalen
.Fa datalen
は、
.I data
.Fa data
の長さ (バイト単位) であり、これは 8 の倍数でなければなりません。
4 番めのパラメータ
.I mode
.Fa mode
は、いくつかのものの論理和 (
.SM OR\s0'ing
.Em OR Ns 'ing
) によって作成されます。暗号化の方向に関しては、
.SM DES_ENCRYPT
.Dv DES_ENCRYPT
.SM DES_DECRYPT
どちらかの論理和を、ソフトウェア対ハードウェアの暗号化については、
.SM DES_HW
.Dv DES_DECRYPT
どちらかの
.Em 論理和
を、ソフトウェア対ハードウェアの暗号化については、
.Dv DES_HW
.SM DES_SW
のどちらかの論理和を取り、
.SM DES_HW
.Dv DES_SW
のどちらかの
.Em 論理和
を取り、
.Dv DES_HW
が指定されており、しかもハードウェアがない場合は、
暗号化はソフトウェアで実行され、ルーチンは
.SM DESERR_NOHWDEVICE
.Er DESERR_NOHWDEVICE
を返します。
.I cbc_crypt
.Fn cbc_crypt
の場合、パラメータ
.I ivec
はチェイン作成用の 8 バイトの初期化ベクトルです。
これは戻り時に、次の初期化ベクトルへと更新されます。
.SH 関連項目
.BR des (1),
.BR crypt (3)
.SH 診断
.PD 0
.TP 20
.SM DESERR_NONE
エラーなし
.TP
.SM DESERR_NOHWDEVICE
.Sh エラー
.Bl -tag -width [DESERR_NOHWDEVICE] -compact
.It Bq Er DESERR_NONE
エラーなし。
.It Bq Er DESERR_NOHWDEVICE
暗号化処理は成功しましたが、要求されたハードウェアではなく
ソフトウェアで行われました。
.TP
.SM DESERR_HWERR An
.It Bq Er DESERR_HWERR
ハードウェアまたはドライバでエラーが発生しました。
.TP
.SM DESERR_BADPARAM
.It Bq Er DESERR_BADPARAM
ルーチンに間違ったパラメータが指定されました。
.PD
.LP
.El
.Pp
終了コード
.I stat
.Va stat
が与えられると、マクロ
.SM DES_FAILED\c
.BR ( stat )
.Fn DES_FAILED stat
が偽になるのは、最初の 2 つのステータスについてだけです。
.SH 制約
.Sh 関連項目
.\" .Xr des 1 ,
.Xr crypt 3
.Sh 制約
これらのルーチンは RPCSRC 4.0 では利用できません。
この情報は Secure RPC で求められる
DES インタフェースの説明として提供されています。
.Tn DES
インタフェースの説明として提供されています。

View file

@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)end.3 6.4 (Berkeley) 1/24/94
.\" %Id: end.3,v 1.2 1997/03/07 03:27:52 jmg Exp %
.\"
.\" %FreeBSD: src/share/man/man3/end.3,v 1.3.2.3 2001/01/12 16:16:01 ru Exp %
.\" $FreeBSD$
.\"
.Dd January 24, 1994
.Dt END 3
.Os
@ -42,26 +42,41 @@
.Nm edata
.Nd イメージセグメントの終了境界
.Sh 書式
.Vt extern end;
.Vt extern etext;
.Vt extern edata;
.Vt extern end ;
.Vt extern etext ;
.Vt extern edata ;
.Sh 解説
グローバル変数
グローバル
.Va end , extext
および
.Va edata
はテキストセグメント、初期化済み
データセグメント、およびデータセグメント
はプログラムセグメントの末尾アドレスです。
.Pp
.Va etext
は、テキストセグメントの末尾に続く最初アドレスです。
.Pp
.Va edata
は、初期化済みデータセグメントの末尾に続く最初アドレスです。
.Pp
.Va end
は、プログラムロード時に、データセグメント
.Pq Tn BSS
の末尾に続く次のアドレスに
対応します。これらの値は初期的には
.Xr brk 2
による実行時に設定されます。
の末尾に続く最初のアドレスです。
.Xr sbrk 2
.\".Fn sbrk 0
システムコールを 0 を引数として実行すると、
現在のデータセグメントの末尾が得られます。
.Sh 関連項目
.Xr brk 2 ,
.Xr malloc 3
.Xr sbrk 2 ,
.Xr malloc 3 ,
.Xr a.out 4
.Sh 歴史
.Nm end
.Nm
マニュアルは
.At v6
で現れました。
.Sh バグ
伝統的には、テキストセグメントの先頭を指す変数は存在しませんでした。
なぜなら、テキストセグメントは常にアドレス 0 から開始したからです。
この仮定は現在ではもう正しくありません。
テキストセグメントの先頭を指す、前述のような変数は、存在しません。

View file

@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)fpgetround.3 1.0 (Berkeley) 9/23/93
.\" %Id: fpgetround.3,v 1.6 1998/02/04 22:30:20 jlemon Exp %
.\"
.\" %FreeBSD: src/share/man/man3/fpgetround.3,v 1.9.2.1 2000/12/29 10:17:59 ru Exp %
.\" $FreeBSD$
.\"
.Dd August 23, 1993
.Dt FPGETROUND 3
.Os
@ -47,57 +47,45 @@
.Nm fpresetsticky
.Nd IEEE 浮動小数インタフェース
.Sh 書式
.Fd #include <floatingpoint.h>
.Ft typedef enum {
.br
.Fa FP_RN,
.Li /* round to nearest */
.br
.Fa FP_RM,
.Li /* round to minus infinity */
.br
.Fa FP_RP,
.Li /* round to plus infinity */
.br
.Fa FP_RZ,
.Li /* truncate */
.br
.Ft } fp_rnd_t;
.Fd #include <ieeefp.h>
.Pp
.Bd -literal
typedef enum {
FP_RN, /* round to nearest */
FP_RM, /* round down to minus infinity */
FP_RP, /* round up to plus infinity */
FP_RZ /* truncate */
} fp_rnd_t;
.Pp
.Ft fp_rnd_t
.Fn fpgetround void
.Ft fp_rnd_t
.Fn fpsetround "fp_rnd_t direction"
.Pp
.nr fZ 0
.Ft typedef enum {
.br
.Fa FP_PS,
.Li /* 24 bit (single-precision) */
.br
.Fa FP_PRS,
.Li /* reserved */
.br
.Fa FP_PD,
.Li /* 53 bit (double-precision) */
.br
.Fa FP_PE,
.Li /* 64 bit (extended-precision) */
.br
.Ft } fp_prec_t;
.Bd -literal
typedef enum {
FP_PS, /* 24 bit (single-precision) */
FP_PRS, /* reserved */
FP_PD, /* 53 bit (double-precision) */
FP_PE /* 64 bit (extended-precision) */
} fp_prec_t;
.Ed
.Pp
.Ft fp_prec_t
.Fn fpgetprec void
.Ft fp_prec_t
.Fn fpsetprec "fp_prec_t precision"
.Pp
.Fd #define fp_except_t int
.Fd #define FP_X_INV 0x01 /* invalid */
.Fd #define FP_X_OFL 0x08 /* overflow */
.Fd #define FP_X_UFL 0x10 /* underflow */
.Fd #define FP_X_DZ 0x04 /* divide-by-zero */
.Fd #define FP_X_IMP 0x20 /* loss of precision */
.Fd #define FP_X_DNML 0x02 /* denormal */
.Bd -literal
#define fp_except_t int
#define FP_X_INV 0x01 /* invalid operation */
#define FP_X_DNML 0x02 /* denormal */
#define FP_X_DZ 0x04 /* zero divide */
#define FP_X_OFL 0x08 /* overflow */
#define FP_X_UFL 0x10 /* underflow */
#define FP_X_IMP 0x20 /* (im)precision */
#define FP_X_STK 0x40 /* stack fault */
.Ed
.Ft fp_except_t
.Fn fpgetmask void
.Ft fp_except_t

View file

@ -30,8 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)getpwent.3 8.2 (Berkeley) 12/11/93
.\"
.\" %FreeBSD: src/lib/libc/gen/getpwent.3,v 1.11.2.3 2001/08/17 15:42:33 ru Exp %
.\" $FreeBSD$
.\"
.Dd September 20, 1994
.Dt GETPWENT 3
.Os
@ -43,6 +44,8 @@
.Nm setpwent ,
.Nm endpwent
.Nd パスワードデータベースを操作
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <pwd.h>
@ -51,7 +54,7 @@
.Ft struct passwd *
.Fn getpwnam "const char *login"
.Ft struct passwd *
.Fn getpwuid "uid_t uid"
.Fn getpwuid "uid_t uid"
.Ft int
.Fn setpassent "int stayopen"
.Ft void
@ -64,23 +67,22 @@
に記述されたパスワードデータベースファイルを
操作します。データベースの各エントリは、インクルードファイル
.Aq Pa pwd.h
にある
構造体
にある構造体
.Ar passwd
によって定義されます。次のとおりです。
で定義されます。次の通りです。
.Bd -literal -offset indent
struct passwd {
char *pw_name; /* ユーザ名 */
char *pw_passwd; /* 暗号化パスワード */
char *pw_passwd; /* 暗号化されたパスワード */
uid_t pw_uid; /* ユーザ uid */
gid_t pw_gid; /* ユーザ gid */
time_t pw_change; /* パスワードの変更時 */
time_t pw_change; /* パスワードの変更時 */
char *pw_class; /* ユーザアクセスクラス */
char *pw_gecos; /* ハネウエルログイン情報 */
char *pw_dir; /* ホームディレクトリ */
char *pw_shell; /* デフォルトのシェル */
time_t pw_expire; /* アカウント有効期限 */
int pw_fields; /* 内部 : 充てんフィールド */
int pw_fields; /* 内部フィールド: 充てんフィールド */
};
.Ed
.Pp
@ -88,36 +90,37 @@ struct passwd {
.Fn getpwnam
は与えられたログイン名を、
.Fn getpwuid
は与えられたユーザ
uid
を、それぞれパスワードデータベースで検索し、常に最初に出会った
は与えられたユーザ ID を
それぞれパスワードデータベースで検索し、常に最初に遭遇した
エントリを返します。
.Pp
.Fn getpwent
関数はパスワードデータベースを順次読み込みます。ユーザの完全
関数はパスワードデータベースを順次読み込みます。ユーザの完全
リストを処理したいプログラム向きです。
.Pp
.Fn setpassent
関数は
2 つの目的を遂行します。まず
2 つの目的を果たすものです。まず
.Fn getpwent
にデータベースの最初へ
``rewind'' (リワインド)
させます。さらに
関数がデータベースの最初へ「巻き戻す (rewind)」
ようにします。さらに
.Fa stayopen
がゼロ
でなければ、ファイル記述子をオープンしたままにします。これらルーチン
すべての以後のアクセスが、このためきわめて高速化されます。
が 0
でなければ、ファイル記述子をオープンしたままにします。
これにより、これらのルーチンに対するその後のアクセスすべてが
極めて高速化されます
(ただし
.Fn getpwent
の場合、デフォルトで記述子をクローズしないので後者の機能性は
不要です。)
の場合、デフォルトでファイル記述子をクローズしないので
後者の機能は不要です)
.Pp
プログラム実行中に更新されるとデータベースが古くなるので、長時間実行
プログラムでファイル記述子をオープンしたままにすることは危険です。
長時間実行されているプログラムでファイル記述子をオープンした
ままにしておくのは危険です。なぜなら、プログラムが実行されて
いる間にデータベースが更新されると、オープンしたままにしている
データベースは古い物になってしまうからです。
.Pp
.Fn setpwent
関数は、引数ゼロを持つ
関数は、引数を 0 にした
.Fn setpassent
と同じです。
.Pp
@ -125,56 +128,46 @@ uid
関数は、オープンしているファイルをすべてクローズします。
.Pp
これらのルーチンは、パスワードファイルを
``shadow'' (シャドウ)
する目的で
書かれました。たとえば、暗号化パスワードにアクセスできるプログラムが
限定できるようにです。たとえば、これらを呼び出す処理の
uid
が有効な
0 ならばパスワードを返し、その他の場合は構造体のパスワードフィールドに、
「隠す (shadow)」目的で
書かれました。たとえば、暗号化パスワードにアクセスできる
プログラムを限定できるようにです。これらのルーチンを
呼び出すプロセスの有効ユーザ ID が 0 ならば暗号化パスワードを返し、
その他の場合は戻り値である構造体のパスワードフィールドは
ストリング
.Ql *
示して返します。
指すようになります。
.Sh YP/NIS の相互作用
.Xr yp 4
パスワード
データベースが使用可能な場合、ローカルのデータベースに
要求されたパスワードエントリが見からないと、
要求されたパスワードエントリが見からないと、
.Fn getpwnam
および
.Fn getpwuid
関数はそれぞれ、
YP
マップ
.Dq Li passwd.byname
および
.Dq Li passwd.byuid
を使用します。
YP マップを使用します。
.Xr passwd 5
で記述されたとおりに全体マップが使用可能ならば
で記述されているようにマップ全体が使用可能である場合は
.Fn getpwent
関数は
YP
マップ
YP マップ
.Dq Li passwd.byname
を通ります。
通り読みます。
.Sh 戻り値
関数
.Fn getpwent
.Fn getpwent ,
.Fn getpwnam
および
.Fn getpwuid
は、いずれも成功すると、
passwd
構造体の有効なポインタを返します。エンドオブファイルに到達するか
エラーが発生した場合は、
null
ポインタが返ります。
passwd 構造体への有効なポインタを返します。
ファイルの終端に到達するか、もしくはエラーが発生した場合は
ヌルポインタを返します。
.Fn setpassent
関数は失敗した
場合は
0 を、成功した場合は
関数は、失敗した場合は 0 を、成功した場合は
1 を返します。
.Fn endpwent
および
@ -193,46 +186,37 @@ Version 7
形式のパスワードファイル
.El
.Sh 関連項目
.Xr getlogin 2
.Xr getgrent 3
.Xr yp 4
.Xr passwd 5
.Xr pwd_mkdb 8
.Xr getlogin 2 ,
.Xr getgrent 3 ,
.Xr yp 4 ,
.Xr passwd 5 ,
.Xr pwd_mkdb 8 ,
.Xr vipw 8
.Sh 歴史
.Fn getpwent
.Fn getpwnam
.Fn getpwuid
.Fn getpwent ,
.Fn getpwnam ,
.Fn getpwuid ,
.Fn setpwent
および
.Fn endpwent
関数は、
.At v7
最初に取り入れられました。
初めて登場しました。
.Fn setpassent
関数は
.Bx 4.3-Reno
最初に取り入れられました。
登場しました。
.Sh 互換性
代替パスワードデータベースの規格を許した歴史的な関数
歴史的な理由で存在していた、
代替パスワードデータベースの規格を許した関数
.Xr setpwfile 3
は、
これまで非難されてきましたが、もはや使用できません。
は非推奨になっており、もう使用できません。
.Sh バグ
関数
.Fn getpwent
.Fn getpwent ,
.Fn getpwnam
および
.Fn getpwuid
は、それぞれの結果を内部の
静的オブジェクトに残し、そのオブジェクトのポインタを返します。後に続く同じ
関数の呼び出しは、この同じオブジェクトを改変します。
は、呼び出し結果を内部の静的オブジェクトに残し、
そのオブジェクトを指すポインタを返します。その後、
同じ関数を呼び出すと、同じオブジェクトを変更していきます。

View file

@ -1,5 +1,7 @@
.\" @(#)getrpcent.3n 2.2 88/08/02 4.0 RPCSRC; from 1.11 88/03/14 SMI
.\" %FreeBSD: src/lib/libc/rpc/getrpcent.3,v 1.11.2.2 2001/07/22 12:06:45 dd Exp %
.\" $FreeBSD$
.\"
.Dd December 14, 1987
.Dt GETRPCENT 3
.Os
@ -23,10 +25,8 @@
.Ft void
.Fn endrpcent void
.Sh 解説
.Fn getrpcent
.Fn getrpcbyname
および
.Fn getrpcent ,
.Fn getrpcbyname ,
.Fn getrpcbynumber
関数はそれぞれ、次に
示す構造体を持つオブジェクトのポインタを返します。構造体には
@ -48,17 +48,17 @@ struct rpcent {
.It Fa r_name
この rpc プログラムのサーバ名。
.It Fa r_aliases
rpc プログラムの、ゼロで終わる別名 (エイリアス) リスト。
rpc プログラムの、0 で終わる別名 (エイリアス) リスト。
.It Fa r_number
このサービスの rpc プログラム番号。
.El
.Pp
.Fn getrpcent
関数は、必要ならばファイルをオープンして次の行を読み込みます。
.Nm getrpcent
.Fn setrpcent
関数はファイルをオープンしリワインドします。
.Fa stayopen
フラグがゼロでなければ、 (直接呼び出しかまたは、ほかの
フラグが 0 でなければ、 (直接呼び出しかまたは、ほかの
.Fn getrpcent
関数ファミリの 1 つを介しての間接呼び出しかにかかわらず) 、
.Fn getrpcent

View file

@ -1,5 +1,7 @@
.\" @(#)getrpcport.3r 2.2 88/08/02 4.0 RPCSRC; from 1.12 88/02/26 SMI
.\" %FreeBSD: src/lib/libc/rpc/getrpcport.3,v 1.6 1999/08/28 00:00:40 peter Exp %
.\" $FreeBSD$
.\"
.Dd October 6, 1987
.Dt GETRPCPORT 3
.Os

View file

@ -30,16 +30,19 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getusershell.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/gen/getusershell.3,v 1.5.2.2 2001/08/17 15:42:33 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt GETUSERSHELL 3
.Os BSD 4.3
.Os
.Sh 名称
.Nm getusershell ,
.Nm setusershell ,
.Nm endusershell
.Nd 正規ユーザシェルを取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <unistd.h>
.Ft char *
@ -50,10 +53,9 @@
.Fn endusershell void
.Sh 解説
.Fn getusershell
関数は、ファイル
関数は、システム管理者がファイル
.Pa /etc/shells
でシステムマネージャによって
定義された、正規ユーザシェルのポインタを返します。
に定義している正規ユーザシェルのポインタを返します。
.Pa /etc/shells
が読み込めないかまたは存在しない場合、
.Fn getusershell
@ -68,7 +70,7 @@
(必要ならばファイルをオープンして)
次の行を読み込みます。
.Fn setusershell
関数はファイルをリワインドし
関数はファイルの先頭まで戻り
.Fn endusershell
関数はファイルをクローズします。
.Sh 関連ファイル
@ -76,25 +78,21 @@
.It Pa /etc/shells
.El
.Sh 診断
ルーチン
.Fn getusershell
は、
ルーチンは、
.Dv EOF
null
ポインタ
(0)
を返します。
ヌルポインタ (0) を返します。
.Sh 関連項目
.Xr shells 5
.Sh 歴史
.Fn getusershell
関数は
.Bx 4.3
で最初に取り入れられました。
で最初に登場しました。
.Sh バグ
.Fn getusershell
関数は、処理結果を内部の静的オブジェクトに残し、その
オブジェクトのポインタを返します。以後
オブジェクトのポインタを返します。以後
.Fn getusershell
呼び出しは、同じオブジェクトを改変します。
を呼び出すと、同じオブジェクトを変更します。

View file

@ -30,138 +30,159 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)hash.3 8.6 (Berkeley) 8/18/94
.\"
.\" %FreeBSD: src/lib/libc/db/man/hash.3,v 1.4.2.1 2001/01/12 08:30:10 ru Exp %
.\" $FreeBSD$
.TH HASH 3 "August 18, 1994"
.UC 7
.SH 名称
hash \- hash データベース アクセス方式
.SH 書式
.nf
.ft B
#include <sys/types.h>
#include <db.h>
.ft R
.fi
.SH 解説
.I dbopen
.\"
.Dd August 18, 1994
.Dt HASH 3
.Os
.Sh 名称
.Nm hash
.Nd "hash データベース アクセス方式"
.Sh 書式
.Fd "#include <sys/types.h>"
.Fd "#include <db.h>"
.Sh 解説
.Fn dbopen
ルーチンは、データベースファイルへのライブラリインタフェースです。
サポート対象のファイル形式の一つは
.I hash
.Nm
ファイルです。本マニュアルの
.IR dbopen (3)
.Xr dbopen 3
にあるデータベースアクセス方式の一般的な解説は
に書かれており、
.I hash
.Nm
固有の情報だけを説明しています。
.PP
.I hash
.Pp
.Nm
データ構造は拡張可能な動的ハッシュスキーマです。
.PP
dbopn に与えられるアクセス方式固有のデータ構造体は
インクルードファイル <db.h> で以下のように定義されます。
.sp
.Pp
.Fn dbopen
に与えられるアクセス方式固有のデータ構造体は
インクルードファイル
.Aq Pa db.h
で以下のように定義されます。
.Bd -literal
typedef struct {
.RS
u_int bsize;
.br
u_int ffactor;
.br
u_int nelem;
.br
u_int cachesize;
.br
u_int32_t (*hash)(const void *, size_t);
.br
int lorder;
.RE
u_int bsize;
u_int ffactor;
u_int nelem;
u_int cachesize;
u_int32_t (*hash)(const void *, size_t);
int lorder;
} HASHINFO;
.PP
.Ed
.Pp
この構造体のフィールドは以下になります。
.TP
bsize
.I bsize
は、ハッシュ表のバケットサイズを定義し、デフォルト値で 256 バイトです。
.Bl -tag -width indent
.It Va bsize
.Va bsize
は、
.Nm
表のバケットサイズを定義し、デフォルト値で 256 バイトです。
ディスク常駐テーブルと大型データ項目については、
ページサイズを拡大したほうが望ましいかもしれません。
.TP
ffactor
.I ffactor
.It Va ffactor
.Va ffactor
.I hash
.Nm
表内の望ましい密度を表示します。
これは一つのバケット内に累積可能なキー数の概算であり、
いつハッシュ表の拡大や縮小を行なうべきかを決定します。
いつ
.Nm
表の拡大や縮小を行なうべきかを決定します。
デフォルト値は 8 です。
.TP
nelem
.I nelem
.It Va nelem
.Va nelem
ハッシュ表の最終サイズの推測値です。
.Nm
表の最終サイズの推測値です。
未設定あるいは低い値に設定されると、わずかな性能劣化が見られる
かもしれませんが、ハッシュ表はキー入力に応じて円滑に拡張されます。
デフォルト値は 1 です。
.TP
cachesize
.It Va cachesize
メモリキャッシュの推奨最大バイトサイズです。
この値は単なる提言であり、このアクセス方式は、
この値は
.Em 単なる
提言であり、このアクセス方式は、
失敗するよりはメモリを余計に割り当てるでしょう。
.TP
hash
.I hash
はユーザ定義のハッシュ関数です。
可能なデータすべてに対して等しく性能の良いハッシュ関数はないため、
ユーザは、組み込みハッシュ関数が特定データセットに充分な性能が出ないことに
.It Va hash
.Va hash
はユーザ定義の
.Nm
関数です。
可能なデータすべてに対して等しく性能の良い
.Nm
関数はないため、
ユーザは、組み込み
.Nm
関数が特定データセットに充分な性能が出ないことに
気がつくことがあるかもしれません。
ユーザ指定ハッシュ関数は 2 個の引数 (文字列へのポインタと長さ) を取り、
ユーザ指定
.Nm
関数は 2 個の引数 (文字列へのポインタと長さ) を取り、
ハッシュ値として使われる 32 ビット量を返します。
.TP
lorder
.It Va lorder
保存されたデータベースメタデータ
内の整数のバイトオーダです。
数字は整数としての順序を表していなければなりません。
例えば、ビッグエンディアンの順序は 4,321 になります。
.I lorder
.Va lorder
0 (順序指定なし) の時は現行のホストのオーダーが使われます。
ファイルがあらかじめ存在していれば、指定値が無視されて、
ツリーが構築された時に指定された値が使われます。
.PP
ファイルがあらかじめ存在し、(かつ O_TRUNC フラグが指定されてないと) 、
bsize, ffactor, lorder, nelem の各パラメータに指定された値は無視され、
.El
.Pp
ファイルがあらかじめ存在し、(かつ
.Dv O_TRUNC
フラグが指定されてないと) 、
.Va bsize ,
.Va ffactor ,
.Va lorder ,
.Va nelem
の各パラメータに指定された値は無視され、
ツリーの構築時に指定された値が使われます。
.PP
ハッシュ関数が指定されていると、
.I hash_open
は指定されたハッシュ関数がデータベース作成時と同じものであるかを判別し、
.Pp
.Nm
関数が指定されていると、
.Fn hash_open
は指定された
.Nm
関数がデータベース作成時と同じものであるかを判別し、
異なっていれば open に失敗します。
.PP
.Pp
.I dbm
.Em dbm
および旧
.I ndbm
.Em ndbm
ルーチンへの下位互換インタフェースが提供されていますが、
これらのインタフェースは従来のファイルフォーマットとは互換ではありません。
.SH エラー
.Sh エラー
ライブラリルーチン
.IR dbopen (3)
.Xr dbopen 3
で指定されている任意のエラーに対し、
.I hash
.Nm
アクセス方式ルーチンが失敗すると、
.I errno
.Va errno
をセットします。
.SH 関連項目
.IR btree (3)
.IR dbopen (3)
.IR mpool (3)
.IR recno (3)
.sp
.sp
.IR "Dynamic Hash Tables" ,
Per-Ake Larson, Communications of the ACM, April 1988.
.sp
.IR "A New Hash Package for UNIX" ,
Margo Seltzer, USENIX Proceedings, Winter 1991.
.SH バグ
.Sh 関連項目
.Xr btree 3 ,
.Xr dbopen 3 ,
.Xr mpool 3 ,
.Xr recno 3
.Rs
.%T "Dynamic Hash Tables"
.%A Per-Ake Larson
.%R "Communications of the ACM"
.%D April 1988
.Re
.Rs
.%T "A New Hash Package for UNIX"
.%A Margo Seltzer
.%R "USENIX Proceedings"
.%D Winter 1991
.Re
.Sh バグ
バイトオーダとして、ビッグエンディアンとリトルエンディアンだけが
サポートされています。

View file

@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)intro.3 8.1 (Berkeley) 6/5/93
.\" %Id: intro.3,v 1.6 1998/06/06 05:50:50 jkoshy Exp %
.\"
.\" %FreeBSD: src/share/man/man3/intro.3,v 1.9.2.4 2001/08/17 13:08:36 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 5, 1993
.Dt INTRO 3
.Os BSD 4
@ -58,7 +58,7 @@
.\" they are described separately in
.\" .Xr intro 3f .
.Pp
各種ライブラリ一覧 ( 括弧内はローダフラグ ):
各種ライブラリ一覧 (括弧内はローダフラグ):
.Bl -tag -width "libc (-lc)"
.It Xr libc Pq Fl l Ns Ar c
標準 C ライブラリ関数。
@ -74,17 +74,12 @@ C
.Tn 標準 I/O
ルーチン、データベース・ルーチン、ビット・オペレータ、ストリング・
オペレータ、キャラクタ試験とキャラクタ・オペレータ、des 暗号ルーチン、
記憶割当、時間関数、シグナル処理他です。
.It Xo
.Xr libcurses
.Pf ( Fl l Ns Ar curses
.Fl l Ns Ar termcap )
.Xc
2次元非ビットマップ・ディスプレィ端末用の端末独立
スクリーン管理ルーチン。
(
.Xr curses 3
を参照)
記憶割当、時間関数、信号処理他です。
.It Xr libcurses Pq Fl l Ns Ar curses Fl l Ns Ar termcap
2 次元非ビットマップ・ディスプレィ端末用の端末独立
スクリーン管理ルーチン (
.Xr ncurses 3
を参照)。
.It Xr libcompat Pq Fl l Ns Ar compat
廃止されているが、
.Bx 4.3
@ -97,8 +92,9 @@ C
使用すべき適切なインタフェースが表示されています。
.It Xr libkvm Pq Fl l Ns Ar kvm
カーネル・メモリへのアクセスに使われる関数はこのライブラリにあります。
実行中のシステムとクラッシュ・ダンプの両方に使用できます。
.Pq Xr kvm 3 を参照
実行中のシステムとクラッシュ・ダンプの両方に使用できます (
.Xr kvm 3
を参照)。
.It Xr libl Pq Fl l Ns Ar l
.Xr lex 1
用ライブラリ
@ -110,9 +106,10 @@ C
.\" .Xr pc 1
が必要なときにロードされますが、
.Fl l Ns Ar m
フラッグを要求するCコンパイラからは
ロードされません(
.Xr math 3 を参照 )。
フラッグを要求する C コンパイラからは
ロードされません (
.Xr math 3
を参照)。
.It Xr libmp Pq Fl l Ns Ar mp
.\" .It Xr libom
.\" Old math library.
@ -127,8 +124,9 @@ C
.\" .It Xr libresolv Pq Fl l Ns Ar resolv
.\" Routines for network address resolution.
.It Xr libtermcap Pq Fl l Ns Ar termcap
端末独立操作ライブラリ・パッケージ(
.Xr termcap 3 を参照 )。
端末独立操作ライブラリ・パッケージ (
.Xr termcap 3
を参照 )。
.\" .It libvt0.a
.It Xr liby Pq Fl l Ns Ar y
.Xr yacc 1
@ -158,7 +156,7 @@ C
.\" .Sy Name Description
.\" .El
.Sh 歴史
.Nm intro
.Nm
マニュアルは
.At v7
で取り入れられました。

View file

@ -30,184 +30,204 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)mpool.3 8.1 (Berkeley) 6/4/93
.\" %Id: mpool.3,v 1.4 1997/02/22 14:57:51 peter Exp %
.\"
.\" %FreeBSD: src/lib/libc/db/man/mpool.3,v 1.5.2.3 2001/08/17 15:42:30 ru Exp %
.\" $FreeBSD$
.TH MPOOL 3 "June 4, 1993"
.UC 7
.SH 名称
mpool \- 共有メモリバッファプール
.SH 書式
.nf
.ft B
#include <db.h>
#include <mpool.h>
MPOOL *
mpool_open (DBT *key, int fd, pgno_t pagesize, pgno_t maxcache);
void
mpool_filter (MPOOL *mp, void (*pgin)(void *, pgno_t, void *),
.ti +5
void (*pgout)(void *, pgno_t, void *), void *pgcookie);
void *
mpool_new (MPOOL *mp, pgno_t *pgnoaddr);
void *
mpool_get (MPOOL *mp, pgno_t pgno, u_int flags);
int
mpool_put (MPOOL *mp, void *pgaddr, u_int flags);
int
mpool_sync (MPOOL *mp);
int
mpool_close (MPOOL *mp);
.ft R
.fi
.SH 解説
.IR Mpool
.\"
.Dd June 4, 1993
.Dt MPOOL 3
.Os
.Sh 名称
.Nm mpool
.Nd 共有メモリバッファプール
.Sh 書式
.Fd "#include <db.h>"
.Fd "#include <mpool.h>"
.Ft MPOOL *
.Fn mpool_open "void *key" "int fd" "pgno_t pagesize" "pgno_t maxcache"
.Ft void
.Fo mpool_filter
.Fa "MPOOL *mp"
.Fa "void (*pgin)(void *, pgno_t, void *)"
.Fa "void (*pgout)(void *, pgno_t, void *)"
.Fa "void *pgcookie"
.Fc
.Ft void *
.Fn mpool_new "MPOOL *mp" "pgno_t *pgnoaddr"
.Ft void *
.Fn mpool_get "MPOOL *mp" "pgno_t pgno" "u_int flags"
.Ft int
.Fn mpool_put "MPOOL *mp" "void *pgaddr" "u_int flags"
.Ft int
.Fn mpool_sync "MPOOL *mp"
.Ft int
.Fn mpool_close "MPOOL *mp"
.Sh 解説
.Nm
は、ページを基準にした、ファイルのバッファ管理を行なう
ライブラリインタフェースです。バッファはプロセス間で共有できます。
.PP
.Pp
関数
.I mpool_open
.Fn mpool_open
はメモリプールを初期化します。引数
.I key
.Fa key
は、バッファ
を共有する複数のプロセス間でネゴシエートするために使われるバイトストリングです。
を共有する複数のプロセス間でネゴシエートするために使われる
バイトストリングです。
ファイルバッファが共有メモリにマップされた場合は、同じキーを
使用しているすべてのプロセスがバッファを共有します。
.I key
がヌルである場合、バッファはプライベートメモリにマップされます。
.Fa key
.Dv NULL
である場合、バッファはプライベートメモリにマップされます。
引数
.I fd
.Fa fd
は、基礎となる
ファイルのファイル記述子で、検索可能になっている必要があります。
.I key
がヌルではなく、すでにマップされているファイルと一致する場合、引数
.I fd
.Fa key
.Dv NULL
ではなく、すでにマップされているファイルと一致する場合、引数
.Fa fd
は無視されます。
.PP
.Pp
引数
.I pagesize
.Fa pagesize
は、ファイルを分割するページのサイズ (バイト単位) です。引数
.I maxcach
.Fa maxcache
は、一度にキャッシュする、基礎となるファイルの最大ページ数です。
この値は、ファイルのバッファを共有するプロセス数とは
関係ありませんが、ファイルを共有するプロセスが指定した最大値になります。
.PP
.Pp
関数
.I mpool_filter
.Fn mpool_filter
は、ページの透過的入出力処理を行ないます。
.I pgin
.Fa pgin
関数が指定されると、保存ファイルからメモリプールにバッファを
読み込むたびに呼び出されます。
.I pgout
.Fn pgout
関数が指定されると、保存ファイルにバッファが書き込まれるたびに
呼び出されます。どちらの関数も、
.I pgcookie
.Fa pgcookie
ポインタ、ページ番号、読み書きを行なうページのポインタで呼び出されます。
.PP
.Pp
関数
.I mpool_new
は、MPOOL ポインタとアドレスを引数として取ります。
新しいページを割り振ることができる場合は、ページのポインタが返され、ページ番号が
.I pgnoaddr
アドレスに保存されます。割り振ることができない場合はヌルが返され、
.I errno
が設定されます。
.PP
関数
.I mpool_get
は、MPOOL ポインタとページ番号を引数として取ります。
ページが存在する場合は、ページのポインタが返されます。
ページが存在しない場合はヌルが返され、
.I errno
がセットされます。フラグパラメータは、今のところ使用されていません。
.PP
関数
.I mpool_put
.Fn mpool_new
は、
.I pgaddr
.Ft MPOOL
ポインタとアドレスを引数として取ります。
新しいページを割り振ることができる場合は、ページのポインタが返され、
ページ番号が
.Fa pgnoaddr
アドレスに保存されます。割り振ることができない場合は
.Dv NULL
が返され、
.Va errno
が設定されます。
.Pp
関数
.Fn mpool_get
は、
.Ft MPOOL
ポインタとページ番号を引数として取ります。
ページが存在する場合は、ページのポインタが返されます。
ページが存在しない場合は
.Dv NULL
が返され、
.Va errno
がセットされます。
.Fa flags
パラメータは、今のところ使用されていません。
.Pp
関数
.Fn mpool_put
は、
.Fa pgaddr
が参照するページを解放します。
.I pgaddr
.Fa pgaddr
は、あらかじめ
.I mpool_get
.Fn mpool_get
または
.I mpool_new
が返したアドレスでなければなりません。フラグの値は
以下の値の論理和によって指定されます。
.TP
MPOOL_DIRTY ページが修正されており、保存ファイルに書き込む必要があります。
.PP
.Fn mpool_new
が返したアドレスでなければなりません。
.Fa flags
パラメータは以下の値の論理和 (
.Em or
) によって指定されます。
.Bl -tag -width indent
.It Dv MPOOL_DIRTY
ページが修正されており、保存ファイルに書き込む必要があります。
.El
.Pp
関数
.I mpool_put
.Fn mpool_put
は、正常終了時には 0 を返し、エラーのときは -1 を返します。
.PP
.Pp
関数
.I mpool_sync
は、MPOOL ポインタに対して、変更されたすべてのページを
.Fn mpool_sync
は、
.Ft MPOOL
ポインタに対して、変更されたすべてのページを
保存ファイルに書き込みます。
.I mpool_sync
.Fn mpool_sync
は、正常終了時には 0 を返し、エラーのときは -1 を返します。
.PP
.Pp
関数
.I mpool_close
.Fn mpool_close
は、メモリプールクッキーに対して割り振られたメモリを解放します。
修正されたページは、保存ファイルに書き込まれません。
.I mpool_close
修正されたページは、保存ファイルに書き込まれ
.Em ません
.Fn mpool_close
は、正常終了時には 0 を返し、エラーのときは -1 を返します。
.SH エラー
.Sh エラー
関数
.I mpool_open
.Fn mpool_open
でエラーが発生すると、ライブラリルーチン
.IR malloc (3)
.Xr malloc 3
で指定されたエラーの
.I errno
.Va errno
がセットされます。
.PP
.Pp
関数
.I mpool_get
.Fn mpool_get
でエラーが発生すると、以下の
.I errno
.Va errno
がセットされます。
.TP 15
[EINVAL]
.Bl -tag -width Er
.It Bq Er EINVAL
要求されたレコードが存在しない。
.PP
.El
.Pp
関数
.I mpool_new
.Fn mpool_new
.I mpool_get
.Fn mpool_get
でエラーが発生すると、ライブラリルーチン
.IR read (2) ,
.IR write (2) ,
.IR malloc (3)
.Xr read 2 ,
.Xr write 2 ,
.Xr malloc 3
で指定されたエラーの
.I errno
.Va errno
がセットされます。
.PP
.Pp
関数
.I mpool_sync
.Fn mpool_sync
でエラーが発生すると、ライブラリルーチン
.IR write (2)
.Xr write 2
で指定されたエラーの
.I errno
.Va errno
がセットされます。
.PP
.Pp
関数
.I mpool_close
.Fn mpool_close
でエラーが発生すると、ライブラリルーチン
.IR free(3)
.Xr free 3
指定したエラーの
.I errno
.Va errno
がセットされます。
.SH 関連項目
.IR dbopen (3),
.IR btree (3),
.IR hash (3),
.IR recno (3)
.Sh 関連項目
.Xr btree 3 ,
.Xr dbopen 3 ,
.Xr hash 3 ,
.Xr recno 3

View file

@ -33,8 +33,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)multibyte.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/locale/multibyte.3,v 1.6.2.5 2001/12/14 18:33:54 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt MULTIBYTE 3
.Os
@ -45,8 +46,10 @@
.Nm wcstombs ,
.Nm wctomb
.Nd C 言語のマルチバイト文字サポート
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdlib.h>
.In stdlib.h
.Ft int
.Fn mblen "const char *mbchar" "size_t nbytes"
.Ft size_t
@ -59,56 +62,52 @@
.Fn wctomb "char *mbchar" "wchar_t wchar"
.Sh 解説
中国語のような自然言語の基本要素は、C 言語の
.Va char
.Va char Ns s
型ひとつでは一意に表現できません。
標準 C 言語規格では、ワイド文字とマルチバイト文字
という、自然言語のエンコード方法の拡張を扱う 2 つの方法がサポート
されています。ワイド文字は、
基本要素ひとつひとつを型
標準 C 言語規格では、
.Em ワイド
文字と
.Em マルチバイト
文字という、自然言語のエンコード方法の拡張を扱う 2 つの異なる方法がサポートされています。
ワイド文字は、基本要素ひとつひとつを
.Va wchar_t
の単一オブジェクトにマップできるような内部表現です。マルチバイト文字は
入出力で使用され、C 言語の
.Va char
型のシーケンスとして基本要素ひとつひとつをコード化します。
マルチバイト文字では、個々の基本要素は、
1 バイト以上
.Pq Dv MB_CHAR_MAX バイトまで
にマップされます。
型の単一オブジェクトへマップできるような内部表現です。
マルチバイト文字は入出力に使用され、C 言語の
.Va char Ns s
型の並びとして基本要素ひとつひとつをコード化します。
マルチバイト文字では、個々の基本要素は 1 バイトまたはそれ以上(最大
.Dv MB_CHAR_MAX
バイト ) にマップされます。
.Pp
ワイド文字とマルチバイト文字の解釈を支配するのは、カレントロケール
現在のロケール
.Pq Xr setlocale 3
です。ロケールカテゴリ
によりワイド文字とマルチバイト文字のどちらで解釈するかが決定されます。
ロケールカテゴリ
.Dv LC_CTYPE
の指定によりこの解釈を制御します。
.Va wchar_t
は、すべてのロケールでのワイドキャラクタ表現の最大値を
十分収容できるだけの大きさを持ちます。
は、ワイド文字を表現するにあたり、すべてのロケールに対して最大の値を収容できるだけの十分な大きさを持ちます。
.Pp
マルチバイト文字列には、指定された表現方式の中で規定されるモード間での
切り替えを行なう
マルチバイト文字列には、与えられた表現中で規定されるモード間の切り替えをするための
.Sq シフト
インジケータが含まれることがあります。シフトの発生を表すバイト列を
使用すると、これらのバイトは別の文字と見なされずに、それと隣接する
文字と一緒にまとめられます。
指示子が含まれることがあります。
明示的にシフトの発生を表すバイト列を使用すると、これらのバイトは別々の文字とはみなされずに、それと隣接する文字と一緒にまとめられます。
.Sq 初期
シフト状態は常に存在します。
シフト状態は区別されて、常に存在しています。
関数
.Fn mbstowcs
.Fn wcstombs
は、マルチバイト文字列が初期シフト状態から解釈されるべきと想定します。
は、マルチバイト文字列が初期シフト状態から始まって解釈されると仮定します。
関数
.Fn mblen ,
.Fn mbtowc ,
.Fn wctomb
は、内部で静的シフト状態を維持管理します。
は、内部で静的シフト状態を維持管理します。
ポインタ
.Fa mbchar
.Dv NULL
である呼び出しでは、カレントロケールがシフト状態を必要とする場合は
ゼロ以外が戻されます。シフト状態を必要としない場合はゼロが戻されます。
がヌルである呼び出しでは、現在のロケールがシフト状態を必要とする場合は 0 以外が戻されます。シフト状態を必要としない場合は 0 が戻されます。
シフト状態を必要とする場合、シフト状態は初期状態にリセットされます。
.Dv LC_CTYPE
@ -118,11 +117,12 @@
を呼び出した後では、内部シフト状態は未定義になります。
.Pp
処理に便利なように、値が 0 のワイド文字
.Pq ナルワイド文字
は、ワイド文字列のターミネータとして認識されます。値が 0 の文字
.Pq ナルバイト
は、マルチバイト文字列のターミネータとして認識されます。
マルチバイト文字では、ナルバイトが許可されていません。
(ヌルワイド文字)
は、ワイド文字列の終了として認識されます。
値が 0 の文字
(ヌルバイト)
は、マルチバイト文字列の終了として認識されます。
マルチバイト文字では、ヌルバイト列は許可されていません。
.Pp
関数
.Fn mblen
@ -130,14 +130,13 @@
.Fa mbchar
のバイト長を算出します。
.Fa nbytes
バイトまでが検査されます。
までが検査されます。
.Pp
関数
.Fn mbtowc
マルチバイト文字
はマルチバイト文字
.Fa mbchar
をワイド文字に
変換し、その結果を
をワイド文字に変換し、その結果を
.Fa wcharp
が指すオブジェクトに格納します。
.Fa nbytes
@ -145,26 +144,24 @@
.Pp
関数
.Fn wctomb
ワイド文字
はワイド文字
.Fa wchar
をマルチバイト文字に
変換し、その結果を
をマルチバイト文字に変換し、その結果を
.Fa mbchar
に格納します。
.Fa mbchar
が指すオブジェクトは、
そのマルチバイト文字を収容できるだけの大きさを持たねばなりません。
が指すオブジェクトは、マルチバイト文字を収容できるだけの大きさを持たねばなりません。
.Pp
関数
.Fn mbstowcs
は、マルチバイト文字列
.Fa mbstring
をワイド文字列
.Fa wcstring
.Fa wcstring .
に変換します。
.Fa nwchars
以上のワイド文字は格納されません。最後のナルワイド文字は、空きが
ある場合に追加されます。
の大きさのワイド文字までしか格納されません。
終了を示すヌルワイド文字は、空きがある場合に付加されます。
.Pp
関数
.Fn wcstombs
@ -176,37 +173,32 @@
.Fa nbytes
バイトまでが
.Fa mbstring
に格納されます。文字列の最後の断片的なマルチバイト文字は格納されません。
マルチバイト文字列は、空きがあればナルバイトで終わります。
.Sh 戻り値
カレントロケールがマルチバイト文字がサポートしていない場合、
これらすべての関数は、文字を処理できる場合は -1 を戻し、
処理できない場合は 0 を戻します。
に格納されます。
文字列の最後の断片的なマルチバイト文字は格納されません。マルチバイト文字列は、空きがあればヌルで終わります。
.Sh "戻り値
現在のロケールでマルチバイト文字がサポートされていない場合、これらすべての関数は、文字を処理できる場合は \-1 を返し、処理できない場合は 0 を返します。
.Pp
.Fa mbchar
.Dv NULL
である場合、
関数
である場合、関数
.Fn mblen ,
.Fn mbtowc ,
.Fn wctomb
は、シフト状態がサポートされている場合は 0 以外を戻し、
シフト状態がサポートされていない場合は 0 を戻します。
は、シフト状態がサポートされている場合は 0 以外を返し、シフト状態がサポートされていない場合は 0 を返します。
.Fa mbchar
が有効であると、この関数は
が有効であると、これらの関数は
.Fa mbchar
で処理されたバイト数を戻します。マルチバイト文字を認識できない場合か
変換できない場合は -1 を戻します。
で処理されたバイト数を返します。マルチバイト文字を認識できない場合か変換できない場合は \-1 を返します。
.Pp
関数
.Fn mbstowcs
関数は、変換されたワイド文字数を戻します。最後の
ナルワイド文字は数に含めません。
は、変換されたワイド文字の数を返します。終了を示すヌルワイド文字は数に含めません。
関数
.Fn wcstombs
関数は、変換されたバイト数を戻します。最後の
ナルバイトは数に含めません。不正なマルチバイト文字があると、
どちらの関数も -1 を戻します。
.Sh 関連項目
は、変換されたバイト数を返します。終了を示すヌルバイトは数に含めません。
不正なマルチバイト文字があると、どちらの関数も \-1 を返します。
.Sh "関連項目
.Xr mbrune 3 ,
.Xr rune 3 ,
.Xr setlocale 3 ,
@ -217,11 +209,10 @@
.Fn mblen ,
.Fn mbstowcs ,
.Fn mbtowc ,
.Fn wcstombs ,
.Fn wcstombs
.Fn wctomb
.St -ansiC
.St -isoC
に準拠しています。
.Sh バグ
現在のシステムは、シフト状態をサポートしません。
.\"kuma 1999-11-12

View file

@ -1,46 +1,53 @@
.\" @(#)publickey.3r 2.1 88/08/07 4.0 RPCSRC
.\" %FreeBSD: src/lib/libc/rpc/publickey.3,v 1.4.2.1 2001/01/18 10:20:24 ru Exp %
.\" $FreeBSD$
.TH PUBLICKEY 3R "6 October 1987"
.SH 名称
publickey, getpublickey, getsecretkey \- 公開鍵か秘密鍵の入手
.SH 書式
.nf
.B #include <rpc/rpc.h>
.B #include <rpc/key_prot.h>
.LP
.B getpublickey(netname, publickey)
.B char netname[\s-1MAXNETNAMELEN\s0+1];
.B char publickey[\s-1HEXKEYBYTES\s0+1];
.LP
.B getsecretkey(netname, secretkey, passwd)
.B char netname[\s-1MAXNETNAMELEN\s0+1];
.B char secretkey[\s-1HEXKEYBYTES\s0+1];
.B char *passwd;
.fi
.SH 解説
.IX "getpublickey function" "" "\fLgetpublickey()\fP function"
.IX "getsecretkey function" "" "\fLgetsecretkey()\fP function"
このルーチンでは、公開鍵と秘密鍵を
.SM YP
.\"
.Dd October 6, 1987
.Dt PUBLICKEY 3
.Os
.Sh 名称
.Nm publickey , getpublickey , getsecretkey
.Nd 公開鍵か秘密鍵の入手
.Sh ライブラリ
.Lb librpcsvc
.Sh 書式
.Fd "#include <rpc/rpc.h>"
.Fd "#include <rpc/key_prot.h>"
.Ft int
.Fo getpublickey
.Fa "char netname[MAXNETNAMELEN+1]"
.Fa "char publickey[HEXKEYBYTES+1]"
.Fc
.Ft int
.Fo getsecretkey
.Fa "char netname[MAXNETNAMELEN+1]"
.Fa "char secretkey[HEXKEYBYTES+1]"
.Fa "char *passwd"
.Fc
.Sh 解説
これらのルーチンは、公開鍵と秘密鍵を
.Tn YP
データベースから入手します。
.B getsecretkey(\|)
には
.I passwd
という引数があり、データベースに保存されている
暗号化された秘密鍵の復号化に使用されます。どちらのルーチンも、鍵が
見つかると 1 を戻し、見つからないと 0 を戻します。
.Fn getsecretkey
には追加の引数
.Fa passwd
があり
データベースに保存されている、暗号化された秘密鍵の復号化に使用されます。
どちらのルーチンも、鍵が見つかると 1 を戻し、見つからないと 0 を戻します。
鍵は、
.SM NULL
.Dv NULL
で終わる 16 進文字列として戻されます。
.B getsecretkey(\|)
.Fn getsecretkey
に指定されたパスワードで秘密鍵を復号化できない場合は 1 が戻されますが、
.I secretkey
.Fa secretkey
引数は
.SM NULL
文字列 (``'') になります。
.SH 関連項目
.BR publickey (5)
.LP
.TX NETP
.Dv NULL
文字列
.Pq Dq
になります。
.Sh 関連項目
.Xr publickey 5
.Pp
.Pa /usr/share/doc/psd/23.rpc
.I \s-1RPC\s0 Programmer's Manual
.%T "RPC Programmer's Manual"

View file

@ -30,178 +30,189 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)recno.3 8.5 (Berkeley) 8/18/94
.\"
.\" %FreeBSD: src/lib/libc/db/man/recno.3,v 1.4.2.1 2001/01/12 08:30:10 ru Exp %
.\" $FreeBSD$
.TH RECNO 3 "August 18, 1994"
.UC 7
.SH 名称
recno \- レコード番号データベースへのアクセス手法
.SH 書式
.nf
.ft B
#include <sys/types.h>
#include <db.h>
.ft R
.fi
.SH 解説
.I dbopen
.\"
.Dd August 18, 1994
.Dt RECNO 3
.Os
.Sh 名称
.Nm recno
.Nd レコード番号データベースへのアクセス手法
.Sh 書式
.Fd "#include <sys/types.h>"
.Fd "#include <db.h>"
.Sh 解説
.Fn dbopen
ルーチンは、データベースファイルのライブラリインタフェース
ですが、そこでサポートされているファイルフォーマットの 1 つに、
レコード番号ファイルがあります。データベースアクセス手法の一般事項については、
.IR dbopen (3)
を参照してください。このマニュアルページでは、recno の固有事項について
.Xr dbopen 3
を参照してください。このマニュアルページでは、
.Nm
の固有事項について
説明します。
.PP
.Pp
レコード番号データ構造は、フラットファイルフォーマットで保存された、
可変長あるいは固定長のレコードで、論理レコード番号でアクセスされます。
レコード番号 5 が存在するということは、レコード 1 からレコード 4 が
存在することになります。レコード番号 1 を削除すると、レコード番号 5 は
レコード番号 4 になり、レコード番号 1 の後ろを指していたカーソルは、
1 レコード下にシフトします。
.PP
.I dbopen
で提供される recno へのアクセス手法に固有なデータ構造は、
<db.h> インクルードファイルで以下のように定義されています。
.PP
.Pp
.Fn dbopen
で提供される
.Nm
へのアクセス手法に固有なデータ構造は、
.Aq Pa db.h
インクルードファイルで以下のように定義されています。
.Bd -literal
typedef struct {
.RS
u_long flags;
.br
u_int cachesize;
.br
u_int psize;
.br
int lorder;
.br
size_t reclen;
.br
u_char bval;
.br
char *bfname;
.RE
u_long flags;
u_int cachesize;
u_int psize;
int lorder;
size_t reclen;
u_char bval;
char *bfname;
} RECNOINFO;
.PP
.Ed
.Pp
この構造体のエレメントは、以下のように定義されます。
.TP
flags
フラグ値は、以下の値の
.IR OR (論理和)
を取ることで指定されます。
.RS
.TP
R_FIXEDLEN
.Bl -tag -width indent
.It Va flags
フラグ値は、以下の値の論理和 (
.Em or
) を取ることで指定されます。
.Bl -tag -width indent
.It Dv R_FIXEDLEN
レコードは固定長で、バイトで区切られていません。
構造体のエレメント
.I reclen
.Va reclen
がレコードの長さを指定し、構造体のエレメント
.I bval
.Va bval
がパッドキャラクタとして使用されます。データベースに挿入された
レコードは、
.I reclen
.Va reclen
バイトより小さい場合、自動的にパッドされます。
.TP
R_NOKEY
.I dbopen
.It Dv R_NOKEY
.Fn dbopen
が指定するインタフェースでは、
シーケンシャルレコード検索で、呼び出し側のキーとデータ構造の両方にデータが
入ります。R_NOKEY フラグを指定すると、
.I cursor
入ります。
.Dv R_NOKEY
フラグを指定すると、
.Em cursor
ルーチンがなくてもキー構造に
データが入ります。これにより、アプリケーションは、中間に存在するレコード
すべてを読み込まずに、ファイルの最後のレコードを取り出せます。
.TP
R_SNAPSHOT
.It Dv R_SNAPSHOT
このフラグは、修正されていないレコードを
オリジナルファイルから読み込む代わりに、
.I dbopen
.Fn dbopen
が呼び出された場合にファイル
のスナップショットを取ることを要求します。
.RE
.TP
cachesize
メモリキャッシュの最大サイズ ( バイト単位 ) です。この値は
.B 参考程度のもの
.El
.It Va cachesize
メモリキャッシュの最大サイズ (バイト単位) です。この値は
.Em 参考程度のもの
で、アクセス手法はエラーにならずにこれ以上のメモリを割り
振ります。
.I cachesize
を 0 にすると ( サイズを指定しないと ) 、デフォルトの
.Va cachesize
を 0 にすると (サイズを指定しないと)、デフォルトの
キャッシュが使用されます。
.TP
psize
recno へのアクセス手法は、レコードのメモリのコピーを btree に
.Nm
へのアクセス手法は、レコードのメモリのコピーを btree に
保存します。
この値は、そのツリーのノードで使用されるページのサイズ ( バイト単位 ) です。
.I psize
が 0 である場合は ( ページサイズが指定されていない場合は )
この値は、そのツリーのノードで使用されるページのサイズ (バイト単位) です。
.Va psize
が 0 である場合は (ページサイズが指定されていない場合は)
基礎となるファイルシステムの I/O ブロックサイズに従って
ページサイズが選択されます。詳細については、
.IR btree(3)
.Xr btree 3
を参照してください。
.TP
lorder
.It Va lorder
保存されているデータベースメタデータの整数のバイトオーダ
です。整数のオーダを数値で表現する必要があります。たとえば
ビッグエンディアンのばバイトオーダは、4321 の順番になります。
.I lorder
が 0 である場合は、( オーダが指定されていない場合は )
.Va lorder
が 0 である場合は、(オーダが指定されていない場合は)
現行ホストのオーダが使用されます。
.TP
reclen
.It Va reclen
固定長レコードの長さです。
.TP
bval
.It Va bval
可変長レコードの場合は、レコードの終わりをマークする区切り
バイトで、固定長レコードの場合は、パッドキャラクタです。値を指定しないと、
可変長レコードの最後は改行 ( ``\en'') でマークされ、
可変長レコードの最後は改行
.Pq Dq \en
でマークされ、
固定長レコードはスペースでパッドされます。
.TP
bfname
recno アクセス手法は、レコードのメモリのコピーを btree に
保存します。NULL 以外の bfname は、btree ファイルの dbopen の
.It Va bfname
.Nm
アクセス手法は、レコードのメモリのコピーを btree に保存します。
.Dv NULL
以外の
.Va bfname
は、btree ファイルの
.Fn dbopen
ファイル名として指定されたかのように、btree ファイルの名前を指定します。
.PP
recno へのアクセス手法で使用するキーとデータのペアのデータ部分は、その
.El
.Pp
.Nm
へのアクセス手法で使用するキーとデータのペアのデータ部分は、その
他のアクセス手法と同じですが、キーは異なります。キーの
.I data
フィールドは、<db.h>インクルードファイルで定義された、タイプ
.IR recno_t
.Va data
フィールドは、
.Aq Pa db.h
インクルードファイルで定義された、タイプ
.Ft recno_t
のメモリ位置を指す
ポインタでなければなりません。通常の場合、このタイプは、システムで
使用できる最大の符号なし整数タイプです。キーの
.I size
.Va size
フィールドは、そのタイプのサイズである必要があります。
.PP
基礎となる recno アクセス手法ファイルでは、メタデータを
関連付けられないので、デフォルト値に対する変更内容 ( たとえばレコードの
固定長やバイト区切り値 ) は、ファイルを開くたびに明確に指定する
.Pp
基礎となる
.Nm
アクセス手法ファイルでは、メタデータを
関連付けられないので、デフォルト値に対する変更内容 (たとえばレコードの
固定長やバイト区切り値) は、ファイルを開くたびに明確に指定する
必要があります。
.PP
.IR dbopen
.Pp
.Fn dbopen
が指定するインタフェースでは、
.I put
.Va put
インタフェースを使用して
新しいレコードを作成すると、レコード番号が、現在のデータベースの最大
レコードより 1 以上大きい場合、複数の空のレコードが作成されます。
.SH エラー
.I recno
.Sh エラー
.Nm
アクセス手法ルーチンがエラーになると、ライブラリルーチン
.IR dbopen (3)
.Xr dbopen 3
に指定されたエラーか以下のエラーに
.I errno
.Va errno
が設定されます。
.TP
[EINVAL]
.Bl -tag -width Er
.It Bq Er EINVAL
固定長データベースに、大きすぎるレコードを
追加しようとしました。
.SH 関連項目
.IR btree(3) ,
.IR dbopen(3) ,
.IR hash(3) ,
.IR mpool(3)
.sp
.IR "Document Processing in a Relational Database System,"
Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman,
Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.
.SH バグ
.El
.Sh 関連項目
.Xr btree 3 ,
.Xr dbopen 3 ,
.Xr hash 3 ,
.Xr mpool 3
.Rs
.%T "Document Processing in a Relational Database System"
.%A Michael Stonebraker
.%A Heidi Stettner
.%A Joseph Kalash
.%A Antonin Guttman
.%A Nadene Lynn
.%R "Memorandum No. UCB/ERL M82/32"
.%D May 1982
.Re
.Sh バグ
ビッグエンディアンのバイトオーダとリトルエンディアンのバイトオーダのみ
がサポートされています。

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,11 @@
.\" @(#)rpc_secure.3n 2.1 88/08/08 4.0 RPCSRC; from 1.19 88/06/24 SMI
.\" %Id: rpc_secure.3,v 1.3 1998/01/16 13:33:09 bde Exp %
.\" %FreeBSD: src/lib/libc/rpc/rpc_secure.3,v 1.6.2.4 2001/08/17 15:42:41 ru Exp %
.\" $FreeBSD$
.\"
.\" %Id: rpc_secure.3,v 1.3 1998/01/16 13:33:09 bde Exp %
.Dd February 16, 1988
.Dt RPC 3
.Os
.Sh 名称
.Nm rpc_secure
.Nd 安全なリモートプロシージャコールのためのライブラリルーチン

View file

@ -1,49 +1,49 @@
.\" @(#)rtime.3n 2.1 88/08/08 4.0 RPCSRC; from 1.5 88/02/08 SMI
.\" %FreeBSD: src/lib/libc/rpc/rtime.3,v 1.4.2.1 2001/01/18 10:20:24 ru Exp %
.\" $FreeBSD$
.TH RTIME 3 "22 November 1987"
.SH 名称
rtime \- リモートタイムの入手
.SH 書式
.nf
.B #include <sys/types.h>
.B #include <sys/time.h>
.B #include <netinet/in.h>
.LP
.B int rtime(addrp, timep, timeout)
.B struct sockaddr_in \(**addrp;
.B struct timeval \(**timep;
.B struct timeval \(**timeout;
.fi
.SH 解説
.B rtime(\|)
.\"
.Dd November 22, 1987
.Dt RTIME 3
.Os
.Sh 名称
.Nm rtime
.Nd リモートタイムの入手
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd "#include <sys/types.h>"
.Fd "#include <sys/time.h>"
.Fd "#include <netinet/in.h>"
.Ft int
.Fo rtime
.Fa "struct sockaddr_in *addrp"
.Fa "struct timeval *timep"
.Fa "struct timeval *timeout"
.Fc
.Sh 解説
.Fn rtime
は、
.I addrp
.Fa addrp
が指すアドレスのインターネットタイムサーバを
参考にして、
.I timep
.Fa timep
が指す
.B timeval
構造体にリモートタイムを戻します。通常の
.Vt timeval
構造体にリモートタイムを戻します。
通常の
場合は、タイムサーバを参考にするときに
.SM UDP
.Tn UDP
プロトコルが使用されます。
.I timeout
.Fa timeout
パラメータは、ルーチンが応答を待つ期間を指定します。
.I timeout
.Fa timeout
.SM NULL\s0
.Dv NULL
を指定した場合、このルーチンは
.SM TCP
.Tn TCP
を使用し、タイムサーバから応答を
受けるまでブロックします。
.PP
問題がない場合、このルーチンは
0
を戻します。問題がある場合は
\-1
戻し、エラーの原因を反映する値に
.B errno
を設定します。
.SH 関連項目
.BR timed (8c)
.Sh 戻り値
.Rv -std rtime
.Sh 関連項目
.Xr timed 8

View file

@ -34,9 +34,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)stdarg.3 8.1 (Berkeley) 6/5/93
.\" %Id: stdarg.3,v 1.3 1997/03/07 03:27:55 jmg Exp %
.\"
.\" %FreeBSD: src/share/man/man3/stdarg.3,v 1.4.2.4 2001/08/17 13:08:36 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 5, 1993
.Dt STDARG 3
.Os
@ -65,10 +65,8 @@
.Em va_list
型のオブジェクトを宣言する必要があります。
これは、マクロ
.Fn va_start
.Fn va_arg
、および
.Fn va_start ,
.Fn va_arg ,
.Fn va_end
によって使用されます。
.Pp
@ -116,7 +114,7 @@
.Pp
次の引数がない場合、または
.Fa type
が(デフォルトの引数生成に従って生成されたような)
(デフォルトの引数生成に従って生成されたような)
実際の次の引数の型と互換性がない場合、
ランダムなエラーが発生します。
.Pp
@ -136,7 +134,7 @@
.Pp
.Fn va_end
マクロは値を返しません。
.Sh
.Sh 使用
関数
.Em foo
は、形式キャラクタのストリングを取り上げ、型を基礎にして各形式
@ -146,7 +144,7 @@ void foo(char *fmt, ...)
{
va_list ap;
int d;
char c, *p, *s;
char c, *s;
va_start(ap, fmt);
while (*fmt)
@ -169,13 +167,11 @@ void foo(char *fmt, ...)
}
.Ed
.Sh 規格
.Fn va_start
.Fn va_arg
、および
.Fn va_start ,
.Fn va_arg ,
.Fn va_end
の各マクロは
.St -ansiC
.St -isoC
に準拠しています。
.Sh 互換性
これらのマクロは、置き換えられる歴史的なマクロと互換性がありま

View file

@ -23,10 +23,10 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %Id: sysexits.3,v 1.4 1997/02/22 13:24:18 peter Exp %
.\" %FreeBSD: src/share/man/man3/sysexits.3,v 1.5.2.2 2000/12/08 14:59:05 ru Exp %
.\" $FreeBSD$
.\"
.\" "
.\" $FreeBSD$
.Dd March 31, 1996
.Os
.Dt SYSEXITS 3
@ -61,7 +61,7 @@
数の誤り、誤ったフラグ、パラメータの誤った構文など。
.It Sy EX_DATAERR Pq 65
入力データがどこかで不正です。これは、
ユーザデータのみに使用する必要があり、システムファイルには
ユーザデータのみに使用する必要があり、システムファイルには
使用すべきではありません。
.It Sy EX_NOINPUT Pq 66
入力ファイル (システムファイルではなく) が
@ -71,7 +71,7 @@
のようなエラーも含まれます (このようなエラーまで
捕えようとする場合)。
.It Sy EX_NOUSER Pq 67
ユーザが指定したものは存在しません。これは、
ユーザが指定したものは存在しません。これは、
メールアドレスやリモートログインに使用することができます。
.It Sy EX_NOHOST Pq 68
ホストが指定したものは存在しません。これは、
@ -92,7 +92,7 @@
などのようなエラーに
使うよう意図されています。これには、
passwd
ファイルに存在しないユーザ
ファイルに存在しないユーザに
対して
getuid
を返すようなものも含まれます。
@ -104,7 +104,7 @@ getuid
など) が存在しないか、開けないか、または何らかの
エラー (例えば、構文エラー) があります。
.It Sy EX_CANTCREAT Pq 73
(ユーザ指定の) 出力ファイルが作成できません。
(ユーザ指定の) 出力ファイルが作成できません。
.It Sy EX_IOERR Pq 74
いずれかのファイルに対して
I/O
@ -135,9 +135,9 @@ sendmail
括弧内に示してあります。
.Sh 参照
.Xr exit 3 ,
.Xr style 9 .
.Xr style 9
.Sh 歴史
.Nm sysexits
.Nm
ファイルは、
.Bx 4.3
以降のどこかで現れました。
@ -145,8 +145,7 @@ sendmail
このマニュアルページは、
.Pa <sysexits.h>
の中のコメント以後に
.ie t J\(:org Wunsch
.el Joerg Wunsch
.An J\(:org Wunsch
によって書かれました。
.Sh バグ
適切な終了値の選択が、しばしばあいまいになります。

View file

@ -34,6 +34,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)tmpnam.3 8.2 (Berkeley) 11/17/93
.\" %FreeBSD: src/lib/libc/stdio/tmpnam.3,v 1.5.2.4 2001/07/28 19:13:57 mikeh Exp %
.\"
.\" $FreeBSD$
.Dd November 17, 1993
@ -44,6 +45,8 @@
.Nm tmpfile ,
.Nm tmpnam
.Nd 一時ファイルルーチン
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <stdio.h>
.Ft FILE *
@ -57,54 +60,64 @@
関数は、
.Xr mkstemp 3
ルーチンによって返されたファイル記述子に
結合されたストリームへのポインタを返します。作成されたファイルは
結合されたストリームへのポインタを返します。
作成されたファイルは
.Fn tmpfile
関数が値を返す前にリンク解除され、そのファイルはファイルへの最後の参照が
閉じられた時に自動的に削除されます。そのファイルは、アクセス値
関数から返る前にリンクが削除されます。
そのため、そのファイルへの最後の参照が閉じられた時に、
ファイルは自動的に削除されます。
そのファイルは、アクセス値
.Ql w+
によって開かれます。
.Ev TMPDIR
が設定されている場合、ファイルは、この環境変数によって決定される
ディレクトリに作成されます。
.Ev TMPDIR
が設定されていない場合のデフォルト値は
.Pa /tmp
です。
.Pp
.Fn tmpnam
関数は、
関数は、過去のある不特定の時点で
.Dv P_tmpdir
ディレクトリの中で、過去のある特定されない
時点で既存のファイルを参照しなかったファイル名へのポインタを返します。
ディレクトリに存在していたファイルを参照していたものではない
ファイル名へのポインタを返します。
.Dv P_tmpdir
は、インクルードファイル
.Aq Pa stdio.h
の中で定義されます。引数
.Fa s
の中で定義されています。
引数
.Fa str
.Dv NULL
でない場合は、ファイル名はそれが参照するバッファにコピーされます。
それ以外の場合は、ファイル名は静的バッファにコピーされます。どちらの
場合でも、
それ以外の場合は、ファイル名は静的バッファにコピーされます。
どちらの場合でも、
.Fn tmpnam
関数はそのファイル名へのポインタを返します。
.Pp
.Fa s
.Fa str
により参照されるバッファの長さは、少なくとも
.Dv L_tmpnam
バイトなければなりません。
.Dv L_tmpnam
は、インクルードファイル
.Aq Pa stdio.h
の中で定義されます。
の中で定義されています。
.Pp
.Fn tempnam
関数は、
.Fn tmpnam
関数と同じようなものですが、一時ファイルと
ファイル名プレフィックスを収容しているディレクトリを指定する機能を
持っています。
関数と同じようなものですが、一時ファイルを収容するディレクトリと
ファイル名プレフィックスを指定する機能を持っています。
.Pp
一時ファイルを保存するディレクトリとしては、環境変数
.Ev TMPDIR
( これが設定されている場合 )、引数
(これが設定されている場合)、引数
.Fa tmpdir
( これが
(これが
.Dv NULL
でない場合 )、ディレクトリ
でない場合)、ディレクトリ
.Dv P_tmpdir ,
ディレクトリ
.Pa /tmp
@ -116,48 +129,47 @@
.Fa prefix
が使われ、これが作成されるファイル名の最初の部分になります。
.Fn Tempnam
関数は、ファイル名を保存するメモリを割り当てます。返された
ポインタは、
関数は、ファイル名を保存するメモリを割り当てます。
返されたポインタは、
.Xr free 3
への次に続く引数として使うことができます。
.Sh 戻り値
.Fn tmpfile
関数は、成功した場合には開いたファイルストリームへのポインタ
を、エラーの場合には
関数は、成功した場合には開いたファイルストリームへのポインタを、
エラーの場合には
.Dv NULL
ポインタを返します。
.Pp
.Fn tmpnam
および
.Fn tempfile
関数は、成功した場合にはファイル名を、
関数は、成功した場合にはファイル名へのポインタを、
エラーの場合には
.Dv NULL
ポインタを返します。
.Sh エラー
.Fn tmpfile
関数が失敗し、ライブラリ関数
関数が失敗した場合、ライブラリ関数
.Xr fdopen 3
または
.Xr mkstemp 3
について指定されたエラーのいずれかに対するグローバル変数
で規定されるエラーのいずれかが、グローバル変数
.Va errno
設定される場合があります。
設定される場合があります。
.Pp
.Fn tmpnam
関数が失敗し、ライブラリ関数
関数が失敗した場合、ライブラリ関数
.Xr mktemp 3
について指定された
エラーのいずれかに対する
で規定されるエラーのいずれかが
.Va errno
が設定される場合があります。
.Pp
.Fn tempnam
関数が失敗し、ライブラリ関数
関数が失敗した場合、ライブラリ関数
.Xr malloc 3
または
.Xr mktemp 3
について指定されたエラーのいずれかに対する
で規定されるエラーのいずれかが
.Va errno
が設定される場合があります。
.Sh 参照
@ -168,8 +180,8 @@
および
.Fn tmpnam
関数は、
.St -ansiC
準拠しています。
.St -isoC
適合しています。
.Sh バグ
これらのインタフェースは、System V および
.Tn ANSI
@ -177,23 +189,26 @@
.Xr mkstemp 3
インタフェースの使用を強く推奨します。
.Pp
これらのインタフェースには ( 古い
これらのインタフェースには (古い
.Xr mktemp 3
インタフェースと同様に ) 、
4 つの重大な問題があります。まず第一に、ファイル名選択とファイル作成および
削除の間には明らかな競合があります。第二に、ほとんどの古いシステムでは、
ファイル名がリサイクルされるまでには、限られた数 ( 通常は 26 ) の一時
ファイル名しか使えないことです。第三に、これらの関数 ( および
インタフェースと同様に)、4 つの重大な問題があります。
まず第一に、ファイル名選択とファイル作成および削除の間には
明らかな競合があります。
第二に、ほとんどの古いシステムでは、ファイル名がリサイクルされるまでには、
限られた数 (通常は 26) の一時ファイル名しか使えないことです。
第三に、これらの関数 (および
.Xr mktemp 3
) の System V インプリメンテーションは、一時ファイル作成の可否を決めるために
) の System V における実装は、一時ファイル作成の可否を決めるために
.Xr access 2
関数を用いていることです。これは、setuid および setgid プログラムに対して
関数を用いていることです。
これは、setuid および setgid プログラムに対して
明らかな問題を派生させ、このようなプログラムにこれらの
インタフェースを移植して使うことを複雑にします。最後に、一時ファイルを
作成する許可に関する指定がありません。
インタフェースを移植して使うことを複雑にします。
最後に、一時ファイルを作成する許可に関する指定がありません。
.Pp
本インプリメンテーションにはこれらの欠陥はありませんが、ポータブルな
ソフトウェアはそれを頼りにすることはできません。特に、
この実装にはこれらの欠陥はありませんが、移植可能な
ソフトウェアはそれを頼りにすることはできません。
特に、
.Fn tmpfile
インタフェースは、ユーザが一時ファイルを公開して読み書き可能にすることを
望まない可能性がある場合は、他のシステム上で使用されることが予想される

View file

@ -30,26 +30,28 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)toascii.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/locale/toascii.3,v 1.4.2.2 2001/12/14 18:33:55 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt TOASCII 3
.Os
.Sh 名称
.Nm toascii
.Nd バイトを 7 ビット ASCII に変換
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <ctype.h>
.In ctype.h
.Ft int
.Fn toascii "int c"
.Sh 解説
.Fn toascii
関数は、下位 7 ビットを除いて、 1 つの文字からパリティや
その他のマーカービットを含めてすべてを取り除きます。
関数は、1 つの文字から、下位 7 ビット以外の、パリティまたは他のマーカービットを含むすべてを取り除きます。
.Sh 戻り値
.Fn toascii
関数は、必ず有効な ASCII キャラクタを返します。
.Sh 参照
関数は、必ず有効な ASCII 文字を返します。
.Sh 関連項目
.Xr isalnum 3 ,
.Xr isalpha 3 ,
.Xr isascii 3 ,

View file

@ -34,36 +34,38 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)tolower.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/locale/tolower.3,v 1.6.2.4 2001/12/14 18:33:55 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt TOLOWER 3
.Os
.Sh 名称
.Nm tolower
.Nd 大文字から小文字への変換
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <ctype.h>
.In ctype.h
.Ft int
.Fn tolower "int c"
.Sh 解説
.Fn tolower
関数は、大文字を対応する小文字に変換します。
関数は大文字を対応する小文字に変換します。
C 言語の
.Va char Ns s
型ひとつに関するロケール (
.Xr multibyte 3
参照 ) のことを考慮して、引数の値は
.Li unsigned char
または
.Dv EOF
の値として表されなければなりません。
.Sh 戻り値
引数が大文字である場合は、それに対応する小文字がある場合は
引数が大文字である場合は、その文字に対応する小文字がある場合は
.Fn tolower
関数はそれを返します。それ以外の場合は、その引数が変更されないままで
返されます。
.\" In the
.\" .Em ``C''
.\" locale,
.\" .Fn tolower
.\" maps only the characters for which
.\" .Xr isupper
.\" is true to the corresponding characters for which
.\" .Xr islower
.\" is true.
.Sh 参照
関数はそれを返します。それ以外の場合は、その引数が変更されないまま返されます。
.Sh 関連項目
.Xr isalnum 3 ,
.Xr isalpha 3 ,
.Xr isascii 3 ,
@ -76,12 +78,13 @@
.Xr isspace 3 ,
.Xr isupper 3 ,
.Xr isxdigit 3 ,
.Xr multibyte 3 ,
.Xr stdio 3 ,
.Xr toascii 3 ,
.Xr toupper 3 ,
.Xr ascii 7
.Sh 規格
.Fn tolower
関数は
.St -ansiC
関数は
.St -isoC
に準拠しています。

View file

@ -34,35 +34,38 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)toupper.3 8.1 (Berkeley) 6/4/93
.\"
.\" %FreeBSD: src/lib/libc/locale/toupper.3,v 1.5.2.5 2001/12/14 18:33:55 ru Exp %
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt TOUPPER 3
.Os
.Sh 名称
.Nm toupper
.Nd 小文字から大文字への変換
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <ctype.h>
.In ctype.h
.Ft int
.Fn toupper "int c"
.Sh 解説
.Fn toupper
関数は、小文字をそれに対応する大文字に変換します。引数が
小文字の場合は、それに対応する大文字があれば
関数は小文字を対応する大文字へ変換します。
C 言語の
.Va char Ns s
型ひとつに関するロケール (
.Xr multibyte 3
参照 ) のことを考慮して、引数の値は
.Li unsigned char
または
.Dv EOF
の値として表されなければなりません。
.Sh 戻り値
引数が小文字である場合は、その文字に対応する大文字がある場合は
.Fn toupper
関数はそれを
返します。それ以外の場合は、引数が変更されないままで返されます。
.\" In the
.\" .Em ``C''
.\" locale,
.\" .Fn toupper
.\" maps only the characters for which
.\" .Xr islower
.\" is true to the corresponding characters for which
.\" .Xr isupper
.\" is true.
.Sh 参照
関数はそれを返します。それ以外の場合は、その引数が変更されないまま返されます。
.Sh 関連項目
.Xr isalnum 3 ,
.Xr isalpha 3 ,
.Xr isascii 3 ,
@ -75,12 +78,13 @@
.Xr isspace 3 ,
.Xr isupper 3 ,
.Xr isxdigit 3 ,
.Xr multibyte 3 ,
.Xr stdio 3 ,
.Xr toascii 3 ,
.Xr tolower 3 ,
.Xr ascii 7
.Sh 規格
.Fn toupper
関数は
.St -ansiC
関数は
.St -isoC
に準拠しています。

View file

@ -30,60 +30,66 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)utime.3 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/gen/utime.3,v 1.5.2.4 2001/12/14 18:33:51 ru Exp %
.\"
.\" $FreeBSD$
.Dd June 4, 1993
.Dt UTIME 3
.Os BSD 4
.Os
.Sh 名称
.Nm utime
.Nd ファイルの時間を設定
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <utime.h>
.In sys/types.h
.In utime.h
.Ft int
.Fn utime "const char *file" "const struct utimbuf *timep"
.Sh 解説
.Bf -symbolic
このインタフェースは utimes(2) によって置き換えられました。
このインタフェースは
.Xr utimes 2
によって置き換えられました。
.Ef
.Pp
.Fn utime
関数は、引数配列
.Fa timep
の中の構造体から名前の付いたファイルのアクセスおよび修正の時間を設定します。
の中の構造体から名前で指定されたファイルのアクセスおよび
修正の時間を設定します。
.Pp
間を指定する場合 ( 引数
刻が指定された場合 ( 引数
.Fa timep
.Dv NULL
でない場合 ) は、呼び出し
元はそのファイルの所有者であるかまたはスーパーユーザでなければなりません。
でない場合 ) は、呼び出し元はそのファイルの所有者であるか、
またはスーパーユーザでなければなりません。
.Pp
が指定されていない場合 ( 引数
が指定されていない場合 ( 引数
.Fa timep
.Dv NULL
の場合 ) は、呼び出し
元はそのファイルの所有者であるか、そのファイルに書込みを許されているか、
の場合 ) は、呼び出し元はそのファイルの所有者であるか、
そのファイルに書込みを許されているか、
またはスーパーユーザでなければなりません。
.Sh エラー
.Fn utime
関数が失敗すると、ライブラリ関数
.Xr utimes 2
対して指定されているいずれかのエラーについての
ついて指定されたエラーに対する
.Va errno
を設定する場合があります。
が設定されます。
.Sh 参照
.Xr stat 2 ,
.Xr utimes 2
.Sh 歴史
.Fn utime
関数は
関数は
.At v7
に現れました。
で登場しました。
.Sh 規格
.Fn utime
関数は、
.St -p1003.1-88
準拠しています。
適合しています。