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:
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
ja_JP.eucJP/man/man3
Makefileatof.3auth.3bindresvport.3bitstring.3bstring.3btree.3cam.3cam_cdbparse.3ceil.3cfree.3cftime.3cipher.3com_err.3crypt.3dbopen.3des_crypt.3end.3fpgetround.3getpwent.3getrpcent.3getrpcport.3getusershell.3hash.3intro.3mpool.3multibyte.3publickey.3recno.3rpc.3rpc_secure.3rtime.3stdarg.3sysexits.3tmpnam.3toascii.3tolower.3toupper.3utime.3
|
@ -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
|
||||
|
|
|
@ -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
|
||||
に適合しています。
|
||||
に準拠しています。
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
で登場しました。
|
||||
で現れました。
|
||||
|
|
|
@ -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 バグ
|
||||
ビッグエンディアンおよびリトルエンディアンのバイト順序だけがサポート
|
||||
されています。
|
||||
|
|
|
@ -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
|
||||
は、渡された
|
||||
|
|
|
@ -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 マニュアルページに属します。
|
||||
そのマニュアルページはまだ書かれていないので、
|
||||
ここでの短い説明で間に合います。
|
||||
ここでの短い説明で間に合わせざるを得ません。
|
||||
|
|
|
@ -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
|
||||
に適合しています。
|
||||
|
||||
|
||||
に準拠しています。
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
150
ja_JP.eucJP/man/man3/cipher.3
Normal file
150
ja_JP.eucJP/man/man3/cipher.3
Normal 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
|
|
@ -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$
|
||||
.\"
|
||||
|
|
|
@ -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
|
||||
によって行なわれました。
|
||||
|
|
|
@ -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
|
||||
どのアクセス方式も、並行アクセス、ロック、またはトランザクション
|
||||
は、どのような形式でも提供しません。
|
||||
|
|
|
@ -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
|
||||
インタフェースの説明として提供されています。
|
||||
|
|
|
@ -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 から開始したからです。
|
||||
この仮定は現在ではもう正しくありません。
|
||||
テキストセグメントの先頭を指す、前述のような変数は、存在しません。
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
は、それぞれの結果を内部の
|
||||
静的オブジェクトに残し、そのオブジェクトのポインタを返します。後に続く同じ
|
||||
関数の呼び出しは、この同じオブジェクトを改変します。
|
||||
は、呼び出し結果を内部の静的オブジェクトに残し、
|
||||
そのオブジェクトを指すポインタを返します。その後、
|
||||
同じ関数を呼び出すと、同じオブジェクトを変更していきます。
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
呼び出しは、同じオブジェクトを改変します。
|
||||
を呼び出すと、同じオブジェクトを変更します。
|
||||
|
|
|
@ -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 バグ
|
||||
バイトオーダとして、ビッグエンディアンとリトルエンディアンだけが
|
||||
サポートされています。
|
||||
|
|
|
@ -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
|
||||
で取り入れられました。
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
@ -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 安全なリモートプロシージャコールのためのライブラリルーチン
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 互換性
|
||||
これらのマクロは、置き換えられる歴史的なマクロと互換性がありま
|
||||
|
|
|
@ -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 バグ
|
||||
適切な終了値の選択が、しばしばあいまいになります。
|
||||
|
|
|
@ -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
|
||||
インタフェースは、ユーザが一時ファイルを公開して読み書き可能にすることを
|
||||
望まない可能性がある場合は、他のシステム上で使用されることが予想される
|
|
@ -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 ,
|
||||
|
|
|
@ -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
|
||||
に準拠しています。
|
||||
|
|
|
@ -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
|
||||
に準拠しています。
|
||||
|
|
|
@ -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
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
Loading…
Reference in a new issue