Catch up with recent RELENG_4.

Submitted by: OHSAWA Chitoshi <ohsawa@catv1.ccn-net.ne.jp>,
	SUZUKI Koichi <metal@vc-net.ne.jp>,
	kuma@jp.FreeBSD.org
Reviewed by:kuma@jp.FreeBSD.org
This commit is contained in:
Kazuo Horikawa 2001-04-10 03:16:12 +00:00
parent 066c576098
commit dcac6ef800
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=9163
49 changed files with 584 additions and 440 deletions

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)accept.2 8.2 (Berkeley) 12/11/93
.\" %FreeBSD: src/lib/libc/sys/accept.2,v 1.10.2.4 2000/08/23 00:24:37 jhb Exp %
.\" %FreeBSD: src/lib/libc/sys/accept.2,v 1.10.2.6 2001/02/25 23:57:48 olgeni Exp %
.\"
.Dd December 11, 1993
.Dt ACCEPT 2
@ -120,7 +120,7 @@
を発行することによって、または
.Xr setsockopt 2
を発行することによって、ユーザ接続拒絶情報を提供できます。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリで
.Fn accept
@ -175,6 +175,9 @@
.It Bq Er EWOULDBLOCK
ソケットが非ブロッキングとマークされ、さらに
受け付けるべき接続要求が存在しません。
.It Bq Er ECONNABORTED
接続要求が到着しましたが、待ち行列で待機している
間に閉じてしまいました。
.El
.Sh 関連項目
.Xr bind 2 ,

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/aio_cancel.2,v 1.5.2.4 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/aio_cancel.2,v 1.5.2.5 2001/03/06 16:46:05 ru Exp %
.\"
.Dd January 19, 2000
.Dt AIO_CANCEL 2
@ -73,7 +73,7 @@
.Xr aio_read 2 ,
.Xr aio_return 2 ,
.Xr aio_suspend 2 ,
.Xr aio_write 2 .
.Xr aio_write 2
.Sh エラー
.Fn aio_cancel
から返されるエラーは、次のことを示します:

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/aio_error.2,v 1.6.2.3 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/aio_error.2,v 1.6.2.4 2001/03/06 16:46:06 ru Exp %
.\"
.Dd June 2, 1999
.Dt AIO_ERROR 2

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/aio_return.2,v 1.5.2.3 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/aio_return.2,v 1.5.2.4 2001/03/06 16:46:06 ru Exp %
.\"
.Dd June 2, 1999
.Dt AIO_RETURN 2
@ -70,7 +70,7 @@
.Xr aio_write 2 ,
.Xr fsync 2 ,
.Xr read 2 ,
.Xr write 2 .
.Xr write 2
.Sh エラー
.Fn aio_return
は次の場合に失敗します。

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/aio_suspend.2,v 1.8.2.2 2000/08/23 00:45:18 jhb Exp %
.\" %FreeBSD: src/lib/libc/sys/aio_suspend.2,v 1.8.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd June 2, 1999
.Dt AIO_SUSPEND 2

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/aio_waitcomplete.2,v 1.1.2.4 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/aio_waitcomplete.2,v 1.1.2.5 2001/03/06 16:46:06 ru Exp %
.\"
.Dd January 19, 2000
.Dt AIO_WAITCOMPLETE 2
@ -35,7 +35,7 @@
.Sh 書式
.Fd #include <aio.h>
.Ft int
.Fn aio_waitcomplete "struct aiocb **iocbp, struct timeval *timeout"
.Fn aio_waitcomplete "struct aiocb **iocbp" "struct timespec *timeout"
.Sh 解説
.Fn aio_waitcomplete
関数は非同期入出力の完了まで待ちます。完了次第、
@ -84,7 +84,7 @@
を返し、iocbp に
.Dv NULL
を設定します。そして、
.Dv errno
.Va errno
にエラーの状況を設定します。
.Sh エラー
.Fn aio_waitcomplete
@ -114,7 +114,7 @@
.Xr aio_write 2 ,
.Xr fsync 2 ,
.Xr read 2 ,
.Xr write 2 .
.Xr write 2
.Sh 規格
.Fn aio_waitcomplete
関数は

View file

@ -65,7 +65,7 @@ UNIX
アドレスのバインドで使用される規則は通信ドメイン間で異なります。
詳細については、
セクション 4 のマニュアルエントリを参照してください。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn bind

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)brk.2 8.4 (Berkeley) 5/1/95
.\" %FreeBSD: src/lib/libc/sys/brk.2,v 1.13.2.3 2000/12/29 14:44:51 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/brk.2,v 1.13.2.4 2001/03/06 16:46:06 ru Exp %
.\"
.Dd May 1, 1995
.Dt BRK 2
@ -79,9 +79,9 @@ brk
の呼び出しから返された
.Em rlim_max
値を越えるブレークを設定することはできません。たとえば、
.Dq etext + rlp\(->rlim_max
.Dq Va etext No + Va rlp\->rlim_max
です
.Pf ( Em etext
.Pf ( Va etext
の定義については
.Xr end 3
を参照してください)。

View file

@ -1,5 +1,5 @@
.\" $OpenBSD: clock_gettime.2,v 1.4 1997/05/08 20:21:16 kstailey Exp $
.\" %FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.3.2.3 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.3.2.4 2001/01/16 10:33:28 ru Exp %
.\"
.\" Copyright (c) 1980, 1991, 1993
.\" The Regents of the University of California. All rights reserved.

View file

@ -97,7 +97,7 @@
.Dq Li fcntl(d, F_SETFD, 0)
呼び出しはこれをデフォルトに戻します。デフォルトでは、
記述子はクローズされません。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn close

View file

@ -68,7 +68,7 @@
を複数回使用してその結び付けを変更できます。データグラム
ソケットは、NULL アドレスのような無効なアドレスに接続することによって
結び付けを解除できます。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn connect

View file

@ -108,7 +108,7 @@ close-on-exec
が有効な記述子の場合、
.Fn dup2
は正常に終了し、何もしません。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリ
.Fn dup

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)execve.2 8.5 (Berkeley) 6/1/94
.\" %FreeBSD: src/lib/libc/sys/execve.2,v 1.16.2.4 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/execve.2,v 1.16.2.5 2001/03/06 16:46:06 ru Exp %
.\"
.Dd June 1, 1994
.Dt EXECVE 2
@ -56,12 +56,14 @@
データのページが続いたもので構成されます。このデータは
初期プログラム (テキスト) と初期値ありデータのページを表します。
追加のページはヘッダの指定によって 0 データで初期化される場合があります。
.Xr elf 5
および
.Xr a.out 5
を参照してください。
.Pp
インタプリタファイルは次の形式の行で開始します。
.Pp
.Bd -filled -offset indent -compact
.Bd -ragged -offset indent -compact
.Sy \&#!
.Em interpreter
.Bq Em arg
@ -188,7 +190,7 @@ char **argv, **envp;
の要素数 (``arg count'') であり、
.Fa argv
は、引数自身を指す文字ポインタの配列を指します。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn execve
@ -278,6 +280,8 @@ char **argv, **envp;
.Xr execl 3 ,
.Xr exit 3 ,
.Xr sysctl 3 ,
.Xr a.out 5 ,
.Xr elf 5 ,
.Xr environ 7 ,
.Xr mount 8
.Sh 歴史

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94
.\" %FreeBSD: src/lib/libc/sys/fcntl.2,v 1.16.2.3 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/fcntl.2,v 1.16.2.4 2001/03/06 16:46:06 ru Exp %
.\"
.Dd January 12, 1994
.Dt FCNTL 2
@ -194,11 +194,11 @@ struct flock {
ロック記述に従ってファイルセグメントロックを設定またはクリアします。
.Dv F_SETLK
は、共有 (または読取り) ロック
.Dv (F_RDLCK)
.Pq Dv F_RDLCK
または排他的 (または書込み) ロック
.Dv (F_WRLCK)
.Pq Dv F_WRLCK
を確立、ならびにいずれかのタイプのロックを解除
.Dv (F_UNLCK)
.Pq Dv F_UNLCK
するのに使用されます。
共有ロックまたは排他的ロックが設定できない場合、
.Fn fcntl
@ -344,7 +344,7 @@ struct flock {
デッドロックを引き起こす可能性を検出すると、
.Er EDEADLK
エラーで失敗します。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn fcntl
@ -397,12 +397,12 @@ struct flock {
.Dv F_SETLK
であり、ロックのタイプ
.Fa (l_type)
.Pq Fa l_type
は共有ロック
.Dv (F_RDLCK)
.Pq Dv F_RDLCK
、または
排他的ロック
.Dv (F_WRLCK)
.Pq Dv F_WRLCK
で、ロックされるはずのファイルの
セグメントは既に別のプロセスによって排他的に
ロックされています。または、タイプが排他的なロックで、
@ -419,9 +419,9 @@ struct flock {
または
.Dv F_SETLKW
で、かつロックタイプ
.Fa (l_type)
.Pq Fa l_type
が共有ロック
.Dv (F_RDLCK)
.Pq Dv F_RDLCK
のとき、
.Fa fildes
は読取り用に開かれた有効なファイル記述子ではありません。
@ -433,9 +433,9 @@ struct flock {
または
.Dv F_SETLKW
で、かつロックタイプ
.Fa (l_type)
.Pq Fa l_type
が排他的ロック
.Dv (F_WRLCK)
.Pq Dv F_WRLCK
のとき、
.Fa fildes
は書込み用に開かれた有効なファイル記述子ではありません。

View file

@ -1,5 +1,5 @@
.\" %NetBSD: fhopen.2,v 1.1 1999/06/30 01:32:15 wrstuden Exp %
.\" %FreeBSD: src/lib/libc/sys/fhopen.2,v 1.4.2.1 2000/04/22 17:06:52 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/fhopen.2,v 1.4.2.2 2001/03/06 16:46:06 ru Exp %
.\"
.\" Copyright (c) 1999 National Aeronautics & Space Administration
.\" All rights reserved.

View file

@ -116,7 +116,7 @@ flock()
ファイルをアンロックする場合、親プロセスはそのロックを失います。
.Pp
ロックを待ってブロックしているプロセスはシグナルで起こされるかもしれません。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn flock

View file

@ -56,7 +56,7 @@
.Fn fsync
は、ファイルが既知の状態にあることを要求するプログラムによって
使用される必要があります。たとえば、簡単なトランザクション機能の構築です。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn fsync

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getdirentries.2 8.2 (Berkeley) 5/3/95
.\" %FreeBSD: src/lib/libc/sys/getdirentries.2,v 1.12.2.2 2000/08/23 00:45:18 jhb Exp %
.\" %FreeBSD: src/lib/libc/sys/getdirentries.2,v 1.12.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd May 3, 1995
.Dt GETDIRENTRIES 2
@ -132,10 +132,10 @@ char d_name[MAXNAMELEN + 1]; /*
.Xr lseek 2
が返す値、
.Fa basep
が指す場所に返される値 (
.Ns Fn getdirentries
が指す場所に返される値
.Pf ( Fn getdirentries
のみ)、または 0 のいずれかにのみ設定するべきです。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn getdirentries

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getlogin.2 8.1 (Berkeley) 6/9/93
.\" %FreeBSD: src/lib/libc/sys/getlogin.2,v 1.14.2.1 2000/04/22 17:06:54 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/getlogin.2,v 1.14.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd June 9, 1993
.Dt GETLOGIN 2
@ -47,7 +47,7 @@
.Ft char *
.Fn getlogin void
.Fd #include <sys/param.h>
.Ft char *
.Ft int
.Fn getlogin_r "char *name" "int len"
.Ft int
.Fn setlogin "const char *name"
@ -85,8 +85,8 @@
(たとえば、ログイン時、またはリモートシェルが
起動されるときです)。
.Pp
.Em 注釈:
`セッション' ごとに 1 つの `ログイン名' しかありません。
.Em 注釈 :
セッションごとに 1 つのログイン名しかありません。
.Pp
プロセスが、確実に親のセッションから切り離されるような
適切なステップを取った後にのみ、
@ -106,9 +106,9 @@
フォークでバックグラウンドに入る理想的な方法です。
.Pp
特に、
.Fn ioctl ttyfd TIOCNOTTY ...
.Fn ioctl ttyfd TIOCNOTTY ...\&
または
.Fn setpgrp ...
.Fn setpgrp ...\&
では十分では
.Em ありません。
.Pp
@ -130,18 +130,18 @@
.Fn getlogin
の呼び出しが成功すると、静的バッファ内のヌルで終端された文字列への
ポインタが返されます。
.Fn getlogin_r
の呼び出しが成功すると、呼び出し側が渡したバッファへのポインタが
返されます。
名前が設定されていない場合は、どちらも
名前が設定されていない場合は、
.Dv NULL
が返されます。
.Fn getlogin_r
の呼び出しが成功すると、0 が返されます。失敗するとエラー番号
が返されます。
.Pp
.Fn setlogin
の呼び出しが成功すると
値 0 が返されます。
.Fn setlogin
が処理を失敗すると値 -1 が返され、エラーコードがグローバル位置
が処理を失敗すると値 -1 が返され、エラーコードがグローバル変数
.Va errno
に設定されます。
.Sh エラー
@ -159,6 +159,8 @@
.It Bq Er EPERM
ログイン名を設定しようとした呼び出し元が
スーパユーザではありませんでした。
.It Bq Er ERANGE
返される結果よりバッファのサイズが小さすぎます。
.El
.Sh 関連項目
.Xr setsid 2 ,
@ -180,3 +182,16 @@ getlogin
関数は
.Bx 4.4
ではじめて登場しました。
.Fn getlogin_r
の戻り値は
.St -p1003.1-96
に準拠するために
.Fx
の初期のバージョンから変更されました。
.Sh 規格
.Fn getlogin
.Fn getlogin_r
.St -p1003.1-96
に準拠しています。

View file

@ -57,7 +57,7 @@
戻る時に、これには返された名前の
実際のサイズ (バイト単位) が入れられます。
準備されたバッファが小さすぎる場合、名前は切り捨てられます。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn getpeername

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getpid.2 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/sys/getpid.2,v 1.8.2.1 2000/04/22 17:06:54 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/getpid.2,v 1.8.2.2 2001/02/18 02:36:34 kris Exp %
.\"
.Dd June 4, 1993
.Dt GETPID 2
@ -51,8 +51,12 @@
.Sh 解説
.Fn getpid
は呼び出しプロセスのプロセス ID を返します。
ID はユニークであることが保証されており、
一時的なファイルの名前を作成するのに便利です。
ID はユニークであることが保証されていますが、
テンポラリファイル名の作成に利用しては
.Em いけません。
セキュリティ上の理由については、
.Xr mkstemp 3
を参照してください。
.Pp
.Fn getppid
は呼び出しプロセスの親のプロセス ID を返します。

View file

@ -21,7 +21,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/getsid.2,v 1.3.2.1 2000/04/22 17:06:55 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/getsid.2,v 1.3.2.2 2001/03/09 15:14:15 ru Exp %
.\"
.Dd August 19, 1997
.Dt GETSID 2
@ -76,8 +76,6 @@
.Fx 3.0
ではじめて登場しました。
.Fn getsid
.\" jp-man: getsid.2 の原文は setsid になっていました。
.\" 2001/03/09 send-pr 済 (docs/25626)
関数呼び出しは
.At V
での使用法に由来しています。

View file

@ -55,7 +55,7 @@
.Fa name
が指す空間の量を示すように初期化しておく必要があります。
戻る時には返された名前の実際のサイズ (バイト単位) が入ります。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn getsockname

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95
.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.12.2.4 2000/08/23 00:45:19 jhb Exp %
.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.12.2.5 2001/03/06 16:46:06 ru Exp %
.\"
.Dd May 2, 1995
.Dt GETSOCKOPT 2
@ -339,7 +339,7 @@ NULL
はソケット上で延期中のエラーを返し、エラー状態をクリアします。
これは接続されたデータグラムソケット上の非同期的エラーをチェックしたり、
その他の非同期エラーをチェックするのに使用できます。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn getsockopt

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)gettimeofday.2 8.2 (Berkeley) 5/26/95
.\" %FreeBSD: src/lib/libc/sys/gettimeofday.2,v 1.9.2.3 2000/12/08 13:49:31 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/gettimeofday.2,v 1.9.2.4 2001/01/16 10:33:28 ru Exp %
.\"
.Dd May 26, 1995
.Dt GETTIMEOFDAY 2

View file

@ -82,7 +82,7 @@ ioctl
はファイル
.Ao Pa sys/ioctl.h Ac
の中にあります。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリ
.Fn ioctl

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)kill.2 8.3 (Berkeley) 4/19/94
.\" %FreeBSD: src/lib/libc/sys/kill.2,v 1.10.2.2 2000/05/06 13:34:14 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/kill.2,v 1.10.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd April 19, 1994
.Dt KILL 2

View file

@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/kldstat.2,v 1.5.2.4 2000/12/29 14:44:52 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/kldstat.2,v 1.5.2.5 2001/03/06 16:46:06 ru Exp %
.\"
.Dd March 3, 1999
.Dt KLDSTAT 2
@ -80,7 +80,10 @@ kld
.El
.Sh 戻り値
.Fn kldstat
は、必ず 0 を返すように見えます。
関数は、処理に成功した場合には 0 を返します。
失敗した場合には -1 を返し、エラーを示すために
.Va errno
を設定します。
.Sh エラー
次の場合を除いて、
.Fa fileid

View file

@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/kqueue.2,v 1.1.2.8 2000/12/29 14:44:52 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/kqueue.2,v 1.1.2.9 2001/02/26 04:23:54 jlemon Exp %
.\"
.Dd April 14, 2000
.Dt KQUEUE 2
@ -36,33 +36,36 @@
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/event.h>
.Fd #include <sys/time.h>
.Ft int
.Fn kqueue "void"
.Ft int
.Fn kevent "int kq" "const struct kevent *changelist" "int nchanges" "struct kevent *eventlist" "int nevents" "const struct timespec *timeout"
.Fn EV_SET "&kev" ident filter flags fflags data udata
.Sh 解説
.Fn kqueue
は、イベントが発生したりある状態の時に
フィルタと呼ばれる小さなカーネルコードの実行結果に基づいて
それをユーザに通知する一般的な方法を提供します。
kevent は (識別子 ident とフィルタ filter) のペアによって識別されます。
.\" kqueue 毎にユニークな kevent が 1 つだけ存在できます。
1 つの kqueue には、複数の同じ kevent が存在することはできません。
は、フィルタと呼ばれる小さなカーネルコードの実行結果に基づき
イベントの発生やある状態の成立を
ユーザに通知する一般的な方法を提供します。
kevent は (ident, filter) のペアによって識別されます。
ここで、ident は識別子、filter はフィルタを表します。
1 つの kqueue には、同じ kevent が複数存在することはできません。
.Pp
フィルタは、kevent の初期登録時に
以前から存在した状態を検出するために実行されます。
また、あるイベントが評価のためにフィルタに渡されるに実行されます。
状態が報告されるべきであるとフィルタが決定した場合には、
また、あるイベントが評価のためにフィルタに渡されるたびに実行されます。
状態を報告すべきとフィルタが決定した場合には、
その kevent はユーザが回収できるように kqueue に置かれます。
.Pp
ユーザが kqueue から kevent を回収しようとしたにも、
ユーザが kqueue から kevent を回収しようとしたときにも、
フィルタが実行されます。
そのイベントがもはやトリガされた状態ではないことをフィルタが示している
場合には、kevent は kqueue から削除され、戻りません。
フィルタの実行により、そのイベントをトリガした状態が成立していないこと
が示された場合には、その kevent は kqueue から削除され、
ユーザに渡されません。
.Pp
フィルタをトリガする複数のイベントは
kqueue の中の複数の kevent になるわけではありません。
代わりに、フィルタは単一の kevent 構造体へそれらのイベントを集めます。
フィルタをトリガするイベントが複数ある場合でも
kqueue の中に kevent が複数置かれるわけではありません。
代わりに、フィルタは複数のイベントを単一の kevent 構造体へ集めます。
ファイル記述子に対する
.Fn close
の呼び出しは、その記述子を参照しているあらゆる kevent を削除します。
@ -74,23 +77,23 @@ kqueue
で生成された子プロセスには継承されません。
しかしながら、
.Dv RFFDG
フラグ付き
フラグなし
.Xr rfork 2
が呼び出された場合には、記述子テーブルが共有され、2 つの
プロセス間で kqueue の共有が可能になります。
.Pp
.Fn kevent
キューにイベントを登録するために使用され、かつ
保留中のあらゆるイベントをユーザに返します。
、キューにイベントを登録し、保留中のあらゆるイベントを
ユーザに返すために使用されます。
.Fa changelist
.Va kevent
構造体の配列へのポインタで
.Va kevent
構造体の配列へのポインタです。この構造体は
.Aq Pa event.h
で定義されています。
保留中のイベントをキューから読み込む前に、
.Fa changelist
に含まれている全ての変更は、
保留中のあらゆるイベントがキューから読み込まれる前に適用されます。
に含まれている全ての変更を適用します。
.Fa nchanges
.Fa changelist
@ -103,19 +106,26 @@ kqueue
の大きさを決定します。
.Fa timeout
が NULL でないポインタの場合には、timespec 構造体であると解釈されて、
イベントを待つ期限を指定します。
イベントを待つ最大待ち時間を指定します。
.Fa timeout
が NULL ポインタの場合には、
.Fn kevent
は無期限に待ちます。
ポーリングを行なうには、
ポーリングの効果を得るためには、
.Fa timeout
引数0 を示す
引数に、0 を示す
.Va timespec
構造体を指す、非 NULL のポインタであるべきです。
構造体を指す非 NULL のポインタを与えるべきです。
.Fa changelist
.Fa eventlist
用に同じ配列を使うことができます。
.Pp
.Fn EV_SET
は kevent 構造体の初期化を簡単にするマクロです。
.Pp
.Va kevent
構造体は以下の様に定義されています。
構造体は次のように定義されています。
.Bd -literal
struct kevent {
uintptr_t ident; /* このイベントの識別子 */
@ -133,26 +143,26 @@ struct kevent {
.It ident
このイベントを識別するために使用される値です。
厳密な解釈は結び付けられたフィルタにより決定されますが、
しばしばファイル記述子が使用されます。
普通はファイル記述子として解釈されます。
.It filter
このイベントを処理するために使用されるカーネルフィルタを識別します。
あらかじめ定義されたシステムフィルタは後述してあります。
.It flags
イベント発生時に実行するべきアクションです。
.It fflags
フィルタ有のフラグです。
フィルタ有のフラグです。
.It data
フィルタ有のデータの値です。
フィルタ有のデータの値です。
.It udata
変更されずにカーネルを通して渡される不透明なユーザー定義の値です。
.El
.Pp
.Va flags
フィールドは以下の値を含むことが出来ます。
フィールドは以下の値を含むことができます。
.Bl -tag -width XXXEV_ONESHOT
.It EV_ADD
イベントを kqueue に追加します。
既存のイベントの再追加は、元のイベントのパラメータを変更するもので、
既存のイベントを再び追加すると、元のイベントのパラメータが変更されます。
重複するエントリができるわけではありません。
イベントを追加すると、EV_DISABLE フラグによって上書きされない限りは
自動的に有効にされます。
@ -170,7 +180,7 @@ kqueue
ファイル記述子に結び付けられているイベントは、
その記述子の最後のクローズ時に自動的に削除されます。
.It EV_ONESHOT
フィルタが最初トリガされたにのみ、イベントが返るようにします。
フィルタが最初トリガされたときにのみ、イベントが返るようにします。
ユーザがイベントを kqueue から回収した後で、そのイベントは削除されます。
.It EV_CLEAR
ユーザがイベントを回収した後に、その状態をリセットします。
@ -178,15 +188,15 @@ kqueue
幾つかのフィルタは内部でこのフラグを自動的にセットしている
かもしれないことに注意してください。
.It EV_EOF
フィルタはそのフィルタ特有の EOF 状態であることをを示すために
このフラグをセットすることができます。
そのフィルタ固有の EOF 状態であることをを示すために
フィルタがこのフラグをセットすることがあります。
.It EV_ERROR
後述の
.Sx 戻り値
を参照してください。
.El
.Pp
あらかじめ定義されたシステムフィルタを以下に示します。
あらかじめ定義されたシステムフィルタをに示します。
引数は kevent 構造体の
.Va fflags
および
@ -194,99 +204,131 @@ kqueue
フィールドを経由してやりとりすることができます。
.Bl -tag -width EVFILT_SIGNAL
.It EVFILT_READ
記述子をその識別子として取り、読み込める有効なデータがある時に戻ります。
識別子に記述子を引数として取ります。
読み込み可能なデータがあるときに戻ります。
このフィルタの振舞いは、その記述子の型により少し異なります。
.Pp
.Bl -tag -width 2n
.It ソケット
前もって
事前に
.Fn listen
に渡されたソケットは、保留中の次の接続がある時に戻ります。
に渡されたソケットの場合、保留中の次の接続があるときに戻ります。
.Va data
は listen のバックログ (backlog) の大きさが入っています。
は listen のバックログ (backlog) の大きさが入っています。
.Pp
その他のソケット記述子は、ソケットバッファの SO_RCVLOWAT 値を基準にして、
読み込むべきデータがある時に戻ります。
その他のソケット記述子の場合、ソケットバッファの
.Dv SO_RCVLOWAT
の値を基準にして、読み込むデータがあるときに戻ります。
フィルタを追加するときに、
.Va fflags
に NOTE_LOWAT を設定し
.Va data
はソケットバッファの中のバイト数が入っています。
に新しい最低基準値を指定することにより、
この値を、
フィルタごとの最低基準値で上書きすることが可能です。戻るときには、
.Va data
にはソケットバッファの中のバイト数が入っています。
.Pp
ソケットの読み込み方向が切断された場合には、フィルタは
ソケットの読み込みが切断された場合には、フィルタは
.Va flags
に EV_EOF もセットします。
ソケットバッファの中に保留中のデータが
残っていても、(接続が切れたことを示す) EOF が返されることがあります。
に EV_EOF も設定します。ここでエラーが起きた場合には、
.Va fflags
にソケットエラーを返します。
ソケットバッファの中に保留中のデータが残っていても、
(接続が切れたことを示す) EOF が返されることがあります。
.It v ノード
ファイルポインタがファイルの最後 (EOF) でない時に戻ります。
ファイルポインタがファイルの最後 (EOF) でないときに戻ります。
.Va data
は現在位置からファイルの最後 (EOF) までのオフセットが入っています。
この値は負であるかもしれません。
.It FIFO とパイプ
読み込むべきデータがあるに戻ります。
読み込むべきデータがあるときに戻ります。
.Va data
には有効なバイト数が入っています。
.Pp
最後に書き込んだ者が切断した時に、フィルタは
最後の書き込み側が切断したときに、フィルタは
.Va flags
に EV_EOF をセットします。
これは、EV_CLEAR を渡すことでクリアすることができ、
データが読み込めるようになるのを、戻る前に再び待つようにフィルタに指示します。
EV_CLEAR を渡すことで、このフラグをクリアすることができ、
フィルタはデータが読み込めるように
なるのを戻らずに再び待ちます。
.El
.It EVFILT_WRITE
記述子をその識別子として取り、その記述子が書き込み可能になる度に戻ります。
識別子に記述子を引数として取ります。
その記述子が書き込み可能になるたびに戻ります。
ソケット、パイプおよび FIFO では、
.Va data
は書き込みバッファの残り領域の大きさが入っています。
フィルタは読み込み側が切断した時に、EV_EOF をセットし、
FIFO の場合は EV_CLEAR によってクリアすることができます。
は書き込みバッファの残り領域の大きさが入っています。
読み込み側が切断したときに、フィルタは EV_EOF をセットします。
FIFO の場合、EV_CLEAR を使いこれをクリアすることができます。
このフィルタは vnode をサポートしていないことに注意してください。
.Pp
ソケットの場合、最低基準値およびソケットエラーの取り扱いは
EVFULT_READ の場合と同じです。
.It EVFILT_AIO
イベントが結び付けられるべき kqueue の記述子が入っている
.Va ident
で kevent 構造体が初期化されます。
kevent 構造体のアドレスは AIO リクエストの
.Va aio_lio_opcode
フィールドに置かれて、それから aio_* 関数が呼び出されます。
イベントは指定された kqueue に登録され、
.Va ident
引数は aio_* 関数によって返される
非同期入出力リクエストの sigevent 部分の、
.Va sigev_notify_kqueue
にはイベントを付加する kqueue の記述子を入れ、
.Va sigev_value
には udata の値を入れ、
.Va sigev_notify
には SIGEV_EVENT を入れて、非同期入出力リクエストを埋めます。
aio_* 関数が呼び出されたとき、そのイベントは
指定された kqueue に登録されます。aio_* 関数が返した
.Fa aiocb
構造体がセットされます。
構造体を
.Va ident
引数にセットします。
このフィルタは aio_error と同様の条件で戻ります。
.Pp
注意: このインターフェイスは不安定で、
変更されることがあります。
別の方法として、
.Va ident
に kqueue 記述子を入れて kevent 構造体を初期化し、
そのアドレスを非同期リクエストの
.Va aio_lio_opcode
フィールドに置くことも可能です。
しかしながら、このアプローチは 64 ビットポインタのアーキテクチャでは
動作しないでしょうし、あてにするべきではありません。
.It EVFILT_VNODE
記述子をその識別子として、監視するイベントを
ファイル記述子を識別子に、監視するイベントを
.Va fflags
に取り、
その記述子について 1 つ以上の要求されたイベントが発生した時に戻ります。
に引数として取ります。
指定した記述子に対し
要求されたイベントが 1 つ以上発生したときに戻ります。
監視するイベントを以下に示します。
.Bl -tag -width XXNOTE_RENAME
.It NOTE_DELETE
記述子によって参照されるファイルについて
記述子が参照するファイルに対し
.Fn unlink
が呼ばれました。
.It NOTE_WRITE
記述子によって参照されるファイルについて書き込みが起こりました。
記述子が参照するファイルに対し書き込みが起こりました。
.It NOTE_EXTEND
記述子によって参照されるファイルがサイズ拡張されました。
記述子が参照するファイルのサイズが拡張されました。
.It NOTE_ATTRIB
記述子によって参照されるファイルの属性が変更されました。
記述子が参照するファイルの属性が変更されました。
.It NOTE_LINK
ファイルのリンク数が変更されました。
.It NOTE_RENAME
記述子によって参照されるファイルがリネームされました。
記述子が参照するファイルがリネームされました。
.It NOTE_REVOKE
ファイルへのアクセスが
.Xr revoke 2
によって無効にされたか、もしくは、下位層のファイルシステムが
マウントされていません。
.El
.Pp
戻る時に、
戻るときに、
.Va fflags
はフィルタをトリガしたイベントが入っています。
フィルタをトリガしたイベントが入っています。
.It EVFILT_PROC
監視するプロセス ID をその識別子として、監視するイベントを
監視するプロセス ID を識別子に、監視するイベントを
.Va fflags
に取り、1 つ以上の要求されたイベントをプロセスが実行する時に戻ります。
あるプロセスが他のプロセスを正常に見ることが出来る場合には、
そのプロセス自身のイベントを結び付けることが出来ます。
監視するイベントを下記に示します。
に引数として取ります。
要求されたイベントを 1 つ以上プロセスが実行するときに戻ります。
あるプロセスが他のプロセスを正常に見ることができる場合には、
イベントをそのプロセスに結び付けることができます。
監視するイベントを次に示します。
.Bl -tag -width XXNOTE_TRACKERR
.It NOTE_EXIT
プロセスが終了しました。
@ -297,10 +339,10 @@ kevent
.It NOTE_EXEC
プロセスが
.Xr execve 2
または類似の呼び出しを通して、新規のプロセスを実行しました。
または類似の呼び出しにより、新規のプロセスを実行しました。
.It NOTE_TRACK
.Fn fork
の呼び出しを通して、プロセスを追跡します。
の呼び出しを越えて、プロセスを追跡します。
親プロセスは
.Va fflags
フィールドに NOTE_TRACK をセットして戻り、一方、子プロセスは
@ -309,16 +351,17 @@ kevent
.Va data
に親プロセスの PID をセットし戻ります。
.It NOTE_TRACKERR
このフラグは、通常は資源の制限のためシステムが子プロセスへのイベントを
結び付けることができなかった時に戻ります。
このフラグは、システムが子プロセスへのイベントを
結び付けることができなかったときに戻ります。
通常、これは資源の制限により生じます。
.El
.Pp
戻るに、
戻るときに、
.Va fflags
はフィルタをトリガしたイベントが入っています。
.It EVFILT_SIGNAL
監視するシグナル番号を識別子として取り、
与えられたシグナルがプロセスに配送されたに戻ります。
監視するシグナル番号を識別子に引数として取ります。
与えられたシグナルがプロセスに配送されたときに戻ります。
これは
.Fn signal
および
@ -337,18 +380,19 @@ kevent
.Fn kqueue
は新規のカーネルイベントキューを生成し、ファイル記述子を返します。
カーネルイベントキューの生成時にエラーがあった場合には、
値 -1 が返されて errno をセットします。
値 -1 が返されて errno がセットされます。
.Pp
.Fn kevent
は最大
.Fa nevents
で与えられた値までの
.Fa eventlist
に配列されているイベントの数を返します。
この数は、最大
.Fa nevents
で与えられた値までです。
.Fa changelist
の要素の処理中にエラーが発生した場合と、
の要素の処理中にエラーが発生し、かつ
.Fa eventlist
に十分な余地が無い場合には、
に十分な余地がある場合には、
.Va flags
.Dv EV_ERROR
@ -361,7 +405,7 @@ kevent
.Dv -1
が返され、
.Dv errno
がエラー状態を示すにセットされます。
がエラー状態を示すためにセットされます。
時間切れの場合には、
.Fn kevent
は 0 を返します。
@ -397,7 +441,7 @@ kevent
.It Bq Er ENOMEM
イベント登録のためのメモリがありません。
.It Bq Er ESRCH
指定された結び付けられるべきプロセスが存在しません。
結び付けるために指定したプロセスが存在しません。
.El
.Sh 関連項目
.Xr aio_error 2 ,
@ -418,10 +462,10 @@ kevent
で初めて登場しました。
.Sh 作者
.Fn kqueue
システムとこのマニュアルページは
システムとこのマニュアルページは
.An Jonathan Lemon Aq jlemon@FreeBSD.org
が書きました。
.Sh バグ
現在は、UFS ファイルシステム以外の全てに属する
現在は、UFS ファイルシステムに属さない
.Xr vnode 9
を監視することが出来ません。
を監視することができません。

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)listen.2 8.2 (Berkeley) 12/11/93
.\" %FreeBSD: src/lib/libc/sys/listen.2,v 1.12.2.3 2000/08/23 00:45:19 jhb Exp %
.\" %FreeBSD: src/lib/libc/sys/listen.2,v 1.12.2.4 2001/03/06 16:46:06 ru Exp %
.\"
.Dd November 3, 1995
.Dt LISTEN 2
@ -62,7 +62,7 @@
.Pp
.Fa backlog
パラメータは、延期中の接続の待ち行列を伸ばす際の最大長を定義します。
待ち行列が杯のときに接続要求が到着すると、クライアントは
待ち行列が杯のときに接続要求が到着すると、クライアントは
.Er ECONNREFUSED
を示すエラーを受信する可能性があります。
または下層のプロトコルが再送信をサポートする場合は、
@ -70,17 +70,17 @@
.Pp
.Xr sysctl 3
MIB 変数
.Dq Li kern.ipc.somaxconn
.Dq Va kern.ipc.somaxconn
.Fa backlog
のハードリミットを指定します。
.Li kern.ipc.somaxconn
.Va kern.ipc.somaxconn
より大きい値、または 0 より小さい値が指定されている場合、
.Fa backlog
の指定は無視されて
.Li kern.ipc.somaxconn
.Va kern.ipc.somaxconn
の値にされます。
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリ
.Fn listen

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)lseek.2 8.3 (Berkeley) 4/19/94
.\" %FreeBSD: src/lib/libc/sys/lseek.2,v 1.10.2.2 2000/05/06 13:34:14 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/lseek.2,v 1.10.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd April 19, 1994
.Dt LSEEK 2

View file

@ -30,9 +30,11 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)madvise.2 8.1 (Berkeley) 6/9/93
.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.17.2.2 2000/12/12 09:55:46 ru Exp %
.\" WORD: revert 書き戻す(dirty なページをファイルシステムに書き込む)[madvise.2]
.\" WORD: physically backing store 物理的バッキングストア(仮想記憶の裏にあるディスク領域、swap やファイルシステム?!)
.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.17.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.\" WORD: revert 書き戻す(dirty なページをファイルシステムに書き込む)[madvise.2]
.\" WORD: physically backing store 物理的バッキングストア
.\" (仮想記憶の裏にあるディスク領域、swap やファイルシステム?!)
.\"
.Dd July 19, 1996
.Dt MADVISE 2
@ -62,13 +64,15 @@
#define MADV_WILLNEED 3 /* これらのページを必要とする */
#define MADV_DONTNEED 4 /* これらのページを必要としない */
#define MADV_FREE 5 /* データは今や重要ではない */
#define MADV_NOSYNC 6 /* 明示的に物理的バッキングストアがコミットされない場合 */
#define MADV_AUTOSYNC 7 /* デフォルトは物理的バッキングストアにコミットされる */
#define MADV_NOSYNC 6 /* 明示的に物理的バッキングストアが
コミットされない場合 */
#define MADV_AUTOSYNC 7 /* デフォルトは物理的バッキングストアに
コミットされる */
#define MADV_NOCORE 8 /* コアファイルにページを含まないこと */
#define MADV_CORE 9 /* コアファイルにページを復帰させる */
.Ed
.Pp
.Bl -tag -width MADV_SEQUENTIAL
.Bl -tag -width MADV_SEQUENTIAL
.It Dv MADV_NORMAL
デフォルトのページング動作に戻るようにシステムに指示します。
.It Dv MADV_RANDOM
@ -80,12 +84,11 @@
.It Dv MADV_WILLNEED
指定の仮想アドレス範囲内にあるページが一時的に高い優先順位を持つようにし、
それらがメモリ内にある場合、解放される可能性を減少させます。
さらに既にメモリ内に
あるページはただちにプロセスにマップされ、それによって
プロセス全体にわたるフォルトによる読み込みによる
さらに既にメモリ内にあるページはただちにプロセスにマップされ、
それによってプロセス全体にわたるフォルトによる読み込みによる
不要なオーバーヘッドを除去します。
これは、フォルトによるページのバッキングストアからの読み込み
を生じさせるのではなく、
これは、フォルトによるページのバッキングストアからの
読み込みを生じさせるのではなく、
メモリ内に既にあるページを呼び出し側のプロセスに素早くマップさせます。
.It Dv MADV_DONTNEED
VM システムに、指定の範囲内のページのメモリ内優先順位の減少を許可します。
@ -108,26 +111,19 @@ VM
通常、これにより、ファイルシステムアップデートデーモンが
VM システムが汚したページを特に理由もないのに
物理ディスクに書込む不要な動作を防止します。
VM とファイルシステムの一貫性は常に維持されることに注意して
下さい。
この機能は、
マップされたデータが必要なときだけ、
(通常、システムページャにより)フラッシュされることを
VM とファイルシステムの一貫性は常に維持されることに注意してください。
この機能は、マップされたデータが必要なときだけ、
(通常、システムページャにより) フラッシュされることを
保証しているに過ぎません。
.Pp
この機能を使用する典型的な場合とは、
ファイルを裏に持つ共有メモリ領域をプロセス (IPC) 間通信で使いたいとき、
とくに、その領域に格納されるデータを物理的ディスクに書き込む必要が
ない場合です。
この機能は、
SysV 共有メモリ呼び出しで得られる mmap 性能と
同等の性能を与えてくれますし、かつ、
SysV 共有メモリ呼び出しを使うより、きめ細かい制御が可能で
より制約が少ない方法でもあります。
しかしこの機能は UNIX プラットホーム間で
移植性がないことに注意してください
(いくつかのプラットホームではデフォルトで
正しく振る舞うかも知れませんが)。
特に、その領域に格納されるデータを物理的ディスクに書き込む必要がない場合です。
この機能は、SysV 共有メモリ呼び出しで得られる mmap 性能と
同等の性能を与えてくれますし、かつ、SysV 共有メモリ呼び出しを使うより、
きめ細かい制御が可能でより制約が少ない方法でもあります。
しかしこの機能は UNIX プラットホーム間で移植性がないことに注意してください
(いくつかのプラットホームではデフォルトで正しく振る舞うかも知れませんが)。
詳しい情報に関しては、
.Xr mmap 2
@ -150,8 +146,8 @@ MADV_NOSYNC
.Sh 戻り値
正常に完了すると
.Fn madvise
は 0 を返します。そうでない場合は値 -1 を
返し、エラーを示すために
は 0 を返します。
そうでない場合は値 -1 を返し、エラーを示すために
.Va errno
が設定されます。
.Sh エラー

View file

@ -30,21 +30,21 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95
.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.22.2.5 2000/12/29 14:44:52 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.22.2.6 2001/03/06 16:46:06 ru Exp %
.\"
.Dd May 11, 1995
.Dt MMAP 2
.Os BSD 4
.Sh 名称
.Nm mmap
.Nd ファイルまたはデバイスをメモリにマップする
.Nd メモリの割り当て、またはファイルまたはデバイスのメモリへのマップ
.Sh ライブラリ
.Lb libc
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/mman.h>
.Ft void *
.Fn mmap "void * addr" "size_t len" "int prot" "int flags" "int fd" "off_t offset"
.Fn mmap "void *addr" "size_t len" "int prot" "int flags" "int fd" "off_t offset"
.Sh 解説
.Fn mmap
関数は、
@ -56,7 +56,7 @@
によって記述されるオブジェクトの
バイトオフセット
.Fa offset
の位置からマップされるようにします。
の位置から始まる部分をマップされるようにします。
.Fa len
がページサイズの倍数でない場合、
マップされた領域は指定の範囲を越えて拡張されるかもしれません。
@ -81,13 +81,15 @@
.Em ( or )
を取った値で指定します。
.Pp
.Bl -tag -width MAP_FIXEDX
.It Dv PROT_EXEC
ページは実行できます
.Bl -tag -width PROT_WRITE -compact
.It Dv PROT_NONE
ページはアクセスできません
.It Dv PROT_READ
ページは読取りできます。
.It Dv PROT_WRITE
ページは書込みできます。
.It Dv PROT_EXEC
ページは実行可能です。
.El
.Pp
.Fa flags
@ -100,8 +102,7 @@
を取った値で
.Fa flags
引数に指定します。
.Pp
.Bl -tag -width MAP_FIXEDX
.Bl -tag -width MAP_HASSEMAPHORE
.It Dv MAP_ANON
どの特定のファイルとも対応していない匿名メモリをマップします。
.Dv MAP_ANON
@ -115,7 +116,9 @@
システムが、指定されたアドレスと異なるアドレスを選択することを許容しません。
指定されたアドレスが使用できない場合、
.Fn mmap
は処理に失敗します。MAP_FIXED が指定されている場合、
は処理に失敗します。
.Dv MAP_FIXED
が指定されている場合、
.Fa addr
はページサイズの倍数である必要があります。
このオプションの使用はお勧めできません。
@ -125,47 +128,67 @@
.It Dv MAP_INHERIT
.Xr execve 2
システムコールを通じて領域が継承できるようにします。
.It Dv MAP_PRIVATE
修正は固有になります。
.It Dv MAP_SHARED
修正は共有されます。
.It Dv MAP_STACK
このオプションが利用できるのは、システムのカーネルをコンパイルするときに
VM_STACK を定義してコンパイルした場合だけです。
これは i386 についてだけデフォルトです。他のアーキテクチャで
このオプションを有効にしたい場合は、/etc/make.conf 内で -DVM_STACK を
COPTFLAGS に追加する方法を検討してください。
MAP_STACK は MAP_ANON および 0 の
.Fa offset
指定を含みます。
.Fa fd
は -1 でなければならず、
.Fa prot
には少なくとも PROT_READ と PROT_WRITE が入っている必要があります。
このオプションは、スタックの
先頭を開始点とし下方に伸びる、サイズが最大で
.Fa len
バイトまで伸びるメモリ領域を作成します。
.It Dv MAP_NOCORE
領域はコアファイルに含まれません。
.It Dv MAP_NOSYNC
はこの VM マップを経由して汚されたデータを、無闇にではなく
(通常はページャによって) 必要な時のみ物理的なメディアに
フラッシュするようにします。
普通、このオプションにより、更新デーモンはこのマップで
汚されたページをフラッシュしないようになります。これにより、
ファイルバックアップされた共有メモリのマッピングを使用して
無関係なプロセスの間でメモリアクセスを効率的に共有することが
できるようになります。
このオプションがないと、汚された VM ページは頻繁 (通常 30-60 秒毎) に
ディスクにフラッシュされるかも知れず、そのような動作を必要としない場合
(例えば IPC のためにファイルを用いた共有 mmap 領域を用いている場合)
パフォーマンスに問題が出ることがあります。
MAP_NOSYNC を使っているかにかかわらず、
.Dv MAP_NOSYNC
を使っているかにかかわらず、
VM/ ファイルシステムの一貫性は保たれることに注意してください。
このオプションは UNIX プラットフォーム間で (まだ) 移植性はありませんが、
このオプションは
.Ux
プラットフォーム間で (まだ) 移植性はありませんが、
いくつかのプラットフォームではデフォルトで同じ動作をするように
実装されているかも知れません。
.Pp
.Xr fsync2
関数はすべての汚染されたデータと、ファイルに関連づけられたメタデータを
フラッシュします。NOSYNC の汚れた VM データ物理的媒体にフラッシュします。
.Em 警告 !
.Xr ftruncate 2
を使いファイルを拡張してから、つまりファイルに大きな穴を空けてから、
その穴を共有
.Fn mmap
を修正して埋める場合、深刻なファイル断片化が生じる可能性があります。
この断片化を避けるために、
.Fn mmap
でその領域を修正する前に、新規に拡張した領域に 0 を
.Fn write
して、ファイルのバッキングストアを事前に割り当てておく必要があります。
ディスクへのフラッシュが全くランダムに生じるため、
断片化問題に特に敏感なのは、
.Dv MAP_NOSYNC
ページです。
.Pp
同じことが、
.Dv MAP_NOSYNC
を使いファイルベースの共有メモリストアを実装する場合にもいえます。
.Fn ftruncate
してバッキングストアを作るのではなく、0 を
.Fn write
してバッキングストアを作ることを推奨します。
たとえば、
.Dq Li dd if=filename of=/dev/null bs=32k
を使うなどして巨大なファイルをシーケンシャルに読み込みながら、
.Dq Li iostat 1
を呼び出すことで得られる
KB/t (転送 1 回あたりのキロバイト数) を観察することで
ファイル断片化のテストが可能です。
.Pp
.Xr fsync 2
関数はすべての汚染されたデータとファイルに関連づけられたメタデータ
(NOSYNC の汚れた VM データを含む) を物理的媒体にフラッシュします。
.Xr sync 8
コマンドと
.Xr sync2
.Xr sync 2
システムコールは、汚染された NOSYNC VM のデータを通常フラッシュしません。
.Xr msync 2
システムコールは
@ -174,9 +197,40 @@ VM/
廃止されました。しかしながら、汚れた VM ページとファイルシステムを
結びつけ、物理的媒体にすぐに(後程ではなく)フラッシュさせる用途に
使われることもあります。
.It Dv MAP_NOCORE
領域はコアファイルには含まれません。
.Pp
.It Dv MAP_PRIVATE
修正はプロセス固有に行なわれます。
.It Dv MAP_SHARED
修正は共有されます。
.It Dv MAP_STACK
このオプションが利用できるのは、システムのカーネルをコンパイルするときに
.Dv VM_STACK
を定義してコンパイルした場合だけです。
これは i386 についてだけデフォルトです。他のアーキテクチャで
このオプションを有効にしたい場合は、
.Pa /etc/make.conf
内で
.Li -DVM_STACK
.Va COPTFLAGS
に追加する方法を検討してください。
.Dv MAP_STACK
.Dv MAP_ANON
および 0 の
.Fa offset
指定を含みます。
.Fa fd
は -1 でなければならず、
.Fa prot
には少なくとも
.Dv PROT_READ
.Dv PROT_WRITE
が入っている必要があります。
このオプションは、スタックの
先頭を開始点とし下方に伸びる、サイズが最大で
.Fa len
バイトまで伸びるメモリ領域を作成します。
スタックの先頭は、呼び出しから返された開始アドレスに
.Fa len
バイトを加えたものになります。最も伸びた場合のスタックの下端は、
@ -197,7 +251,9 @@ VM/
正常に完了すると、
.Fn mmap
は、マップされた領域を指すポインタを返します。そうでない場合は
値 MAP_FAILED が返され、エラーを示すために
.Dv MAP_FAILED
が返され、エラーを示すために
.Va errno
が設定されます。
.Sh エラー
@ -247,13 +303,18 @@ VM/
が通常のファイルまたはキャラクタ型特殊ファイルを参照していませんでした。
.It Bq Er EINVAL
.Fa offset
がページ境界に整列していませんでした (後述する「バグの章」を参照)。
がページ境界に整列していませんでした (後述する「
.Sx バグ
の章」を参照)。
.It Bq Er ENOMEM
.Dv MAP_FIXED
が指定されて
.Fa addr
パラメータが与えられない、もしくは vm.nax_proc_mmap で指定された
プロセス毎の mmap に達しました。
パラメータが与えられない、もしくは
sysctl 値
.Va vm.nax_proc_mmap
で指定された
プロセス毎の mmap 限界に達しました。
.Dv MAP_ANON
が指定されて利用できるメモリが不充分でした。
.Sh 関連項目
@ -272,16 +333,17 @@ VM/
(ファイルサイズ % 2GB) のサイズのウィンドウをマップできます。
.Pp
制約は多彩な理由から生じています。
そのほとんどは、
そのほとんどは、パフォーマンス上の著しいペナルティのため、
.Fx
の VM システム内で 64 ビットのオフセットを使用したくないというものです。
では VM システム内で 64 ビットのオフセットを使用したくないことと
関係しています。
したがって
.Fx
は 32 ビットのページインデックスを使用しており、これによって
.Fx
では最高で 8TB までのファイルサイズを利用できます。実際には
ファイルシステムコード内のバグによってさらに制約が課されて、
1TB までが利用できます。
さらに制約が課されて使用可能サイズは 1TB までですが、これは
ファイルシステムコード内のバグによるものです
(ブロック番号計算を行なっているときの桁落ち)。
.Pp
2GB 制限のもうひとつの理由は、ファイルシステムメタデータが負のオフセットに

View file

@ -149,7 +149,7 @@ O_EXLOCK
.Xr getdtablesize 2
は現在のシステム制限を返します。
.Pp
.Sh システムの注意事項
.Sh 実装に関する注
非スレッドライブラリでは、
.Fn open

View file

@ -1,5 +1,5 @@
.\" %NetBSD: poll.2,v 1.3 1996/09/07 21:53:08 mycroft Exp %
.\" %FreeBSD: src/lib/libc/sys/poll.2,v 1.2.2.1 1999/08/29 14:49:17 peter Exp %
.\" %FreeBSD: src/lib/libc/sys/poll.2,v 1.4.2.2 2001/01/16 10:33:28 ru Exp %
.\"
.\" Copyright (c) 1996 Charles M. Hannum. All rights reserved.
.\"
@ -123,7 +123,7 @@ POLLOUT
.Fa timeout
が INFTIM (-1) の場合、
.Fn poll
永久にブロックします。
無期限にブロックします。
.Fa timeout
が 0 の場合
.Fn poll

View file

@ -1,5 +1,5 @@
.\" %FreeBSD: src/lib/libc/sys/ptrace.2,v 1.10.2.1 1999/08/29 14:49:17 peter Exp %
.\" %NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp %
.\" %FreeBSD: src/lib/libc/sys/ptrace.2,v 1.12.2.7 2001/03/06 16:46:06 ru Exp %
.\" %NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $
.\"
.\" This file is in the public domain.
.Dd January 20, 1996
@ -26,12 +26,12 @@
(トレース
されるプロセス) を制御できます。
ほとんどの場合、トレースされるプロセスは正常に実行されます。
ただし、トレースされるプロセスはシグナルを受信すると
ただし、トレースされるプロセスはシグナル
.Po
.Xr sigaction 2
を参照
.Pc
停止します。トレースするプロセスは、
を受信すると停止します。トレースするプロセスは、
.Xr wait 2
または
.Dv SIGCHLD
@ -59,9 +59,7 @@
ます (親プロセスが子プロセスをトレースしない場合は、
かなり混乱した結果になります。
トレースされるプロセスが停止すると、このプロセスは、
.Eo \&
.Fn ptrace
.Ec \&
によってしか実行を継続できません)。プロセスがこの要求を使用し、
.Xr execve 2
またはそれに組み込まれているルーチン
@ -75,7 +73,7 @@
setuid または setgid ビットは無視されます。
.It Dv PT_READ_I , Dv PT_READ_D
これらの要求は、トレースされるプロセスのアドレス空間から 1 つの
.Li int
.Vt int
データを読み取ります。従来、
.Fn ptrace
は命令とデータについて区別されたアドレス空間のある
@ -107,7 +105,7 @@ setuid
引数で書き込まれる値を指定します。
.It Dv PT_READ_U
この要求は、トレースされるプロセスのユーザ構造体から 1 つの
.Li int
.Vt int
を読み取ります。
.Fa addr
引数は、
@ -117,7 +115,7 @@ int
.Fn ptrace
.Ec
のプロトタイプの存在によって
.Li caddr_t
.Vt caddr_t
にキャストされる整数値です。
.Dv PT_READ_I
および
@ -125,7 +123,7 @@ int
と異なり、
.Fa addr
.Li int
.Vt int
境界に調整されている必要があります。読み取られた値は
.Eo \&
.Fn ptrace
@ -133,7 +131,7 @@ int
からの戻り値として返されます。
.It Dv PT_WRITE_U
この要求はトレースされるプロセスのユーザ構造体に 1 つの
.Li int
.Vt int
を書き込みます。
.Fa addr
には
@ -150,14 +148,16 @@ int
.Fa addr
は、実行が再開される場所 (プログラムカウンタの新しい値)、
または実行が停止されたところで再開されることを示す
.Li (caddr_t)1
.Po
.Vt caddr_t
.Pc Ns 1
を指定します。
.Fa data
には、トレースされるプロセスが実行を再開するときに受信するシグナル番号、
またはシグナルを送信しない場合には 0 を指定します。
.It Dv PT_STEP
トレースされるプロセスは 1 命令ずつステップ実行されます。
.Fa addr
.Fa addr
.Fa data
フィールドは使用されません。
@ -195,7 +195,9 @@ int
この要求は、トレースされるプロセスのマシンレジスタを、
.Fa addr
が指す
.Dq Li "struct reg"
.Do
.Vt "struct reg"
.Dc
.Pf ( Aq Pa machine/reg.h
内に定義されています) 内に読み取ります。
.It Dv PT_SETREGS
@ -204,7 +206,9 @@ int
の逆です。
.Fa addr
が指す
.Dq Li "struct reg"
.Do
.Vt "struct reg"
.Dc
.Pf ( Aq Pa machine/reg.h
内に定義されています)
からトレースされるプロセスのマシンレジスタをロードします。
@ -212,7 +216,9 @@ int
この要求はトレースされるプロセスの浮動小数点レジスタを
.Fa addr
が指す
.Dq Li "struct fpreg"
.Do
.Vt "struct fpreg"
.Dc
.Pf ( Aq Pa machine/reg.h
に定義されています) に読み取ります。
.It Dv PT_SETFPREGS
@ -229,7 +235,9 @@ int
この要求はトレースされるプロセスのデバッグレジスタを
.Fa addr
が指す
.Dq Li "struct dbreg"
.Do
.Vt "struct dbreg"
.Dc
.Pf ( Aq Pa machine/reg.h
内に定義されています)
に読み取ります。
@ -239,7 +247,9 @@ int
の反対です。
.Fa addr
の指す
.Dq Li "struct dbreg"
.Do
.Vt "struct dbreg"
.Dc
.Pf ( Aq Pa machine/reg.h
内に定義されています)
からトレースされるプロセスのデバッグレジスタにロードします。
@ -278,9 +288,9 @@ int
への
.Fa addr
.\".Li int Ns \&-aligned.
.Li int
境界に調節されていませんでした。
.\".Vt int Ns \-aligned.
.Vt int
境界に調節されていませんでした。
.It
.Dv PT_CONTINUE
へのシグナル番号
@ -294,8 +304,8 @@ int
.Dv PT_GETDBREGS
または
.Dv PT_SETDBREGS
が、有効なレジスタを設定せずに使用されました
(これらは通常、システムプロセスについてのみ使用されます)。
が、有効なレジスタセットを設定せずに使用されました
(これが真になるのは、通常、システムプロセスについてのみです)。
.El
.It Bq Er EBUSY
.Bl -bullet -compact

View file

@ -116,7 +116,7 @@ struct iovec {
システムは要求されたバイト数を読取ることを保証しますが、
他のケースではそうではありません。
.Pp
.Sh システムの注意事項
.Sh 実装に関する注
.Pp
非スレッドライブラリでは、
.Fn read

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)recv.2 8.3 (Berkeley) 2/21/94
.\" %FreeBSD: src/lib/libc/sys/recv.2,v 1.4.2.1 1999/09/18 16:19:00 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/recv.2,v 1.8.2.4 2001/03/06 16:46:06 ru Exp %
.\"
.Dd February 21, 1994
.Dt RECV 2
@ -63,14 +63,14 @@
が nil でなく、ソケットが接続指向でない場合、
ここにはメッセージのソースアドレスが保存されます。
.Fa fromlen
は「値-結果」パラメータであり、
は「値 - 結果」パラメータであり、
.Fa from
に対応するバッファのサイズに初期化され、
戻り時には保存されたアドレスの実際のサイズを示すように
変更されます。
.Pp
.Fn recv
呼出しは、通常
出しは、通常
.Em 接続された
ソケット上だけで使用され
.Pf ( Xr connect 2
@ -84,18 +84,18 @@
これら 3 つのルーチンは正常に完了するとメッセージの長さを返します。
メッセージが長すぎて指定のバッファに収まらない場合、
メッセージを受信したソケットのタイプによっては
超過分のバイトが破棄されることがあります
超過分のバイトが破棄されることがあります
.Pf ( Xr socket 2
を参照)。
.Pp
ソケットにメッセージが無い場合は、ソケットが非ブロッキング
.Pf ( Xr fcntl 2
を参照) の場合を除き、呼出しはメッセージが到着するのを待ちます。
を参照) の場合を除き、呼出しはメッセージが到着するのを待ちます。
ソケットが非ブロッキングの場合、値 -1 が返され、外部変数
.Va errno
.Er EAGAIN
に設定されます。通常、受信呼出しは要求された量を受信するまで待たずに、
に設定されます。通常、受信呼出しは要求された量を受信するまで待たずに、
要求された量を上限として得られたデータを返します。この動作は、
.Xr getsockopt 2
で解説されているソケットレベルのオプション
@ -106,18 +106,18 @@
.Pp
次のデータがいつ到着するかを判定するには
.Xr select 2
呼出しを使うことができます。
出しを使うことができます。
.Pp
recv 呼出しへの
recv 呼出しへの
.Fa flags
引数は、次の値の 1 つまたは複数の論理和
.\".Em or Ap ing
.Em ( or )
から成ります。
.Bl -column MSG_WAITALL -offset indent
.It Dv MSG_OOB プロセス帯域外データ
.It Dv MSG_PEEK 着信メッセージの覗き見 (peek)
.It Dv MSG_WAITALL 要求の完全な実行、またはエラーを待つ
.It Dv MSG_OOB Ta プロセス帯域外データ
.It Dv MSG_PEEK Ta 着信メッセージの覗き見 (peek)
.It Dv MSG_WAITALL Ta 要求の完全な実行、またはエラーを待つ
.El
.Pp
.Dv MSG_OOB
@ -126,16 +126,15 @@ recv
急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、
このフラグはそのようなプロトコルでは使用できません。MSG_PEEK フラグは
受信待ち行列の先頭からデータを除去することなく、そのデータを
返します。したがって、後続の受信呼出しは同じデータ
返します。したがって、後続の受信呼出しは同じデータ
を返します。MSG_WAITALL フラグは要求が完全に満たされるまで
ブロックするように要求します。
しかし、シグナルが補足された場合、エラーまたは切断が発生した場合、
しかし、シグナルが捕捉された場合、エラーまたは切断が発生した場合、
または受信する次のデータが返されたタイプと異なる
場合、呼出しは要求されたより少ないデータを返す可能性があります。
場合、呼出しは要求されたより少ないデータを返す可能性があります。
.Pp
.Fn recvmsg
呼び出しは、
直接に指定されるパラメータの数を最小にするために
呼び出しは、直接に指定されるパラメータの数を最小にするために
.Fa msghdr
構造体を使用します。この構造体は
.Ao Pa sys/socket.h Ac
@ -181,11 +180,11 @@ struct cmsghdr {
};
.Pp
.Ed
たとえば、これを使用して XNS/SPP または ISO における
データストリームの変化を知り、
たとえば、これを使用して XNS/SPP において
データストリームの変化を知ることができます。また、ISO において
.Fn accept
呼び出しの直後に、データバッファを伴わずに recvmsg を要求して、
ユーザ接続要求を得ることができるでしょう。
ユーザ接続要求データを得ることができるでしょう。
.Pp
オープンされたファイル記述子はこれで
.Dv AF_UNIX
@ -244,7 +243,7 @@ struct cmsgcred {
は、急送または帯域外データが受信されたことを示します。
.Pp
.Sh 戻り値
これらの呼出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。
これらの呼出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。
.Sh エラー
呼び出しは次の場合に失敗します。
.Bl -tag -width Er

View file

@ -3,7 +3,7 @@
.\" describe the actual BSD implementation. Permission for
.\" use of this page comes from Rob Pike <rob@plan9.att.com>.
.\"
.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.11.2.5 2000/12/12 09:55:46 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.11.2.6 2001/02/07 00:59:41 ps Exp %
.\"
.Dd January 12, 1996
.Dt RFORK 2
@ -42,8 +42,8 @@ fork, vfork, rfork
.It RFFDG
設定されている場合、起動側のファイル記述子テーブル
.Pf ( Xr intro 2
を参照) が
コピーされます。そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。
を参照) がコピーされます。
そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。
.It RFCFDG
設定されている場合、新しいプロセスは新しいファイル記述子テーブルで
開始します。
@ -53,7 +53,7 @@ fork, vfork, rfork
設定されている場合、
通常、ハードウェアのページテーブルを直接共有することで、
カーネルはアドレス空間全体の共有を強制します。
子は、このな方法で、
子は、このような方法で、
親プロセスが所有しているすべてのセグメントを、
それが普段共有可能であるか否かに関係なく、
継承し共有します。
@ -62,11 +62,14 @@ fork, vfork, rfork
ので、
RFMEM フラグを指定した
.Fn rfork
を通常、高級言語から直接呼び出すことはできません。
例えば、C 言語でこのシステムコールを直接呼び出すことはできません。
は一般に、C 言語を含む高級言語から直接呼び出すことはできません。
共に設定可能なフラグは
.Dv RFPROC
だけです。
この問題を解決し、提供されたスタック上で新しいプロセスを
走らせるために補助関数が提供されています。詳しくは
.Fn rfork_thread 3
を参照してください。
.It RFSIGSHARE
設定されている場合、カーネルは、親子間で sigacts 構造体を共有することを
強制します。
@ -97,7 +100,7 @@ SIGUSR1
は、
.Fn rfork "RFFDG | RFPROC"
への呼び出しとして実装可能ですが、後方互換性のために
その様には実装していません。
そのようには実装されていません。
.Sh 戻り値
正常に完了した場合、
.Fn rfork
@ -121,8 +124,8 @@ MIB
これより 1 少なくなります)。
.It Bq Er EAGAIN
ユーザがスーパユーザではなく、
1 人のユーザによる実行中のプロセスの合計数
がシステムの課した制限を超過してしまいます。制限は、
1 人のユーザによる実行中のプロセスの合計数がシステムの課した制限を
超過してしまいます。制限は、
.Xr sysctl 3
MIB 変数
.Dv KERN_MAXPROCPERUID
@ -144,12 +147,13 @@ RFFDG
.Xr fork 2 ,
.Xr intro 2 ,
.Xr minherit 2 ,
.Xr vfork 2
.Xr vfork 2 ,
.Xr rfork_thread 3
.Sh BUGS
.Fx
は native な
.Fn clone
ライブラリコールを未だ実装していませんし、
ライブラリコールを未だに実装されていませんし、
現在の pthreads 実装は RFMEM を指定した
.Fn rfork
を利用していません。
@ -157,7 +161,11 @@ linux
.Pa /usr/ports/devel/linuxthreads
は RFMEM を利用して動作する
.Fn clone
コールを含んでいます。
呼び出しを含んでいます。
.Fn rfork_thread
ライブラリ関数は
.Fn clone
の代わりとして利用することができます。
.Sh 歴史
.Fn rfork
関数は

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)select.2 8.2 (Berkeley) 3/25/94
.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.14.2.1 2000/04/22 17:07:04 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.14.2.2 2001/03/06 16:46:06 ru Exp %
.\"
.Dd March 25, 1994
.Dt SELECT 2
@ -115,7 +115,7 @@
.Pp
ポーリングのためには、
.Fa timeout
引数ヌルでなく、値が 0 の timeval 構造体を指しているべきです。
引数ヌルでなく、値が 0 の timeval 構造体を指しているべきです。
.Pp
.Fa readfds ,
.Fa writefds
@ -180,13 +180,11 @@
は最初の
256 個の記述子を必ず調査します。
.Sh バグ
.St -susv2
では、システムが元の timeout を適当に更新することを許しています。
したがって、タイムアウトの値が
.Fn select
は、時間値を適切に修正することで、
指定したタイムアウトからの残り時間を返す必要がおそらくあります。
これはシステムの将来のバージョンで実装される可能性があります。
このように、タイムアウトの値が
.Fn select
呼び出しによって修正されないと想定するのは賢明ではありません。
呼び出しによって変更されないと想定するのは賢明ではありません。
.Sh 歴史
.Fn select
関数は

View file

@ -23,7 +23,7 @@
.\" (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/lib/libc/sys/semget.2,v 1.7.2.2 2000/12/29 14:44:53 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/semget.2,v 1.7.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd September 12, 1995
.Dt SEMGET 2
@ -54,23 +54,18 @@
キーはファイル名に類似しています。
キーは
IPC オブジェクトに名前を付けるハンドルを提供します。
キーを指定する方法は
3 つあります。
キーを指定する方法は 3 つあります。
.Bl -bullet
.It
IPC_PRIVATE
を指定できます。この場合、新しい
IPC オブジェクトが作成されます。
を指定できます。この場合、新しい IPC オブジェクトが作成されます。
.It
整数定数を指定できます。
.Fa key
に対応する
IPC オブジェクトが指定されておらず、しかも
IPC_CREAT
ビットを
に対応する IPC オブジェクトが指定されておらず、
しかも IPC_CREAT ビットを
.Fa flag
引数で設定している場合、新しい
IPC オブジェクトが作成されます。
引数で設定している場合、新しい IPC オブジェクトが作成されます。
.It
.Fn ftok
を使用して、パス名からキーを生成できます。
@ -82,8 +77,7 @@ IPC
.\"
.Pp
新しく作成される
IPC オブジェクトのモードは、次の定数の論理和
(
IPC オブジェクトのモードは、次の定数の論理和 (
.Em OR
) を
.Fa flag
@ -93,13 +87,13 @@ IPC
ユーザ用の読取りアクセス
.It Dv SEM_A
ユーザ用の書換えアクセス
.It Dv (SEM_R>>3)
.It Dv ( SEM_R>>3 )
グループ用の読取りアクセス
.It Dv (SEM_A>>3)
.It Dv ( SEM_A>>3 )
グループ用の書換えアクセス
.It Dv (SEM_R>>6)
.It Dv ( SEM_R>>6 )
その他用の読取りアクセス
.It Dv (SEM_A>>6)
.It Dv ( SEM_A>>6 )
その他用の書換えアクセス
.El
.Pp
@ -108,13 +102,11 @@ IPC
を使用して、集合の中に入れる必要のある
セマフォの数を示します。そうでない場合、
.Fa nsems
0 として指定できます。
を 0 として指定できます。
.Sh 戻り値
.Fn semget
は、正常に完了するとセマフォ集合の識別子を返します。
そうでない場合は、
-1 を返し、エラーを示すように
そうでない場合は、-1 を返し、エラーを示すように
.Va errno
を設定します。
.Sh エラー

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)send.2 8.2 (Berkeley) 2/21/94
.\" %FreeBSD: src/lib/libc/sys/send.2,v 1.10.2.1 2000/04/22 17:07:05 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/send.2,v 1.10.2.2 2001/01/17 21:03:24 ben Exp %
.\"
.Dd February 15, 1995
.Dt SEND 2
@ -171,6 +171,8 @@
それが一時的な輻輳によって起こったことを示します。
.It Bq Er EHOSTUNREACH
リモートホストに到達できませんでした。
.It Bq Er EHOSTDOWN
リモートホストがダウンしていました。
.El
.Sh バグ
.Fn sendmsg

View file

@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.6.2.3 2000/12/08 13:49:32 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.6.2.4 2001/03/06 16:46:06 ru Exp %
.\"
.Dd November 5, 1998
.Dt SENDFILE 2
@ -50,8 +50,8 @@
.Fa offset
引数はファイルのどこから開始すべきかを指定します。
.Fa nbytes
引数は、ファイルの何バイトを送信する必要があるかを指定します。 0 は、
ファイルの終わりまで送信するという特殊な意味を持ちます。
引数は、ファイルの何バイトを送信する必要があるかを指定します。
0 は、ファイルの終わりまで送信するという特殊な意味を持ちます。
.Pp
オプションのヘッダまたはトレーラ、またはその両方は、構造体 sf_hdtr を
指すポインタを指定することによってファイルの前と後で送信できます。
@ -68,9 +68,9 @@ struct sf_hdtr {
.Pp
.Fa headers
ポインタと
.Fa tailers
ポインタは、 NULL でない場合に構造体 iovec 構造の配列を
指します。 iovec 構造体の詳細については、
.Fa trailers
ポインタは、NULL でない場合に構造体 iovec 構造の配列を
指します。iovec 構造体の詳細については、
.Fn writev
システムコールを参照してください。
これらの配列内の iovecs の数は、
@ -84,7 +84,7 @@ NULL
によって指された変数に書込みます。
.Pp
.Fa flags
引数は現時点では未定義であり、 0 に指定する必要があります。
引数は現時点では未定義であり、0 に指定する必要があります。
.Pp
非ブロッキング入出力用に指定されたソケットを使用するときに、
.Fn sendfile
@ -115,7 +115,7 @@ NULL
.Fn sendfile
は読取り用に
.Fa fd
、書込み用に
、書込み用に
.Fa s
をロックしてから
.Fn _thread_sys_sendfile
@ -163,7 +163,7 @@ NULL
通信相手が接続を閉じてしまいました。
.It Bq Er EIO
.Fa fd
から読取る間に入出力エラーが発生しました。
から読取り中に入出力エラーが発生しました。
.It Bq Er EFAULT
パラメータについて無効なアドレスが指定されました。
.It Bq Er EAGAIN
@ -180,9 +180,9 @@ sbytes
.Xr writev 2
.Sh 歴史
.Fn sendfile
は、はじめて
は、
.Fx 3.0
で登場しました。このマニュアルページは
はじめて登場しました。このマニュアルページは
.Fx 3.1
ではじめて登場しました。
.Sh 作者

View file

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)setreuid.2 8.2 (Berkeley) 4/16/94
.\" %FreeBSD: src/lib/libc/sys/setreuid.2,v 1.6.2.2 2000/05/06 13:34:14 phantom Exp %
.\" %FreeBSD: src/lib/libc/sys/setreuid.2,v 1.6.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd April 16, 1994
.Dt SETREUID 2
@ -45,12 +45,12 @@
.Ft int
.Fn setreuid "uid_t ruid" "uid_t euid"
.Sh 解説
現在のプロセスの実ユーザ ID と実効ユーザ ID が引数に従って設定
されます。
現在のプロセスの実ユーザ ID と実効ユーザ ID が引数に従って
設定されます。
.Fa ruid
または
.Fa euid
が -1 の場合、現在の uid が指定されたことになります。特権のない
が -1 の場合、現在の UID が指定されたことになります。特権のない
ユーザは、実ユーザ ID をその実効ユーザ ID に、または実効ユーザ ID を
その実ユーザ ID に変更できます。スーパユーザだけがその他の変更を行えます。
.Pp
@ -67,6 +67,7 @@
.Fn setuid
関数を使用するようにしてください。
.Sh 戻り値
.\".Rv -std setreuid
処理が正常に完了すると、値 0 が返されます。
そうでない場合は -1 が返され、エラーを示すために
.Va errno

View file

@ -23,7 +23,7 @@
.\" (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/lib/libc/sys/shmget.2,v 1.8.2.2 2000/12/29 14:44:54 ru Exp %
.\" %FreeBSD: src/lib/libc/sys/shmget.2,v 1.8.2.3 2001/03/06 16:46:06 ru Exp %
.\"
.Dd July 3, 1995
.Dt SHMGET 2
@ -64,7 +64,7 @@ IPC_PRIVATE
に対応する IPC オブジェクトが指定されておらず、IPC_CREAT ビットが
.Fa flag
で設定されている場合は、新しい IPC オブジェクトが作成されます。
.It
.It
.Fn ftok
を使用し、パス名からキーを作成できます。
.Xr ftok 3
@ -76,17 +76,17 @@ IPC_PRIVATE
パラメータに渡す以下の定数の論理和で決まります。
.Bl -tag -width XSHM_WXX6XXX
.It Dv SHM_R
ユーザの読取りアクセス
ユーザの読取りアクセス
.It SHM_W
ユーザの書込みアクセス
.It Dv (SHM_R>>3)
グループの読取りアクセス
.It Dv (SHM_W>>3)
グループの書込みアクセス
.It Dv (SHM_R>>6)
他者の読取りアクセス
.It Dv (SHM_W>>6)
他者の書込みアクセス
ユーザの書込みアクセス
.It Dv ( SHM_R>>3 )
グループの読取りアクセス
.It Dv ( SHM_W>>3 )
グループの書込みアクセス
.It Dv ( SHM_R>>6 )
その他用の読取りアクセス
.It Dv ( SHM_W>>6 )
その他用の書込みアクセス
.El
.\"
.\" XXX - we should also mention how uid, euid, and gid affect ownership
@ -131,5 +131,5 @@ IPC_CREAT
.Sh 関連項目
.Xr shmat 2 ,
.Xr shmctl 2 ,
.Xr shmdt 2 ,
.Xr shmdt 2 ,
.Xr ftok 3

View file

@ -30,11 +30,11 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)shutdown.2 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/sys/shutdown.2,v 1.7.2.3 2000/08/23 00:56:03 jhb Exp %
.\" %FreeBSD: src/lib/libc/sys/shutdown.2,v 1.7.2.4 2001/03/07 08:43:44 ru Exp %
.\"
.Dd June 4, 1993
.Dd February 27, 2001
.Dt SHUTDOWN 2
.Os BSD 4.2
.Os
.Sh 名称
.Nm shutdown
.Nd 全二重接続の一部をシャットダウン
@ -47,35 +47,45 @@
.Fn shutdown "int s" "int how"
.Sh 解説
.Fn shutdown
を呼び出すと、
を呼び出すと、ファイル記述子
.Fa s
に関連するソケットの全二重接続の全部か一部がシャットダウンされます。
引数
.Fa how
.No Dv SHUT_RD Pq 0
である場合は、さらなる受信はできなくなります。
.Fa how
.No Dv SHUT_WR Pq 1
である場合は、さらなる送信ができなくなります。
.Fa how
.No Dv SHUT_RDWR Pq 2
である場合は、さらなる送受信ができなくなります。
でシャットダウンのタイプを指定します。
可能な値は以下の通りです:
.Bl -tag -width SHUT_RDWR
.It Dv SHUT_RD
これ以降の受信ができなくなります。
.It Dv SHUT_WR
これ以降の送信ができなくなります。
.It Dv SHUT_RDWR
これ以降の送受信ができなくなります。
.El
.Sh 戻り値
呼び出しが成功すると 0 が返されます。
エラーが発生した場合は -1 が返されます。
.\.Rv -std shutdown
.Fn shutdown
関数は成功すると 0 を返します。
それ以外の場合は値 -1 が返され、エラーを示すグローバル変数
.Fa error
が設定されます。
.Sh エラー
次の場合、呼び出しはエラーになります。
.Bl -tag -width Er
.It Bq Er EBADF
引数
.Fa s
が有効な記述子ではありません。
.It Bq Er ENOTSOCK
.Fa s
がソケットではなくファイルです。
.It Bq Er EINVAL
引数
.Fa how
が有効な値ではありません。
.It Bq Er ENOTCONN
指定されたソケットが接続されていません。
ソケットは接続されていません。
.It Bq Er ENOTSOCK
引数
.Fa s
はソケットを参照していません。
.El
.Sh 関連項目
.Xr connect 2 ,
@ -90,7 +100,9 @@
関数呼び出しは、
.Bx 4.2
で追加されました。
.Dv SHUT_
.Dv SHUT_RD , SHUT_WR
.Dv SHUT_RDWR
定数は、
.St -p1003.1g
に追加されました。

View file

@ -33,15 +33,14 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)sigpending.2 8.3 (Berkeley) 1/12/94
.\" %FreeBSD: src/lib/libc/sys/sigpending.2,v 1.5.2.1 2000/04/22 17:07:07 phantom Exp %
.\" man-jp:Ohsawa: 2001/03/13 %FreeBSD: src/lib/libc/sys/sigpending.2,v 1.5.2.2 2001/01/16 21:59:22 ben Exp %
.\" %FreeBSD: src/lib/libc/sys/sigpending.2,v 1.5.2.2 2001/01/16 21:59:22 ben Exp %
.\"
.Dd January 12, 1994
.Dt SIGPENDING 2
.Os
.Sh 名称
.Nm sigpending
.Nd 保留中のシグナルの
.Nd 保留中のシグナルの
.Sh ライブラリ
.Lb libc
.Sh 書式
@ -60,19 +59,16 @@
戻り値 0 は呼び出しが正常に完了したことを示します。
戻り値 -1 はエラーが起こったことを示し、
.Va errno
にエラーが起こった理由が設定されます。
にエラーが起こった理由が設定されます。
.Sh エラー
.Fn sigpending
関数は、現在のところエラーを検出しません。
.\" 2001/03/13:jp-man ohsawa 2001/01/16 に修正がはいりました。
.\" .Fn sigpending
.\" will fail if:
.\" .Bl -tag -width Er
.\" .It Bq Er EFAULT
.\" The
.\" .Fa set
.\" argument specified an invalid address.
.\" .El
関数は、失敗した場合に次のエラーを返します。
.Bl -tag -width Er
.It Bq Er EFAULT
引数
.Fa set
が示すアドレスが無効です。
.El
.Sh 関連項目
.Xr sigaction 2 ,
.Xr sigprocmask 2

View file

@ -1,5 +1,5 @@
.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@ -11,8 +11,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.
@ -29,9 +29,8 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93
.\" $FreeBSD: src/lib/libc/sys/socket.2,v 1.12.2.4 2000/12/29 14:44:54 ru Exp
$
.\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93
.\" %FreeBSD: src/lib/libc/sys/socket.2,v 1.12.2.5 2001/03/06 16:46:06 ru Exp %
.\"
.Dd November 24, 1997
.Dt SOCKET 2
@ -48,16 +47,14 @@ $
.Fn socket "int domain" "int type" "int protocol"
.Sh 解説
.Fn socket
は、通信のエンドポイントを作成し、記述子を
戻します。
は、通信のエンドポイントを作成し、記述子を戻します。
.Pp
.Fa domain
パラメータでは、通信を行なう通信ドメインを指
定します。これにより、使用するプロトコルファミリが選
択されます。このプロトコルファミリは、インクルードファイル
パラメータでは、通信を行なう通信ドメインを指定します。
これにより、使用するプロトコルファミリが選択されます。
このプロトコルファミリは、インクルードファイル
.Ao Pa sys/socket.h Ac
で定義されています。現在解釈され
るフォーマットは以下のとおりです。
で定義されています。現在解釈されるフォーマットは以下のとおりです。
.Pp
.Bd -literal -offset indent -compact
PF_LOCAL PF_UNIX と呼ばれていた、ホスト内プロトコル
@ -73,8 +70,8 @@ PF_OSI
(Open System Interconnection)
PF_ECMA ヨーロッパ電子計算機工業会
(European Computer Manufacturers)
PF_DATAKIT データキット(Datakit)プロトコル
PF_CCITT X.25 のような ITU-T プロトコル
PF_DATAKIT データキット (Datakit) プロトコル
PF_CCITT X.25 に似た ITU-T プロトコル
PF_SNA IBM SNA
PF_DECnet DECnet
PF_DLI DEC Direct / DLI (Data Link Interface) プロトコル
@ -83,17 +80,17 @@ PF_HYLINK NSC
PF_APPLETALK AppleTalk プロトコル
PF_ROUTE 内部ルーティングプロトコル
PF_LINK リンク層インタフェース
PF_XTP XTP プロトコル (Xpress Transfer Protocol)
PF_XTP XTP プロトコル (Xpress Transfer Protocol)
PF_COIP コネクションオリエンテッド IP, 別名 ST II
PF_CNT Computer Network Technology 社のプロトコル
PF_SIP SIP プロトコル (Simple Internet Protocol)
PF_SIP SIP プロトコル (Simple Internet Protocol)
PF_IPX Novell 社 IPX (Intenet Packet eXchange) プロトコル
PF_RTIP RTIP パケットの識別に使用
PF_PIP PIP パケットの識別に使用
PF_ISDN 統合デジタル通信サービス網(ISDN)
PF_ISDN 統合デジタル通信サービス網 (ISDN)
PF_KEY 内部鍵管理機能
PF_INET6 IPv6 プロトコル
PF_NATM ATM に直接アクセス
PF_NATM ATM にネイティブアクセス
PF_ATM ATM
PF_NETGRAPH Netgraph ソケット
.Ed
@ -105,11 +102,11 @@ PF_NETGRAPH Netgraph
.Bd -literal -offset indent -compact
SOCK_STREAM ストリーム型ソケット
SOCK_DGRAM データグラム型ソケット
SOCK_RAW 低レベルプロトコルインタフェース
SOCK_RAW プロトコルインタフェース
SOCK_RDM 伝達が信頼できるパケット
SOCK_SEQPACKET 順序付きパケットストリーム
.Ed
.\" 原文は
.\" 原文は
.\" SOCK_RDM Sequenced packet stream,
.\" SOCK_SEQPACKET Reliably-delivered packet
.\" となっていたが、
@ -122,10 +119,8 @@ SOCK_SEQPACKET
バイトストリームを提供します。帯域外データ転送メカニズムが
サポートされることもあります。
.Dv SOCK_DGRAM
ソケットでは、データグラム
(コネクションレスで信頼性のない、最大長が固定の (一般的には小さい)
メッセージ)
がサポートされます。
ソケットでは、データグラム (コネクションレスで信頼性のない、
最大長が固定の (一般的には小さい) メッセージ) がサポートされます。
.Dv SOCK_SEQPACKET
ソケットは、連続した、信頼性のある、双方向接続ベースの
最大長が固定のデータグラムの転送を提供します。
@ -134,8 +129,8 @@ SOCK_SEQPACKET
.Dv PF_NS
でしか実装されていません。
.Dv SOCK_RAW
ソケットでは、内部ネットワークプロトコ
ルとインタフェースにアクセスできます。スーパユーザしか使用できない
ソケットでは、内部ネットワークプロトコルとインタフェースにアクセスできます。
スーパユーザしか使用できない
.Dv SOCK_RAW
タイプ、および計画されているがまだ実装されていない
.Dv SOCK_RDM
@ -169,8 +164,9 @@ SOCK_SEQPACKET
.Xr recv 2
の変種を呼び出してデータを転送できます。(インターネットファミリなど、
一部のプロトコルファミリでは、「暗黙接続」という観念が
サポートされています。この接続では、
一部のプロトコルファミリでは、
.Dq 暗黙接続
という観念がサポートされています。この接続では、
.Xr sendto 2
を呼び出し、接続オペレーションに乗せてデータを送信できます。)
セッションが終了したら、
@ -193,7 +189,7 @@ SOCK_SEQPACKET
が設定されます。その他の動作がない場合、
プロトコルは約 1 分ごとに転送を強制し、ソケットの
.Dq 接続
を任意に維持します。一定期間 (例5 分間)
を任意に維持します。一定期間 (例えば 5 分間)
アイドル接続で応答がない場合はエラーとなります。
破損したストリームでプロセスが送信すると、
.Dv SIGPIPE
@ -275,9 +271,8 @@ SOCK_SEQPACKET
.Xr getprotoent 3 ,
.Xr netgraph 4 ,
.Xr protocols 5
.Re
.Rs
.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
.%B PS1
.%N 7
.Re
@ -291,4 +286,3 @@ SOCK_SEQPACKET
関数呼び出しは
.Bx 4.2
で登場しました。

View file

@ -30,6 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)write.2 8.5 (Berkeley) 4/2/94
.\" %FreeBSD: src/lib/libc/sys/write.2,v 1.12.2.3 2001/03/05 11:44:37 obrien Exp %
.\"
.Dd April 2, 1994
.Dt WRITE 2
@ -199,8 +200,10 @@ struct iovec {
使い尽くされています。
.It Bq Er EIO
ファイルシステムに読み書きしている間に入出力エラーが発生しました。
.It Bq Er EINTR
書込みが完了する前にシグナルが割り込みました。
.It Bq Er EAGAIN
ファイルは非ブロッキング I/O にマークされており、
ファイルは非ブロッキング入出力にマークされており、
すぐにデータを書込める状態ではありません。
.El
.Pp