diff --git a/ja_JP.eucJP/man/man2/accept.2 b/ja_JP.eucJP/man/man2/accept.2 index 20964bc044..5c637d5cdf 100644 --- a/ja_JP.eucJP/man/man2/accept.2 +++ b/ja_JP.eucJP/man/man2/accept.2 @@ -1,166 +1,166 @@ .\" Copyright (c) 1983, 1990, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)accept.2 8.2 (Berkeley) 12/11/93 -.\" %FreeBSD: src/lib/libc/sys/accept.2,v 1.27 2003/09/05 15:41:52 roam Exp % +.\" %FreeBSD: src/lib/libc/sys/accept.2,v 1.28 2003/12/24 18:52:41 alfred Exp % .\" .\" $FreeBSD$ .Dd December 11, 1993 .Dt ACCEPT 2 .Os .Sh 名称 .Nm accept .Nd ソケット上の接続を受け入れる .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int -.Fn accept "int s" "struct sockaddr *addr" "socklen_t *addrlen" +.Fn accept "int s" "struct sockaddr * restrict addr" "socklen_t * restrict addrlen" .Sh 解説 引数 .Fa s は .Xr socket 2 で作成され、 .Xr bind 2 でアドレスにバインドされ、 .Xr listen 2 も済ませて接続を待ち受けているソケットです。 .Fn accept システムコールは、待ち行列上の最初の接続要求を取り出し、 .Fa s と同じプロパティの新しいソケットを作成し、 ソケットのための新しいファイル記述子を割り当てます。 接続要求が待ち行列上に存在せず、 しかもソケットが非ブロッキングとマークされていない場合、 .Fn accept は接続要求があるまで呼び出し側をブロックします。 ソケットが非ブロッキングとマークされており、 しかも待ち行列に接続要求が存在しない場合、 .Fn accept は後述のようにエラーを返します。 接続が成立したソケットは、それ以上の接続を受け入れるために 使用できません。 オリジナルのソケット .Fa s は開いたままです。 .Pp 引数 .Fa addr は結果の引数で、 通信レイヤに既知の接続エンティティのアドレスで埋められます。 .Fa addr 引数の正確な形式は通信が行われるドメインで決まります。 アドレス情報が要望されない場合には、 .Fa addr にヌルポインタを指定することができます。 この場合は .Fa addrlen は使用されず、これもヌルであるべきです。 そうでない場合には .Fa addrlen は、値と結果の引数です。 これは最初は .Fa addr が指す空間のサイズを含んでいなければなりません。 戻り時には、返されるアドレスの実際の長さ (バイト単位) を含むことになります。 この呼び出しは、コネクションをベースとしたソケットタイプ、 現在では .Dv SOCK_STREAM とともに使用されます。 .Pp 読取りでソケットを .Xr select 2 することによって、 .Fn accept するソケットを選ぶことができます。 .Pp .Tn ISO または .Tn DATAKIT のような明瞭な確認が必要な特定のプロトコルでは、 .Fn accept は単に次の接続要求を待ち行列から除くだけで、 確認は行わないと考えられます。 確認は、新しいファイル記述子についての 通常の読取りまたは書込みによって行うことができ、 拒絶は新しいソケットを閉じる事によって実現できます。 .Pp ある種のアプリケーションにおいては、内向きの接続を .Xr accept_filter 9 で前処理することにより、性能が向上するかもしれません。 .Sh 戻り値 システムコールはエラーがあった場合 \-1 を返します。 処理が正常に完了した場合、受け付けたソケットの 記述子である非負整数を返します。 .Sh エラー .Fn accept システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EBADF 記述子が有効ではありません。 .It Bq Er EINTR .Fn accept 操作が割り込まれました。 .It Bq Er EMFILE プロセスの記述子テーブルが満杯です。 .It Bq Er ENFILE システムファイルテーブルが満杯です。 .It Bq Er ENOTSOCK 記述子がファイルを参照しておりソケットではありません。 .It Bq Er EINVAL .Xr listen 2 がソケット記述子に対して呼び出されていません。 .It Bq Er EFAULT .Fa addr 引数がユーザアドレス空間の書込み可能な部分にありません。 .It Bq Er EWOULDBLOCK ソケットが非ブロッキングとマークされ、さらに 受け付けるべき接続要求が存在しません。 .It Bq Er ECONNABORTED 接続要求が到着しましたが、待ち行列で待機している 間に閉じてしまいました。 .El .Sh 関連項目 .Xr bind 2 , .Xr connect 2 , .Xr getpeername 2 , .Xr listen 2 , .Xr select 2 , .Xr socket 2 , .Xr accept_filter 9 .Sh 歴史 .Fn accept システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getpeername.2 b/ja_JP.eucJP/man/man2/getpeername.2 index 11281d5b4a..75a01036b3 100644 --- a/ja_JP.eucJP/man/man2/getpeername.2 +++ b/ja_JP.eucJP/man/man2/getpeername.2 @@ -1,93 +1,93 @@ .\" Copyright (c) 1983, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)getpeername.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/getpeername.2,v 1.21 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getpeername.2,v 1.22 2003/12/24 18:52:41 alfred Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt GETPEERNAME 2 .Os .Sh 名称 .Nm getpeername .Nd 接続されたピア (通信相手) の名前の取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int -.Fn getpeername "int s" "struct sockaddr *name" "socklen_t *namelen" +.Fn getpeername "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen" .Sh 解説 .Fn getpeername システムコールは、ソケット .Fa s に接続されたピア (通信相手) の名前を返します。 .Fa namelen 引数には、 .Fa name が指す空間の大きさを示す値を入れておく必要があります。 戻る時に、これには返された名前の 実際のサイズ (バイト単位) が入れられます。 準備されたバッファが小さすぎる場合、名前は切り捨てられます。 .Sh 戻り値 .Rv -std getpeername .Sh エラー 以降の場合を除いて呼び出しは処理に成功します: .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ECONNRESET 接続がピアによってリセットされました。 .It Bq Er ENOTSOCK 引数 .Fa s はソケットではなくファイルです。 .It Bq Er ENOTCONN ソケットが接続されていません。 .It Bq Er ENOBUFS 操作を実行するための十分なリソースがシステムにありません。 .It Bq Er EFAULT .Fa name パラメータは、プロセスのアドレス空間の有効な領域の範囲外を指しています。 .El .Sh 関連項目 .Xr accept 2 , .Xr bind 2 , .Xr getsockname 2 , .Xr socket 2 .Sh 歴史 .Fn getpeername システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getsockname.2 b/ja_JP.eucJP/man/man2/getsockname.2 index dde4defa0b..90a2d48fab 100644 --- a/ja_JP.eucJP/man/man2/getsockname.2 +++ b/ja_JP.eucJP/man/man2/getsockname.2 @@ -1,94 +1,94 @@ .\" Copyright (c) 1983, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)getsockname.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/getsockname.2,v 1.22 2003/06/08 10:01:52 charnier Exp % +.\" %FreeBSD: src/lib/libc/sys/getsockname.2,v 1.23 2003/12/24 18:52:41 alfred Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt GETSOCKNAME 2 .Os .Sh 名称 .Nm getsockname .Nd ソケットの名前を得る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int -.Fn getsockname "int s" "struct sockaddr *name" "socklen_t *namelen" +.Fn getsockname "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen" .Sh 解説 .Fn getsockname システムコールは指定のソケットについて現在の .Fa name を返します。 .Fa namelen 引数は、 .Fa name が指す空間の大きさを示すように初期化しておく必要があります。 戻る時には返された名前の実際のサイズ (バイト単位) が入ります。 .Sh 戻り値 .Rv -std getsockname .Sh エラー 呼び出しは、次の場合を除いて正常に完了します: .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ECONNRESET 接続が通信相手によってリセットされました。 .It Bq Er ENOTSOCK 引数 .Fa s はソケットではなくファイルです。 .It Bq Er ENOBUFS 操作を実行するためにシステム内で利用できるリソースが不足しています。 .It Bq Er EFAULT .Fa name 引数が、プロセスアドレス空間の有効な部分内でないメモリを 指しています。 .El .Sh 関連項目 .Xr bind 2 , .Xr getpeername 2 , .Xr socket 2 .Sh バグ UNIX ドメイン内のソケットにバインドされた名前にはアクセスできません。 この場合 .Fn getsockname は、長さが 0 の名前を返します。 .Sh 歴史 .Fn getsockname システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getsockopt.2 b/ja_JP.eucJP/man/man2/getsockopt.2 index 50a60b935d..fef7d4aa03 100644 --- a/ja_JP.eucJP/man/man2/getsockopt.2 +++ b/ja_JP.eucJP/man/man2/getsockopt.2 @@ -1,400 +1,400 @@ .\" Copyright (c) 1983, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95 -.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.29 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.30 2003/12/24 18:52:41 alfred Exp % .\" .\" $FreeBSD$ .Dd May 2, 1995 .Dt GETSOCKOPT 2 .Os .Sh 名称 .Nm getsockopt , .Nm setsockopt .Nd ソケットのオプションの取得と設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int -.Fn getsockopt "int s" "int level" "int optname" "void *optval" "socklen_t *optlen" +.Fn getsockopt "int s" "int level" "int optname" "void * restrict optval" "socklen_t * restrict optlen" .Ft int .Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen" .Sh 解説 .Fn getsockopt と .Fn setsockopt システムコールは、ソケットに対応する .Em オプション を操作します。 オプションは複数のプロトコルレベルに存在する可能性があります。 これらは必ず最上位の .Dq ソケット レベルに存在します。 .Pp ソケットオプションを操作する際は、オプションが常駐するレベル およびオプションの名前を指定する必要があります。 ソケットレベルでオプションを操作するには .Fa level を .Dv SOL_SOCKET として指定します。 他のレベルでオプションを操作するには、 オプションを制御している適切なプロトコルのプロトコル番号を指定します。 例えば、オプションが .Tn TCP プロトコルによって解釈されることを指示するには、 .Fa level を .Tn TCP のプロトコル番号に設定する必要があります。 .Xr getprotoent 3 を参照してください。 .Pp .Fa optval と .Fa optlen 引数は、 .Fn setsockopt がオプション値にアクセスするために使用されます。 .Fn getsockopt の場合、これらは要求されたオプションの値が返される バッファを識別します。 .Fn getsockopt の場合、 .Fa optlen は値と結果の引数であり、初期には .Fa optval の指すバッファのサイズが入っており、戻り時に修正されて 返された値の実際のサイズを示すようになります。 オプション値を指定しないか、またはオプション値が返されない場合、 .Fa optval に NULL を指定してもかまいません。 .Pp .Fa optname 引数および指定のオプションは、解釈されずに、 解釈用の該当プロトコルモジュールに渡されます。 インクルードファイル .In sys/socket.h には後述するソケットレベルオプション用の定義が入っています。 他のプロトコルレベルのオプションは形式と名称がさまざまです。 マニュアルのセクション 4 の該当するエントリを参照してください。 .Pp ほとんどのソケットレベルのオプションは .Fa optval 用に .Vt int 引数を使用します。 .Fn setsockopt の場合、ブール演算を有効にするためには引数は 0 でない必要があり、 オプションを無効にする場合は 0 である必要があります。 .Dv SO_LINGER は、 .In sys/socket.h で定義された .Vt "struct linger" 引数を使用します。 これは、目的の状態のオプションとリンガ間隔 (後述) を指定します。 .Dv SO_SNDTIMEO と .Dv SO_RCVTIMEO は、 .In sys/time.h で定義された .Vt "struct timeval" 引数を使用します。 .Pp 以降のオプションがソケットレベルで認識されます。 別記した場合を除いて、各オプションが .Fn getsockopt で調べられ、 .Fn setsockopt で設定されます。 .Bl -column SO_ACCEPTFILTER -offset indent .It Dv SO_DEBUG Ta "デバッグ情報の記録を有効にします" .It Dv SO_REUSEADDR Ta "ローカルアドレスの再使用を有効にします" .It Dv SO_REUSEPORT Ta "重複したアドレスとポートのバインドを有効にします" .It Dv SO_KEEPALIVE Ta "接続を保持することを有効にします" .It Dv SO_DONTROUTE Ta "発信メッセージについて経路設定バイパスを有効にします" .It Dv SO_LINGER Ta "データが存在する場合はクローズで遅延します" .It Dv SO_BROADCAST Ta "ブロードキャストメッセージを送信するパーミッションを有効にします" .It Dv SO_OOBINLINE Ta "バンド内でのバンド外データの受信を有効にします" .It Dv SO_SNDBUF Ta "出力用のバッファサイズを設定します" .It Dv SO_RCVBUF Ta "入力用のバッファサイズを設定します" .It Dv SO_SNDLOWAT Ta "出力用の最小カウントを設定します" .It Dv SO_RCVLOWAT Ta "入力用の最小カウントを設定します" .It Dv SO_SNDTIMEO Ta "出力についてのタイムアウト値を設定します" .It Dv SO_RCVTIMEO Ta "入力についてのタイムアウト値を設定します" .It Dv SO_ACCEPTFILTER Ta "待ち受けソケットでの accept フィルタを設定します" .It Dv SO_TYPE Ta "ソケットのタイプを取得します (取得のみ)" .It Dv SO_ERROR Ta "ソケットのエラーを取得してクリアします (取得のみ)" .El .Pp .Dv SO_DEBUG は下層のプロトコルモジュール内でデバッグを有効にします。 .Dv SO_REUSEADDR は、 .Xr bind 2 システムコールで指定されたアドレスを検証するのに使用する規則で、 ローカルアドレスの再利用が可能であることを示します。 .Dv SO_REUSEPORT は、ポートをバインドする前の複数のプロセスがすべて .Dv SO_REUSEPORT を設定している場合に、 複数のプロセスによる完全に重複したバインドが可能になるようにします。 このオプションは、プログラムの複数のインスタンスそれぞれが、 バインドされたポートを宛先とする UDP/IP マルチキャストまたは ブロードキャストのデータグラムを受信できるようにします。 .Dv SO_KEEPALIVE は接続されたソケット上でメッセージの周期的な送信を有効にします。 接続された一方がこれらのメッセージに応答できない場合は 接続が破壊されていると考えられ、ソケットを使用しているプロセスは データを送信しようとするときに .Dv SIGPIPE シグナルによって通知を受けます。 .Dv SO_DONTROUTE は発信メッセージが標準の経路設定機能をバイパスする必要があることを示します。 代わりに、メッセージは、宛先アドレスのネットワーク部分に従って 該当するネットワークインタフェースに転送されます。 .Pp .Dv SO_LINGER は送信されていないメッセージがソケットの待ち行列にあり、しかも .Xr close 2 が実行される時に行われる処置を制御します。 ソケットがデータの信頼できる配信を確約し、しかも .Dv SO_LINGER が設定されている場合、 データを送信できるまで または情報を配信できない (リンガ間隔と呼ばれるタイムアウト時間は、 .Dv SO_LINGER が要求されるときに .Fn setsockopt システムコール内で秒単位で指定されます) と判定するまで、システムはプロセスを .Xr close 2 上でブロックします。 .Dv SO_LINGER が無効の状態で .Xr close 2 が起動されると、システムは、プロセスが可能な限り迅速に処理を 継続できる方法でクローズ処理を行います。 .Pp オプション .Dv SO_BROADCAST は、ソケット上でブロードキャストデータグラムを送信するパーミッションを 要求します。 ブロードキャストは、システムの初期バージョンでは特権操作でした。 バンド外のデータをサポートするプロトコルで、 .Dv SO_OOBINLINE オプションは、バンド外のデータが受信された順番で通常の データ入力待ち行列に配置されることを要求します。 そして、これは .Dv MSG_OOB フラグなしに .Xr recv 2 呼び出しまたは .Xr read 2 呼び出しでアクセスできます。 常に このオプションが設定されているかのように動作する プロトコルもあります。 .Dv SO_SNDBUF と .Dv SO_RCVBUF は、それぞれ、出力および入力用に割り当てられる通常のバッファサイズを 調整するオプションです。 バッファのサイズは、高ボリューム接続のために増加することができますし、 着信データの可能なバックログを 制限するために減少させることもできます。 システムはこれらの値について 1 つの絶対最大値を設定します。 この最大値は .Xr sysctl 3 MIB 変数 .Dq Li kern.ipc.maxsockbuf によってアクセスできます。 .Pp .Dv SO_SNDLOWAT は出力操作に最小カウントを設定するオプションです。 ほとんどの出力操作は、送信用のプロトコルにデータを配信し、 フロー制御のためにブロックしながら呼び出しによって与えられた すべてのデータを処理します。 ノンブロッキング出力操作は、ブロックなしのフロー制御に従って 許容される限界までデータを処理しますが、フロー制御が 最低基準値または要求全体のいずれか小さい方を処理することを許容しない 場合はデータを処理しません。 ソケットへの書込み能力を試験する .Xr select 2 操作が真で返るのは、最低基準値を処理できる場合だけです。 .Dv SO_SNDLOWAT のデフォルト値はネットワーク効率性のために 適切なサイズ (多くの場合は 1024) に設定されます。 .Dv SO_RCVLOWAT は入力操作の最小カウントを設定するオプションです。 一般に、受信呼び出しは、いくらかの (0 でない) データが 受信されるまでブロックしてから、利用できる量または 要求された量のいずれか少ない方とともに戻ります。 .Dv SO_RCVLOWAT のデフォルト値は 1 です。 .Dv SO_RCVLOWAT にもっと大きな値が設定されている場合、 受信呼び出しのブロックは通常、最低基準値または 要求された量のいずれか小さい方が受信されるまで待機します。 受信呼び出しは、エラーが発生したり、シグナルが捕らえられたり、 または受信待ち行列内の次のデータのタイプが返されたものと異なる場合は、 最低基準値より小さい値でも戻ることがあります。 .Pp .Dv SO_SNDTIMEO は出力操作についてタイムアウト値を設定するオプションです。 これは、出力操作完了の待機を制限するために使用される秒数、 マイクロ秒数を .Vt "struct timeval" 引数で指定します。 送信操作が指定された時間以上ブロックされた場合、部分的なカウントで戻るか、 またはデータが送信されていない場合はエラー .Er EWOULDBLOCK で戻ります。 現在の実装では、このタイマは追加の各データがプロトコルに 配信されるたびに再起動され、これはサイズが出力用の最低基準値から 最高基準値の範囲に至る出力部分に適用されることを意味します。 .Dv SO_RCVTIMEO は入力操作についてタイムアウト値を設定するオプションです。 これは入力操作完了の待機を制限するために使用される秒数、マイクロ秒数を .Vt "struct timeval" 引数で指定します。 現在の実装では、このタイマは追加のデータがプロトコルによって 受信されるたびに再起動されるので、 制限は実際には休止期間のタイマとなります。 追加のデータを受信することなく受信操作がこれだけの時間について ブロックされた場合、短いカウントで戻るか、 またはデータが受信されていない場合はエラー .Er EWOULDBLOCK で戻ります。 .Pp .Dv SO_ACCEPTFILTER は、ソケット上に .Xr accept_filter 9 を置きます。 これにより、待ち受けしているストリームソケットに入ってくる接続が .Xr accept 2 に渡される前にフィルタされることになります。 念のため繰り返します。 フィルタをソケット上にインストールする前に、ソケットに対して .Xr listen 2 呼び出す必要があります。 そうしないと .Fn setsockopt システムコールが失敗します。 .Bd -literal struct accept_filter_arg { char af_name[16]; char af_arg[256-16]; }; .Ed .Pp .Fa optval 引数は .Fa struct accept_filter_arg を指さなくてはなりません。 この構造体が .Xr accept_filter 9 を選択、設定します。 .Fa af_name 引数は、アプリケーションが待ち受けソケット上に置きたいと思っている accept フィルタの名前で埋めなくてはなりません。 オプションの引数 .Fa af_arg は、 .Fa af_name で指定された accept フィルタに渡すことができるものです。 これにより、ソケットに置かれる時にさらなる設定オプションを 提供します。 NULL を .Fa optval 中で渡すと、フィルタが削除されます。 .Pp 最後に、 .Dv SO_TYPE と .Dv SO_ERROR は .Fn getsockopt でだけ使用されるオプションです。 .Dv SO_TYPE では .Dv SOCK_STREAM のようなソケットのタイプが返ります。 これはスタートアップ時にソケットを継承するようなサーバに便利です。 .Dv SO_ERROR はソケット上で延期中のエラーを返し、エラー状態をクリアします。 これは接続されたデータグラムソケット上の非同期的エラーをチェックしたり、 その他の非同期エラーをチェックするのに使用できます。 .Sh 戻り値 .Rv -std .Sh エラー 呼び出しは次の場合を除いて正常です: .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ENOTSOCK 引数 .Fa s がソケットではなくファイルです。 .It Bq Er ENOPROTOOPT 指示されたレベルでオプションは存在しません。 .It Bq Er EFAULT .Fa optval が指すアドレスがプロセスアドレス空間の有効な部分にありません。 .Fn getsockopt では、 .Fa optlen がプロセスアドレス空間の有効な部分でない場合も、 このエラーが返される可能性があります。 .It Bq Er EINVAL 待ち受けていないソケットに対して .Xr accept_filter 9 のインストールを試みました。 .El .Sh 関連項目 .Xr ioctl 2 , .Xr socket 2 , .Xr getprotoent 3 , .Xr sysctl 3 , .Xr protocols 5 , .Xr sysctl 8 , .Xr accept_filter 9 .Sh バグ ソケットオプションのいくつかはシステムの低いレベルで処理される必要があります。 .Sh 歴史 .Fn getsockopt システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/gettimeofday.2 b/ja_JP.eucJP/man/man2/gettimeofday.2 index 8254d8588a..b418b098a5 100644 --- a/ja_JP.eucJP/man/man2/gettimeofday.2 +++ b/ja_JP.eucJP/man/man2/gettimeofday.2 @@ -1,131 +1,132 @@ .\" Copyright (c) 1980, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)gettimeofday.2 8.2 (Berkeley) 5/26/95 -.\" %FreeBSD: src/lib/libc/sys/gettimeofday.2,v 1.23 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/gettimeofday.2,v 1.24 2004/01/19 12:41:39 phk Exp % .\" .\" $FreeBSD$ .Dd May 26, 1995 .Dt GETTIMEOFDAY 2 .Os .Sh 名称 .Nm gettimeofday , .Nm settimeofday .Nd 日付と時刻の取得 / 設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/time.h .Ft int .Fn gettimeofday "struct timeval *tp" "struct timezone *tzp" .Ft int .Fn settimeofday "const struct timeval *tp" "const struct timezone *tzp" .Sh 解説 .Bf -symbolic 注記: timezone はもはや使用されません。 この情報はカーネルの外側に保持されます。 .Ef .Pp システムが保持している現在のグリニッジ時刻と現在の時間帯は .Fn gettimeofday システムコールから得られ、 .Fn settimeofday システムコールで設定されます。 時刻は 1970 年 1 月 1 日の深夜 (0 時) からの秒数とマイクロ秒数で表現されます。 システムクロックの分解能はハードウェアで決まり、 時刻は継続的または .Dq チック 単位で更新されます。 .Fa tp または .Fa tzp が NULL の場合、対応する時刻情報は返されず、また設定されません。 .Pp .Fa tp と .Fa tzp の指す構造体は .In sys/time.h 内に次のように定義されています: .Pp .Bd -literal struct timeval { long tv_sec; /* 1970 年 1 月 1 日からの秒数 */ long tv_usec; /* およびマイクロ秒数 */ }; struct timezone { int tz_minuteswest; /* グリニッジから西方向への偏差 */ int tz_dsttime; /* 夏時間補正のタイプ */ }; .Ed .Pp .Vt timezone 構造体は、ローカル時間帯 (グリニッジから西向きに分単位で測定) と フラグを含みます。 フラグが 0 でない場合は、1 年の適切な時期に 夏時間がその地域に適用されることを示します。 .Pp スーパユーザだけが時刻または時間帯を設定できます。 システムが securelevel >= 2 .Pf ( Xr init 8 を参照) で実行される場合は、 最大 1 秒のみ時刻を進めるか遅らせることしかできません。 この制限が課されるのは、悪意のあるスーパユーザがファイルに任意の タイムスタンプを設定するのを防止するためです。 システム時刻は、システムが安全モードにあっても .Xr adjtime 2 システムコールを使用して制限なしに後方に調整できます。 .Sh 戻り値 .Rv -std .Sh エラー 次のエラーコードが .Va errno に設定されます: .Bl -tag -width Er .It Bq Er EFAULT 引数アドレスが無効なメモリを参照しました。 .It Bq Er EPERM スーパユーザ以外のユーザが時刻を設定しようとしました。 .El .Sh 関連項目 .Xr date 1 , .Xr adjtime 2 , +.Xr clock_gettime 2 , .Xr ctime 3 , .Xr timeradd 3 , .Xr clocks 7 , .Xr timed 8 .Sh 歴史 .Fn gettimeofday システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/ktrace.2 b/ja_JP.eucJP/man/man2/ktrace.2 index 99b2abf44b..1b0b0a95d8 100644 --- a/ja_JP.eucJP/man/man2/ktrace.2 +++ b/ja_JP.eucJP/man/man2/ktrace.2 @@ -1,186 +1,194 @@ .\" Copyright (c) 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)ktrace.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/ktrace.2,v 1.23 2003/11/11 04:59:25 jkoshy Exp % +.\" %FreeBSD: src/lib/libc/sys/ktrace.2,v 1.24 2003/12/14 14:54:53 jkoshy Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt KTRACE 2 .Os .Sh 名称 .Nm ktrace .Nd プロセスのトレース .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/time.h .In sys/uio.h .In sys/ktrace.h .Ft int .Fn ktrace "const char *tracefile" "int ops" "int trpoints" "int pid" .Sh 解説 .Fn ktrace システムコールは、1 つまたは複数のプロセスのトレースを有効または無効にします。 ユーザは自分のプロセスだけをトレースできます。 スーパユーザだけが、setuid プログラムまたは setgid プログラムをトレースできます。 .Pp .Fa tracefile 引数は、トレースに使用するファイルのパス名を指定します。 ファイルは存在していなければならず、 呼び出し側プロセスによって書込み可能な通常ファイルである必要があります。 トレースレコードはすべてファイルの末尾に追加されるので、 直前のトレースデータを切り捨てるためにはファイルの長さを 0 にする必要が あります。 トレース点が無効な場合 (後述の KTROP_CLEAR を参照)、 .Fa tracefile は NULL にできます。 .Pp .Fa ops 引数は要求された ktrace 操作を指定します。 定義されている操作は次のとおりです: .Bl -column KTRFLAG_DESCENDXXX -offset indent .It "KTROP_SET " .Fa trpoints で指定されたトレース点を有効にします。 .It "KTROP_CLEAR " .Fa trpoints で指定されたトレース点を無効にします。 .It "KTROP_CLEARFILE すべてのトレースを停止します。" .It "KTRFLAG_DESCEND トレースの変更が、指定のプロセスとその現在の" すべての子プロセスに適用されます。 .El .Pp .Fa trpoints 引数は関心のあるトレース点を指定します。 定義されているトレース点は次のとおりです: .Bl -column KTRFAC_SYSCALLXXX -offset indent .It "KTRFAC_SYSCALL システムコールをトレースします。" .It "KTRFAC_SYSRET システムコールからの戻り値をトレースします。" .It "KTRFAC_NAMEI パス名の探索操作をトレースします。" .It "KTRFAC_GENIO すべての入出力をトレースします" (このオプションが大量の出力を生成する可能性があることに注意してください)。 .It "KTRFAC_PSIG ポストされたシグナルをトレースします。" .It "KTRFAC_CSW コンテキストスイッチをトレースします。" .It "KTRFAC_INHERIT これ以降の子にトレースを継承します。" .El .Pp 各トレースイベントは、汎用のヘッダの後に トレース点に固有の構成要素が続く形式のレコードを出力します。 汎用のヘッダは次のとおりです: .Bd -literal struct ktr_header { int ktr_len; /* バッファの長さ */ short ktr_type; /* トレースレコードのタイプ */ pid_t ktr_pid; /* プロセス ID */ char ktr_comm[MAXCOMLEN+1]; /* コマンド名 */ struct timeval ktr_time; /* タイムスタンプ */ caddr_t ktr_buf; }; .Ed .Pp .Va ktr_len フィールドはこのヘッダに続く .Va ktr_type データの長さを示します。 .Va ktr_pid フィールドと .Va ktr_comm フィールドは、レコードを生成したプロセスとコマンドを示します。 .Va ktr_time フィールドは、 レコードが生成された時刻を (マイクロ秒単位で) 示します。 .Va ktr_buf は、内部カーネルポインタであって有用ではありません。 .Pp 汎用ヘッダには .Va ktr_len バイトの長さの .Va ktr_type レコードが続きます。 タイプに固有のレコードは .In sys/ktrace.h インクルードファイル内で定義されています。 .Sh SYSCTL チューナブル 次の .Xr sysctl 8 チューナブルが .Fn ktrace の動作に影響します: .Bl -tag -width indent .It Va kern.ktrace.geniosize トレースされた I/O 要求がトレースファイルに記録するデータ量を制限します。 .It Va kern.ktrace.request_pool 一度に記録するトレースイベント数を制限します。 .El +.Pp +プロセスをデバッグできるかを制御する sysctl チューナブル +.Xr ( p_candebug 9 +によって決められている) もまた +.Fn ktrace +の操作に影響します。 .Sh 戻り値 .Rv -std ktrace .Sh エラー .Fn ktrace システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定のトレースファイルが存在しません。 .It Bq Er EACCES 前置パス名の構成要素について検索許可が拒否されています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .It Bq Er ENOSYS カーネルが .Nm サポートとともにコンパイルされていません。 .El .Pp 一時的な資源不足のために、 スレッドが 1 個以上のトレースイベントを記録できないことがあり得ます。 この状態はカーネルによって記憶され、次に成功するトレース要求において .Va ktr_type フィールドの .Li KTR_DROP フラグがセットされます。 .Sh 関連項目 .Xr kdump 1 , .Xr ktrace 1 , -.Xr utrace 2 +.Xr utrace 2 , +.Xr sysctl 8 , +.Xr p_candebug 9 .Sh 歴史 .Fn ktrace システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/poll.2 b/ja_JP.eucJP/man/man2/poll.2 index 897e21ce84..6ffad2a8b2 100644 --- a/ja_JP.eucJP/man/man2/poll.2 +++ b/ja_JP.eucJP/man/man2/poll.2 @@ -1,191 +1,192 @@ .\" %NetBSD: poll.2,v 1.3 1996/09/07 21:53:08 mycroft Exp % -.\" %FreeBSD: src/lib/libc/sys/poll.2,v 1.11 2003/09/08 19:57:16 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/poll.2,v 1.12 2004/01/26 15:19:54 eivind Exp % .\" .\" Copyright (c) 1996 Charles M. Hannum. 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. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Charles M. Hannum. .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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$ .Dd July 8, 2002 .Dt POLL 2 .Os .Sh 名称 .Nm poll .Nd 同期的な入出力の多重化 .Sh ライブラリ .Lb libc .Sh 書式 .In poll.h .Ft int .Fn poll "struct pollfd fds[]" "nfds_t nfds" "int timeout" .Sh 解説 .Fn poll システムコールはファイル記述子の集合を調査して、 それらのいずれかで入出力の準備ができているか否かを調べます。 .Fa fds 引数は .In poll.h で定義された pollfd 配列を指すポインタ (後述) です。 .Fa nfds 引数は .Fa fds 配列のサイズを決定します。 .Bd -literal struct pollfd { int fd; /* ファイル記述子 */ short events; /* 検索するイベント */ short revents; /* 返されたイベント */ }; .Ed .Pp .Fa pollfd 構造体のフィールドは次のとおりです: .Bl -tag -width XXXrevents .It fd 調査するファイル記述子。 もし fd が -1 なら .Fa revents はクリアされ (0 に設定)、pollfd はチェックされません。 .It events 調査するイベント (後述)。 .It revents 発生したイベント (後述)。 .El .Pp .Fa events と .Fa revents 内のビットマスクには次のビットがあります: .Bl -tag -width XXXPOLLWRNORM .It POLLIN 高優先データ以外のデータはブロックせずに読取りできます。 .It POLLRDNORM 通常データはブロックせずに読取りできます。 .It POLLRDBAND 優先順位が 0 でないデータはブロックせずに読取りできます。 .It POLLPRI 高優先データはブロックせずに読取りできます。 .It POLLOUT .It POLLWRNORM 通常データはブロックせずに書き込めます。 .It POLLWRBAND 優先順位が 0 でないデータはブロックせずに書き込めます。 .It POLLERR デバイスまたはソケット上に例外状態が起きました。 このフラグは、 .Fa events ビットマスクに存在していなくても必ずチェックされます。 .It POLLHUP デバイスまたはソケットが切断されています。 このフラグは、 .Fa events ビットマスク内に存在しなくても必ずチェックされます。 POLLHUP と POLLOUT は、 .Fa revents ビットマスク内に同時に存在することが決してないことに注意してください。 .It POLLNVAL ファイル記述子がオープンされていません。 このフラグは、 .Fa events ビットマスク内に存在しなくても必ずチェックされます。 .El .Pp .Fa timeout が 0 でも INFTIM (-1) でもない場合、この値はいずれかのファイル記述子が 準備完了になるのを待機する最大間隔 (ミリ秒単位) です。 .Fa timeout が INFTIM (-1) の場合、 .Fn poll は無期限にブロックします。 .Fa timeout が 0 の場合 .Fn poll はブロックせずに戻ります。 .Sh 戻り値 .Fn poll システムコールは入出力の準備が完了した記述子の番号を返します。 エラーが起きた場合は -1 を返します。 時間切れになると .Fn poll は 0 を返します。 システムコールが割り込まれたことによるエラーも含めて .Fn poll がエラーで戻った場合、 .Fa fds 配列は変更されません。 .Sh 互換性 この実装は、ファイル記述子によって .Fn poll がエラーにならないという点で、過去のものと異なっています。 過去の実装においてエラーになるであろう場合 (たとえば .Xr revoke 2 された記述子を検査しようとした場合)、この実装は代わりに .Fa events ビットマスクを .Fa revents ビットマスクにコピーします。 この記述子上で入出力を実行しようとするとエラーが返されます。 この動作はより便利であると考えられています。 .Sh エラー .Fn poll は次のエラーで戻ります: .Bl -tag -width Er .It Bq Er EFAULT .Fa fds 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINTR 時間切れになる前に、そして選択されたイベントが発生する前に シグナルを受信しました。 .It Bq Er EINVAL 時間制限として負の値が指定されました。 .El .Sh 関連項目 .Xr accept 2 , .Xr connect 2 , +.Xr kqueue 2 , .Xr read 2 , .Xr recv 2 , .Xr select 2 , .Xr send 2 , .Xr write 2 .Sh バグ .Fa events ビットマスクと .Fa revents ビットマスクのいくつかのフィールド間の違いは、 STREAMS 以外では実用的ではありません。 それらのフィールドは、既存のソフトウェアとの互換性を 保つために定義されています。 .Sh 歴史 .Fn poll 関数は .At V で登場しました。 このマニュアルページと実装の主要な部分は .Nx から得たものです。 diff --git a/ja_JP.eucJP/man/man2/ptrace.2 b/ja_JP.eucJP/man/man2/ptrace.2 index 57922135d7..a73d54c7e9 100644 --- a/ja_JP.eucJP/man/man2/ptrace.2 +++ b/ja_JP.eucJP/man/man2/ptrace.2 @@ -1,321 +1,348 @@ -.\" %FreeBSD: src/lib/libc/sys/ptrace.2,v 1.33 2003/09/08 19:57:16 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/ptrace.2,v 1.34 2004/01/10 17:41:04 rwatson Exp % .\" %NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. .\" $FreeBSD$ .Dd August 11, 2003 .Dt PTRACE 2 .Os .Sh 名称 .Nm ptrace .Nd プロセスのトレースとデバッグ .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/ptrace.h .Ft int .Fn ptrace "int request" "pid_t pid" "caddr_t addr" "int data" .Sh 解説 .Fn ptrace システムコールはトレースとデバッグの機能を提供します。 これによって 1 つのプロセス .\".Em tracing (トレースするプロセス) が他のプロセス .\".Em traced (トレースされるプロセス) を制御できます。 +トレースするプロセスは、最初にトレースされるプロセスにアタッチ +しなければなりません。 +それから、そのプロセスの実行を制御するために +.Fn ptrace +システムコールを発行します。 +プロセスのメモリおよびレジスタ状態へのアクセスも同様です。 +トレースするセッションの期間中、トレースされるプロセスは +その親プロセス ID が (その結果の挙動として) トレースするプロセスに +"親を変更" されます。 +トレースするプロセスが同時に 1 つ以上のプロセスをアタッチすることは、 +許可されます。 +トレースするプロセスがその作業を完了したときには、そのトレースされる +プロセスをデタッチしなければなりません。 +トレースするプロセスが最初にアタッチされている全てのプロセスをデタッチ +せずに exit した場合には、それらのプロセスは kill されます。 +.Pp ほとんどの場合、トレースされるプロセスは正常に実行されます。 ただし、トレースされるプロセスはシグナル .Xr ( sigaction 2 を参照) を受信すると停止します。 トレースするプロセスは、 .Xr wait 2 または .Dv SIGCHLD シグナルによってこれを検知し、停止されたプロセスの状態を調査して、 それを終了させるか、または適切な形で実行を継続させます。 +そのシグナルは、トレースされるプロセスの動作の結果として生成されたか、 +.Xr kill 2 +システムコールの使用による、通常のプロセスのシグナルかもしれません。 +もしくは、アタッチ、システムコール、 +またはトレースするプロセスによるステップの結果、 +トレースする仕組みによって生成されたものかもしれません。 +トレースしているプロセスは、そのシグナルを使用してプロセスの動作を観測する +ために +.Dv ( SIGTRAP +の様に) そのシグナルを横取りするか、もし適切であればそのシグナルを +そのプロセスに転送するかを、選択できます。 .Fn ptrace システムコールは、これらすべてを制御するメカニズムです。 .Pp .Fa request 引数は、どの操作を実行するかを指定します。 残りの引数の意味は操作によって異なります。 後述する 1 つの特殊なケースを除いて、 .Fn ptrace 呼び出しはすべてトレースするプロセスによって行われ、 .Fa pid 引数はトレースされるプロセスのプロセス ID を指定します。 .Fa request 引数は次のものにできます。 .Bl -tag -width 12n .It Dv PT_TRACE_ME この要求は、トレースされるプロセスが使用する唯一の要求です。 この要求は、プロセスがその親によってトレースされることを宣言します。 他の引数はすべて無視されます (親プロセスが子プロセスをトレースしない場合は、 かなり混乱した結果になります。 トレースされるプロセスが停止すると、このプロセスは、 .Fn ptrace によってしか実行を継続できません)。 プロセスがこの要求を使用し、 .Xr execve 2 またはそれに組み込まれているルーチン (たとえば、 .Xr execv 3 ) を呼び出した場合、 そのプロセスは新しいイメージの最初の命令を実行する前に停止します。 また、実行される実行可能モジュールの setuid または setgid ビットは無視されます。 .It Dv PT_READ_I , Dv PT_READ_D これらの要求は、トレースされるプロセスのアドレス空間から 1 つの .Vt int データを読み取ります。 従来、 .Fn ptrace は命令とデータについて区別されたアドレス空間のある マシンを許容していました。 これが 2 つの要求がある理由です。 概念的には、 .Dv PT_READ_I が命令空間から読み取り、 .Dv PT_READ_D がデータ空間から読み取ります。 現在の .Fx システムでは、これらの 2 つの要求は完全に同一です。 .Fa addr 引数が、読取りが行われる (トレースされるプロセスの仮想アドレス空間内の) アドレスを指定します。 このアドレスはどのような境界調整制約も満たす必要はありません。 読み取られた値は .Eo \& .Fn ptrace .Ec からの戻り値として返されます。 .It Dv PT_WRITE_I , Dv PT_WRITE_D これらの要求は .Dv PT_READ_I および .Dv PT_READ_D と同様ですが、読み取るのではなく書き込むところが異なります。 .Fa data 引数で書き込まれる値を指定します。 .It Dv PT_IO この要求によって、トレースされるプロセスのアドレス空間内にある 任意量のデータの読取りと書込みが有効となります。 .Fa addr 引数は、以下のように定義される .Vt "struct ptrace_io_desc" へのポインタを指定します。 .Bd -literal struct ptrace_io_desc { int piod_op; /* I/O 操作 */ void *piod_offs; /* 子オフセット */ void *piod_addr; /* 親オフセット */ size_t piod_len; /* 要求の長さ */ }; /* * piod_op で指定される操作 */ #define PIOD_READ_D 1 /* データ空間からの読取り */ #define PIOD_WRITE_D 2 /* データ空間への書込み */ #define PIOD_READ_I 3 /* 命令空間からの読取り */ #define PIOD_WRITE_I 4 /* 命令空間への書込み */ .Ed .Pp .Fa data 引数は無視されます。 実際に読み書きされたバイト数は、上記の .Va piod_len に入れられ返されます。 .It Dv PT_CONTINUE トレースされるプロセスは実行を継続します。 .Fa addr 引数は、実行が再開される場所 (プログラムカウンタの新しい値)、 または実行が停止されたところで再開されることを示す .Po Vt caddr_t Pc Ns 1 を指定します。 .Fa data 引数には、トレースされるプロセスが実行を再開するときに受信するシグナル番号、 またはシグナルを送信しない場合には 0 を指定します。 .It Dv PT_STEP トレースされるプロセスは 1 命令ずつステップ実行されます。 .Fa addr 引数には .Po Vt caddr_t Pc Ns 1 を渡す必要があります。 .Fa data には実行の再開のために、トレースされたプロセスへ配信されるべきシグナルの数を 与えます。 または、送られるべきシグナルが無い場合には 0 を与えます。 .It Dv PT_KILL トレースされるプロセスは、あたかも .Dv SIGKILL を配信シグナルとして .Dv PT_CONTINUE が使用されたかのように、終了します。 .It Dv PT_ATTACH この要求は、他の無関係なプロセスの制御を取得し、 そのトレースを開始します。 トレースされるプロセスからの協力は必要としません。 このケースでは、 .Fa pid にトレースされるプロセスのプロセス ID を指定し、 他の 2 つの引数は無視されます。 この要求では、ターゲットプロセスがトレースする プロセスと同じ実 UID を持つこと、 それが setuid または setgid された実行可能モジュールでないことが 要求されます (トレースするプロセスが root として実行されている場合、 これらの制約は適用されません)。 トレースするプロセスは、新たにトレースされるプロセスを停止させ、 あたかも最初からずっとトレースしていたかのように制御できます。 .It Dv PT_DETACH この要求は PT_CONTINUE と類似していますが、実行を継続する別の場所を 指定できないこと、および要求が成功した後、 トレースされていたプロセスはもはやトレースされず、 通常どおり実行を継続することが異なります。 .It Dv PT_GETREGS この要求は、トレースされるプロセスのマシンレジスタを、 .Fa addr が指す .Do .Vt "struct reg" .Dc .Pf ( Aq Pa machine/reg.h 内に定義されています) 内に読み取ります。 .It Dv PT_SETREGS この要求は .Dv PT_GETREGS の逆です。 .Fa addr が指す .Do .Vt "struct reg" .Dc .In ( machine/reg.h 内に定義されています) からトレースされるプロセスのマシンレジスタをロードします。 .It Dv PT_GETFPREGS この要求はトレースされるプロセスの浮動小数点レジスタを .Fa addr が指す .Do .Vt "struct fpreg" .Dc .In ( machine/reg.h に定義されています) に読み取ります。 .It Dv PT_SETFPREGS この要求は .Dv PT_GETFPREGS の反対です。 .Fa addr が指す .Dq Li "struct fpreg" .In ( machine/reg.h 内に定義されています) からトレースされるプロセスの浮動小数点レジスタをロードします。 .It Dv PT_GETDBREGS この要求はトレースされるプロセスのデバッグレジスタを .Fa addr が指す .Do .Vt "struct dbreg" .Dc .In ( machine/reg.h 内に定義されています) に読み取ります。 .It Dv PT_SETDBREGS この要求は .Dv PT_GETDBREGS の反対です。 .Fa addr の指す .Do .Vt "struct dbreg" .Dc .In ( machine/reg.h 内に定義されています) からトレースされるプロセスのデバッグレジスタにロードします。 .El .Pp さらにマシン固有の要求が存在することがあります。 .Sh 戻り値 いくつかの要求で .Fn ptrace はエラー以外の場合にも \-1 を返します。 曖昧さをなくすためには、呼び出しの前に .Va errno を 0 に設定し、後でチェックします。 .Sh エラー .Fn ptrace システムコールは次の場合に処理に失敗します。 .Bl -tag -width Er .It Bq Er ESRCH .Bl -bullet -compact .It 指定されたプロセス ID を持つプロセスが存在しません。 .El .It Bq Er EINVAL .Bl -bullet -compact .It プロセスが自分自身に対して .Dv PT_ATTACH を使おうとしました。 .It .Fa request 引数が正しい要求の 1 つではありませんでした。 .It .Dv PT_CONTINUE へのシグナル番号 .Fa ( data ) が 0 でないか、または正しいシグナル番号ではありませんでした。 .It .Dv PT_GETREGS , .Dv PT_SETREGS , .Dv PT_GETFPREGS , .Dv PT_SETFPREGS , .Dv PT_GETDBREGS または .Dv PT_SETDBREGS が、有効なレジスタセットを設定せずに使用されました (これが真になるのは、通常、システムプロセスについてのみです)。 .El .It Bq Er EBUSY .Bl -bullet -compact .It .Dv PT_ATTACH が既にトレース中のプロセスについて使用されました。 .It 要求をしているプロセス以外のプロセスによって、トレースされるプロセスを 操作しようとする要求が試みられました。 .It 要求 .Dv ( PT_ATTACH 以外の) が停止されていないプロセスを指定しました。 .El .It Bq Er EPERM .Bl -bullet -compact .It 要求 .Dv ( PT_ATTACH 以外の) が、まったくトレースされていないプロセスを操作しようとしました。 .It 前述の .Dv PT_ATTACH で説明した条件を満たさないプロセスについて .Dv PT_ATTACH を使おうとしました。 .El .El .Sh 関連項目 .Xr execve 2 , .Xr sigaction 2 , .Xr wait 2 , .Xr execv 3 , .Xr i386_clr_watch 3 , .Xr i386_set_watch 3 .Sh 歴史 .Fn ptrace 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/read.2 b/ja_JP.eucJP/man/man2/read.2 index 3b8c5c98b3..2f8fc6aac4 100644 --- a/ja_JP.eucJP/man/man2/read.2 +++ b/ja_JP.eucJP/man/man2/read.2 @@ -1,222 +1,230 @@ .\" Copyright (c) 1980, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)read.2 8.4 (Berkeley) 2/26/94 -.\" %FreeBSD: src/lib/libc/sys/read.2,v 1.21 2003/09/02 16:50:17 dds Exp % +.\" %FreeBSD: src/lib/libc/sys/read.2,v 1.22 2004/01/25 06:24:08 ache Exp % .\" .\" $FreeBSD$ .Dd February 26, 1994 .Dt READ 2 .Os .Sh 名称 .Nm read , .Nm readv , .Nm pread .Nd 入力を読み取る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/uio.h .In unistd.h .Ft ssize_t .Fn read "int d" "void *buf" "size_t nbytes" .Ft ssize_t .Fn readv "int d" "const struct iovec *iov" "int iovcnt" .Ft ssize_t .Fn pread "int d" "void *buf" "size_t nbytes" "off_t offset" .Sh 解説 .Fn read システムコールは、記述子 .Fa d で参照されたオブジェクトから .Fa buf が指すバッファへ .Fa nbytes のデータを読み取ろうとします。 .Fn readv システムコールは同様の処理を実行しますが、配列 .Fa iov : iov[0], iov[1], ..., iov[iovcnt\|\-\|1] のメンバで指定される .Fa iovcnt 個のバッファに入力データを分散させます。 .Fn pread システムコールは同様の機能を実行しますが、 ファイル内の指定の位置から読み取った後、 ファイルポインタを変更しません。 .Pp .Fn readv に対する .Fa iovec 構造体は次のように定義されます: .Pp .Bd -literal -offset indent -compact struct iovec { void *iov_base; /* ベースアドレス */ size_t iov_len; /* 長さ */ }; .Ed .Pp .Fa iovec の各エントリは、データを配置するべきメモリ領域のベースアドレスと 長さを指定しています。 .Fn readv システムコールは、次のエントリに進む前に必ず領域を完全に満たします。 .Pp シーク可能なオブジェクト上では .Fn read は .Fa d に結び付けられたポインタが指定する位置から開始します .Pf ( Xr lseek 2 を参照)。 .Fn read からの戻り時に、ポインタは実際に読み取られたバイト数だけ増加させられます。 .Pp シークできないオブジェクトは必ず現在の位置から読み取られます。 そのようなオブジェクトに結び付けられたポインタの値は未定義です。 .Pp 処理が成功すると、 .Fn read , .Fn readv および .Fn pread は、実際に読み取られバッファ内に配置されたバイト数を返します。 記述子が通常ファイルを参照しており、 ファイルの終端までに十分な量のバイトがあれば、 システムは要求されたバイト数を読み取ることを保証しますが、 他のケースではそうではありません。 .Sh 戻り値 正常に完了すると、実際に読み取られたバイト数が返されます。 ファイル終了 (EOF) が読み取られると 0 が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn read , .Fn readv および .Fn pread システムコールは次の場合を除いて正常に完了します: .Bl -tag -width Er .It Bq Er EBADF .Fa d 引数は読取り用にオープンされた有効なファイルまたは ソケットの記述子ではありません。 .It Bq Er EFAULT .Fa buf 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムから読み取っている間に入出力エラーが発生しました。 .It Bq Er EINTR データが到着する前に、シグナルの配送により低速デバイスからの読取りが 割り込まれました。 .It Bq Er EINVAL .Fa d に結び付けられたポインタが負でした。 .It Bq Er EAGAIN ファイルは非ブロッキング入出力とマークされており、 読取りの準備ができたデータがありません。 .It Bq Er EISDIR ファイル記述子が、ディレクトリ上での普通の読み込み操作を許可していない ファイルシステム (例えば NFS) に属しているディレクトリに 関連付けられています。 .It Bq Er EOPNOTSUPP ファイル記述子が、普通の読み込み操作を許可していないファイルシステムおよび ファイルタイプに関連付けられています。 +.It Bq Er EOVERFLOW +ファイル記述子が普通のファイルに関連付けられていて、 +.Fa nbytes +が 0 よりも大きく、 +.Fa offset +がファイルの末尾の前にあり、かつ +.Fa offset +がこのファイルシステムに収まるオフセットの最大値以上です。 .El .Pp さらに、 .Fn readv は次のエラーのうちの 1 つを返すことがあります: .Bl -tag -width Er .It Bq Er EINVAL .Fa iovcnt 引数が 0 以下であるか、または 16 より大きくなっています。 .It Bq Er EINVAL .Fa iov 配列の中の .Fa iov_len 値の 1 つが負でした。 .It Bq Er EINVAL .Fa iov 配列の中の .Fa iov_len 値の合計が 32 ビット整数をオーバフローしました。 .It Bq Er EFAULT .Fa iov の一部が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp .Fn pread システムコールは次のエラーを返すこともあります: .Bl -tag -width Er .It Bq Er EINVAL 指定のファイルオフセットが有効ではありません。 .It Bq Er ESPIPE ファイル記述子がパイプ、ソケット、または FIFO に結び付けられています。 .El .Sh 関連項目 .Xr dup 2 , .Xr fcntl 2 , .Xr getdirentries 2 , .Xr open 2 , .Xr pipe 2 , .Xr select 2 , .Xr socket 2 , .Xr socketpair 2 , .Xr fread 3 , .Xr readdir 3 .Sh 規格 .Fn read システムコールは .St -p1003.1-90 に適合しています。 .Fn readv システムコールと .Fn pread システムコールは .St -xpg4.2 に適合しています。 .Sh 歴史 .Fn pread 関数は .At V.4 で登場しました。 .Fn readv システムコールは .Bx 4.2 で登場しました。 .Fn read 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/recv.2 b/ja_JP.eucJP/man/man2/recv.2 index 47041f2d1e..17dabe3355 100644 --- a/ja_JP.eucJP/man/man2/recv.2 +++ b/ja_JP.eucJP/man/man2/recv.2 @@ -1,290 +1,290 @@ .\" Copyright (c) 1983, 1990, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)recv.2 8.3 (Berkeley) 2/21/94 -.\" %FreeBSD: src/lib/libc/sys/recv.2,v 1.19 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/recv.2,v 1.20 2003/12/24 18:52:41 alfred Exp % .\" .\" $FreeBSD$ .Dd February 21, 1994 .Dt RECV 2 .Os .Sh 名称 .Nm recv , .Nm recvfrom , .Nm recvmsg .Nd ソケットからメッセージを受信する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft ssize_t .Fn recv "int s" "void *buf" "size_t len" "int flags" .Ft ssize_t -.Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr *from" "socklen_t *fromlen" +.Fn recvfrom "int s" "void * restrict buf" "size_t len" "int flags" "struct sockaddr * restrict from" "socklen_t * restrict fromlen" .Ft ssize_t .Fn recvmsg "int s" "struct msghdr *msg" "int flags" .Sh 解説 .Fn recvfrom と .Fn recvmsg システムコールは、ソケットからのメッセージを受信するのに使用されます。 ソケットが接続指向であるかどうかにかかわらず、ソケット上のデータを 受信するのに使用できます。 .Pp .Fa from が nil でなく、ソケットが接続指向でない場合、 ここにはメッセージのソースアドレスが保存されます。 .Fa fromlen 引数は値と結果の引数であり、 .Fa from に対応するバッファのサイズに初期化され、 戻り時には保存されたアドレスの実際のサイズを示すように変更されます。 .Pp .Fn recv システムコールは、通常 .Em 接続された ソケット上だけで使用され .Pf ( Xr connect 2 を参照)、 .Fa from 引数に nil を指定した .Fn recvfrom と同一です。 これは冗長なので、将来のリリースではサポートされない可能性があります。 .Pp これら 3 つのルーチンは正常に完了するとメッセージの長さを返します。 メッセージが長すぎて指定のバッファに収まらない場合、 メッセージを受信したソケットのタイプによっては 超過分のバイトが破棄されることがあります .Pf ( Xr socket 2 を参照)。 .Pp ソケットにメッセージが無い場合は、ソケットが非ブロッキング .Pf ( Xr fcntl 2 を参照) の場合を除き、呼び出しはメッセージが到着するのを待ちます。 ソケットが非ブロッキングの場合、値 -1 が返され、外部変数 .Va errno が .Er EAGAIN に設定されます。 通常、受信呼び出しは要求された量を受信するまで待たずに、 要求された量を上限として得られたデータを返します。 この動作は、 .Xr getsockopt 2 で解説されているソケットレベルのオプション .Dv SO_RCVLOWAT および .Dv SO_RCVTIMEO によって影響を受けます。 .Pp 次のデータがいつ到着するかを判定するには .Xr select 2 システムコールを使うことができます。 .Pp recv 関数への .Fa flags 引数は、次の値の 1 つまたは複数の論理和 .\".Em or Ap ing .Em ( or ) から成ります: .Bl -column MSG_WAITALL -offset indent .It Dv MSG_OOB Ta プロセス帯域外データ .It Dv MSG_PEEK Ta 着信メッセージの覗き見 (peek) .It Dv MSG_WAITALL Ta 要求の完全な実行、またはエラーを待つ .El .Pp .Dv MSG_OOB フラグは帯域外データの受信を要求し、 通常のデータストリームからは受信しません。 急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、 このフラグはそのようなプロトコルでは使用できません。 MSG_PEEK フラグは受信待ち行列の先頭からデータを除去することなく、 そのデータを返します。 したがって、後続の受信呼び出しは同じデータを返します。 MSG_WAITALL フラグは要求が完全に満たされるまでブロックするように要求します。 しかし、シグナルが捕捉された場合、エラーまたは切断が発生した場合、 または受信する次のデータが返されたタイプと異なる 場合、呼び出しは要求されたより少ないデータを返す可能性があります。 .Pp .Fn recvmsg システムコールは、直接に指定される引数の数を最小にするために .Fa msghdr 構造体を使用します。 この構造体は .In sys/socket.h で定義されているように、次の形式になっています: .Pp .Bd -literal struct msghdr { caddr_t msg_name; /* アドレス(オプション) */ u_int msg_namelen; /* アドレスのサイズ */ struct iovec *msg_iov; /* スキャッタ / ギャザー配列 */ u_int msg_iovlen; /* msg_iov の要素数 */ caddr_t msg_control; /* 補助データ、後述 */ u_int msg_controllen; /* 補助データのバッファ長 */ int msg_flags; /* 受信されたメッセージ上のフラグ */ }; .Ed .Pp ここで .Fa msg_name と .Fa msg_namelen は、ソケットが接続されていない場合に、宛先アドレスを指定します。 名前を要求しない場合や必要でない場合、 .Fa msg_name は NULL ポインタとして指定できます。 .Fa msg_iov と .Fa msg_iovlen 引数は .Xr read 2 で説明されているようにスキャッタ / ギャザーの場所を記述します。 .Fa msg_control 引数は、長さが .Fa msg_controllen の、他のプロトコル制御に関連するメッセージまたはその他の 各種補助データ用のバッファを指しています。 メッセージは次の形式です: .Bd -literal struct cmsghdr { u_int cmsg_len; /* データバイトカウント、hdr を含む */ int cmsg_level; /* メッセージを生成したプロトコル */ int cmsg_type; /* プロトコルに固有のタイプ */ /* u_char cmsg_data[]; が後に続く */ }; .Pp .Ed たとえば、これを使用して XNS/SPP において データストリームの変化を知ることができます。 また、ISO において .Fn accept システムコールの直後に、データバッファを伴わずに recvmsg を要求して、 ユーザ接続要求データを得ることができるでしょう。 .Pp オープンファイル記述子はこれで .Dv AF_UNIX ドメインソケット用の補助データとして引き渡され、その際、 .Fa cmsg_level が .Dv SOL_SOCKET に設定され、 .Fa cmsg_type が .Dv SCM_RIGHTS に設定されます。 .Pp .Dv SCM_CREDS の .Fa cmsg_type を使用して、プロセスの認証情報を .Dv AF_UNIX ドメインソケット用の補助データとして 渡すこともできます。 このケースでは、 .Fa cmsg_data は、構造体 .Fa cmsgcred である必要があります。 これは次のように .In sys/socket.h 内で定義されています: .Pp .Bd -literal struct cmsgcred { pid_t cmcred_pid; /* 送信プロセスの PID */ uid_t cmcred_uid; /* 送信プロセスの実 UID */ uid_t cmcred_euid; /* 送信プロセスの実効 UID */ gid_t cmcred_gid; /* 送信プロセスの実 GID */ short cmcred_ngroups; /* グループの数 */ gid_t cmcred_groups[CMGROUP_MAX]; /* グループ */ }; .Ed .Pp カーネルは送信プロセスの認証情報を記入し、それを受信側へ配信します。 .Pp .Fa msg_flags フィールドは受信済みメッセージに従って戻り時に設定されます。 .Dv MSG_EOR は end-of-record、つまり返されたデータでレコードが 完結していることを示します (一般には、タイプ .Dv SOCK_SEQPACKET のソケットとともに使用されます)。 .Dv MSG_TRUNC は、提供されたバッファよりデータグラムが大きかったので、 データグラムの後ろの部分が切り捨てられたことを示します。 .Dv MSG_CTRUNC は、補助データ用のバッファ内の空間の不足のためにいくらかの制御データが 切り捨てられたことを示します。 .Dv MSG_OOB は、急送または帯域外データが受信されたことを示します。 .Sh 戻り値 これらの呼び出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。 .Sh エラー 呼び出しは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ENOTCONN ソケットは接続指向プロトコルと結び付けられていますが、接続されていません .Pf ( Xr connect 2 と .Xr accept 2 を参照)。 .It Bq Er ENOTSOCK 引数 .Fa s はソケットを参照していません。 .It Bq Er EAGAIN ソケットが非ブロッキングとマークされているとき、 受信操作でブロックしました。 あるいは、受信タイムアウトが設定されていて、 データが受信される前にタイムアウトになりました。 .It Bq Er EINTR データが受信可能になる前に、受信がシグナルによって割込まれました。 .It Bq Er EFAULT 受信バッファポインタが、プロセスに割り当てられたアドレス空間の 範囲外を指しています。 .El .Sh 関連項目 .Xr fcntl 2 , .Xr getsockopt 2 , .Xr read 2 , .Xr select 2 , .Xr socket 2 .Sh 歴史 .Fn recv 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/select.2 b/ja_JP.eucJP/man/man2/select.2 index 96d82be1bd..4dd8e9e7ab 100644 --- a/ja_JP.eucJP/man/man2/select.2 +++ b/ja_JP.eucJP/man/man2/select.2 @@ -1,200 +1,209 @@ .\" Copyright (c) 1983, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)select.2 8.2 (Berkeley) 3/25/94 -.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.25 2003/09/08 19:57:16 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.27 2004/03/03 14:51:11 dds Exp % .\" .\" $FreeBSD$ .Dd November 17, 2002 .Dt SELECT 2 .Os .Sh 名称 .Nm select .Nd 同期的な入出力の多重化 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/select.h .Ft int .Fn select "int nfds" "fd_set *readfds" "fd_set *writefds" "fd_set *exceptfds" "struct timeval *timeout" .Fn FD_SET fd &fdset .Fn FD_CLR fd &fdset .Fn FD_ISSET fd &fdset .Fn FD_ZERO &fdset .Sh 解説 .Fn select システムコールは、 .Fa readfds , .Fa writefds および .Fa exceptfds でアドレスを渡された入出力記述子集合を調べ、 それらの記述子のいくつかがそれぞれ、読取り準備完了であるか、 書込み準備完了であるか、または保留されている例外条件があるかを調べます。 検出可能な唯一の例外条件は、ソケット上に受信した帯域外のデータです。 最初の .Fa nfds 個の記述子が各集合内でチェックされます。 すなわち、記述子集合中の 0 〜 .Fa nfds Ns No -1 の記述子が調べられます。 戻り時に .Fn select システムコールは指定の記述子集合を、要求された操作の準備ができている記述子で 構成される部分集合で置き換えます。 .Fn select は、すべての集合の中で準備ができた記述子の総数を返します。 .Pp 記述子の集合は、整数配列内のビットフィールドとして保存されます。 このような記述子集合を操作するために次のマクロが用意されています: .Fn FD_ZERO &fdset は記述子集合 .Fa fdset を空集合で初期化します。 .Fn FD_SET fd &fdset は特定の記述子 .Fa fd を .Fa fdset に含めます。 .Fn FD_CLR fd &fdset は .Fa fd を .Fa fdset から削除します。 .Fn FD_ISSET fd &fdset は .Fa fd が .Fa fdset のメンバである場合は非 0 の値を、そうでない場合は 0 を返します。 これらのマクロの動作は、記述子の値が 0 未満であるか、または .Dv FD_SETSIZE 以上である場合は未定義です。 .Dv FD_SETSIZE は通常、少なくとも、システムがサポートする記述子の最大数に等しくなります。 .Pp .Fa timeout が、NULL ポインタでない場合、それはセレクションの完了を 待つ最大間隔を指定します。 システムの活動性が、この間隔を不定時間延長することがあります。 .Pp .Fa timeout が NULL ポインタの場合、 .Fn select は無期限にブロックします。 .Pp ポーリングのためには、 .Fa timeout 引数は NULL でなく、値が 0 の timeval 構造体を指しているべきです。 .Pp .Fa readfds , .Fa writefds および .Fa exceptfds のどれについても、いずれの記述子も興味がない場合は NULL ポインタを指定できます。 .Sh 戻り値 .Fn select システムコールは記述子集合に含まれている準備のできた記述子の数を返し、 エラーが起きた場合は -1 を返します。 タイムリミットが来ると、 .Fn select は 0 を返します。 システムコールの割り込まれることによるものも含めて .Fn select がエラーで戻る場合は、記述子集合は変更されません。 .Sh エラー .Fn select から戻るエラーは次のことを示します: .Bl -tag -width Er .It Bq Er EBADF 記述子集合のどれかが無効な記述子を指定していました。 +.It Bq Er EFAULT +.Fa readfds , +.Fa writefds , +.Fa exceptfds +または +.Fa timeout +の引数の 1 つが無効なアドレスを指しています。 .It Bq Er EINTR タイムリミットが切れる前あるいは選択したイベントのいずれかが起きる前に、 シグナルが配送されました。 .It Bq Er EINVAL 指定のタイムリミットは無効です。 どれかが負であるか、または大きすぎます。 .It Bq Er EINVAL .Fa nfds 引数が無効でした。 .El .Sh 関連項目 .Xr accept 2 , .Xr connect 2 , .Xr getdtablesize 2 , .Xr gettimeofday 2 , +.Xr kqueue 2 , +.Xr poll 2 , .Xr read 2 , .Xr recv 2 , .Xr send 2 , .Xr write 2 , .Xr clocks 7 .Sh 注 .Dv FD_SETSIZE のデフォルトのサイズは現時点では 1024 です。 多数のオープンファイルを使用する可能性があるプログラムで .Fn select を実行するために、 .In sys/types.h を取り込むヘッダを含める前にプログラムで .Dv FD_SETSIZE を定義することで、このサイズを増加できます。 .Pp .Fa nfds がオープンファイルの数より大きい場合、 .Fn select が未使用のファイル記述子を調査することは保証されていません。 歴史的な理由で、 .Fn select は最初の 256 個の記述子を必ず調査します。 .Sh バグ .St -susv2 では、システムが元の timeout を適当に更新することを許しています。 したがって、タイムアウトの値が .Fn select システムコールによって変更されないと想定するのは賢明ではありません。 .Sh 規格 .Fn select システムコールおよび .Fn FD_CLR , .Fn FD_ISSET , .Fn FD_SET , .Fn FD_ZERO マクロは .St -p1003.1-2001 に適合します。 .Sh 歴史 .Fn select システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sendfile.2 b/ja_JP.eucJP/man/man2/sendfile.2 index 8c66453182..c97b5e866b 100644 --- a/ja_JP.eucJP/man/man2/sendfile.2 +++ b/ja_JP.eucJP/man/man2/sendfile.2 @@ -1,209 +1,228 @@ .\" Copyright (c) 2003, David G. Lawrence .\" 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 unmodified, 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. .\" .\" 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/lib/libc/sys/sendfile.2,v 1.19 2003/12/01 22:12:50 dg Exp % +.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.21 2004/02/08 07:38:35 silby Exp % .\" .\" $FreeBSD$ .Dd November 5, 1998 .Dt SENDFILE 2 .Os .Sh 名称 .Nm sendfile .Nd ファイルをソケットに送信 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .In sys/uio.h .Ft int .Fn sendfile "int fd" "int s" "off_t offset" "size_t nbytes" "struct sf_hdtr *hdtr" "off_t *sbytes" "int flags" .Sh 解説 .Fn sendfile システムコールは、記述子 .Fa fd によって指定された通常のファイルを、記述子 .Fa s によって指定されたストリームソケットから送信します。 .Pp .Fa offset 引数はファイルのどこから開始すべきかを指定します。 .Fa nbytes 引数は、ファイルの何バイトを送信する必要があるかを指定します。 0 は、ファイルの終わりまで送信するという特殊な意味を持ちます。 .Pp オプションのヘッダまたはトレーラ、またはその両方は、構造体 sf_hdtr を 指すポインタを指定することによってファイルの前と後で送信できます。 構造体 sf_hdtr の構造は次のとおりです: .Pp .Bd -literal -offset indent -compact struct sf_hdtr { struct iovec *headers; /* ヘッダ iovecs を指すポインタ */ int hdr_cnt; /* ヘッダ iovecs の数 */ struct iovec *trailers; /* トレーラ iovecs を指すポインタ */ int trl_cnt; /* トレーラ iovecs の数 */ }; .Ed .Pp .Fa headers ポインタと .Fa trailers ポインタは、NULL でない場合に構造体 iovec 構造の配列を指します。 iovec 構造体の詳細については、 .Fn writev システムコールを参照してください。 これらの配列内の iovecs の数は、 .Fa hdr_cnt と .Fa trl_cnt によって指定されます。 .Pp NULL でない場合に、システムは、ソケット上に送信された合計バイト数を、 .Fa sbytes によって指された変数に書き込みます。 .Pp .Fa flags -引数は現時点では未定義であり、0 に指定する必要があります。 +引数として利用できる値は 1 つです: +.Fa SF_NODISKIO 。 +このフラグは、ディスク入出力でブロックされるであろう +すべての sendfile 呼び出しに対して、代わりに EBUSY を返させます。 +ブロックされる転送要求を 1 つの分離された入出力ワーカスレッドにすることで、 +忙しいサーバには役に立つことがあります。 .Pp 非ブロッキング入出力用に指定されたソケットを使用するときに、 .Fn sendfile は要求されたよりも少ないバイトを送信することがあります。 この場合、正常に書き込まれたバイト数が .Fa *sbytes (指定されている場合) に返され、エラー .Er EAGAIN が返されます。 .Sh 実装に関する注 .Fn sendfile の .Fx での実装は「0 コピー」です。 すなわち、ファイルデータのコピーが回避されるように最適化されています。 .Sh チューニング 内部ではこのシステムコールは、クライアントへの送信ファイルデータを 取り扱うために、特別な .Xr sendfile 2 バッファ .Pq Vt "struct sf_buf" を使用しています。 送信ソケットがブロックされていて、 利用可能な送信ファイルバッファが十分でない場合には、 .Xr sendfile 2 はブロックされ、 .Dq Li sfbufa の状態を報告します。 送信ソケットがブロックされておらず、 利用可能な送信ファイルバッファが十分でない場合には、 この呼び出しはブロックされ、呼び出しを終了する前に必要なバッファが 利用可能になるのを待ちます。 .Pp .Vt sf_buf の割り当てられた数は、 .Xr sendfile 2 を介してクライアントにデータを送信するために使用される nmbclusters の数に、 比例しているべきです。 ブロッキングを避けるために適宜にチューンしましょう! .Xr sendfile 2 を広範囲に使用する忙しい装置が、 .Va kern.ipc.nmbclusters に展開されるこれらの値を増加させたくなるかもしれません (詳細は .Xr tuning 7 を参照してください)。 .Pp -使用中の +利用可能な .Xr sendfile 2 バッファの数は、 .Xr loader.conf 5 の中の .Va kern.ipc.nsfbufs 変数または .Dv NSFBUFS カーネルコンフィギュレーション調整のどちらかによって、ブート時に決定されます。 sendfile バッファの数は .Va kern.maxusers に合わせて調整されます。 +.Va kern.ipc.nsfbufsused +および +.Va kern.ipc.nsfbufspeak +の読み取り専用の sysctl 変数は現在とピークの +.Xr sendfile 2 +バッファの使用量をそれぞれ表します。 +これらの値は +.Nm netstat Fl m +を通しても見ることができます。 .Sh 戻り値 .Rv -std sendfile .Sh エラー .Bl -tag -width Er .It Bq Er EBADF .Fa fd 引数が有効なファイル記述子ではありません。 .It Bq Er EBADF .Fa s 引数が有効なソケット記述子ではありません。 +.It Bq Er EBUSY +完全な転送を完了するにはディスク入出力が必要となるため、中断されました。 +部分的なデータは送られたかもしれません。 +(このエラーは SF_NODISKIO が指定されたときのみ起こります) .It Bq Er ENOTSOCK .Fa s 引数がソケットではありません。 .It Bq Er EINVAL .Fa fd 引数が通常のファイルではありません。 .It Bq Er EINVAL .Fa s 引数が SOCK_STREAM 型のソケットではありません。 .It Bq Er EINVAL .Fa offset 引数が負であるか、または範囲外です。 .It Bq Er ENOTCONN .Fa s 引数が、未接続のソケットを指しています。 .It Bq Er EPIPE 通信相手が接続を閉じてしまいました。 .It Bq Er EIO .Fa fd から読取り中に入出力エラーが発生しました。 .It Bq Er EFAULT 引数について無効なアドレスが指定されました。 .It Bq Er EINTR sendfile が完了する前にシグナルが割り込みました。 .Fa *sbytes が指定された場合には、成功裏に送出されたバイト数がここに格納されます。 .It Bq Er EAGAIN ソケットは非ブロッキング入出力と指定されており、ソケットバッファが 満杯であるためにすべてのデータが送信されませんでした。 sbytes が指定された場合、送信が正常に完了したバイト数が .Fa *sbytes 内に返されます。 .El .Sh 関連項目 +.Xr netstat 1 , .Xr open 2 , .Xr send 2 , .Xr socket 2 , .Xr writev 2 , .Xr tuning 7 .Sh 歴史 .Fn sendfile システムコールは、 .Fx 3.0 ではじめて登場しました。 このマニュアルページは .Fx 3.1 ではじめて登場しました。 .Sh 作者 .Fn sendfile システムコールとこのマニュアルページは .An David G. Lawrence Aq dg@dglawrence.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/setpgid.2 b/ja_JP.eucJP/man/man2/setpgid.2 index 6711f448ed..61eb1c7728 100644 --- a/ja_JP.eucJP/man/man2/setpgid.2 +++ b/ja_JP.eucJP/man/man2/setpgid.2 @@ -1,89 +1,104 @@ .\" Copyright (c) 1980, 1991, 1993 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)setpgid.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/setpgid.2,v 1.13 2002/12/18 09:22:31 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/setpgid.2,v 1.14 2004/02/08 12:38:30 das Exp % .\" .\" $FreeBSD$ -.Dd June 4, 1993 +.Dd February 8, 2004 .Dt SETPGID 2 .Os .Sh 名称 .Nm setpgid , .Nm setpgrp .Nd プロセスグループを設定する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn setpgid "pid_t pid" "pid_t pgrp" .Ft int .Fn setpgrp "pid_t pid" "pid_t pgrp" .Sh 解説 .Fn setpgid システムコールは、指定されたプロセス .Fa pid のプロセスグループを指定された .Ar pgrp に設定します。 .Fa pid が 0 の場合、呼び出しは現在のプロセスに適用されます。 .Pp -呼び出し側がスーパユーザでない場合、影響を受けるプロセスは、 -呼び出し側と同じ実効ユーザ ID を持っているか、 -または呼び出し側プロセスの子孫である必要があります。 +影響されるプロセスが実行したプロセスでない場合には、 +それは実行したプロセスの子プロセスでなければならず、既に +.Xr exec 3 +操作を実行していてはならず、両方のプロセスが同じセッション中に +なければなりません。 +要求されたプロセスグループ ID は呼び出し側のセッション中に既に存在 +していなければならないか、または目的のプロセス ID と同一でなければなりません。 .Sh 戻り値 .Rv -std setpgid .Sh エラー .Fn setpgid システムコールは、次の場合に処理を失敗し、プロセスグループは変更されません: .Bl -tag -width Er +.It Bq Er EINVAL +要求されたプロセスグループ ID は正当ではありません。 .It Bq Er ESRCH 要求されたプロセスが存在しません。 +.It Bq Er ESRCH +目的のプロセスが、呼び出したプロセスでも、呼び出したプロセスの +子プロセスでもありません。 +.It Bq Er EACCES +要求されたプロセスが呼び出したプロセスの子プロセスですが、 +.Xr exec 3 +操作を既に行っています。 +.It Bq Er EPERM +目的のプロセスがセッションリーダです。 .It Bq Er EPERM -要求されたプロセスの実効ユーザ ID は呼び出し側の実効ユーザ ID と -異なっており、プロセスは呼び出し側プロセスの子孫ではありません。 +要求されたプロセスグループ ID が呼び出し側のセッションの中に無く、 +目的のプロセスのプロセス ID とも等しくありません。 .El .Sh 関連項目 .Xr getpgrp 2 .Sh 規格 .Fn setpgid システムコールは .St -p1003.1-90 に適合しています。 .Sh 互換性 .Fn setpgrp システムコールは、 .Fn setpgid と同一であり、 .Bx の旧バージョンとの呼び出し規約互換のために保持されています。 diff --git a/ja_JP.eucJP/man/man2/stat.2 b/ja_JP.eucJP/man/man2/stat.2 index 0e6d2ad4c2..31127be281 100644 --- a/ja_JP.eucJP/man/man2/stat.2 +++ b/ja_JP.eucJP/man/man2/stat.2 @@ -1,264 +1,265 @@ .\" Copyright (c) 1980, 1991, 1993, 1994 .\" 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 .\" 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. .\" 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. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. .\" .\" @(#)stat.2 8.4 (Berkeley) 5/1/95 -.\" %FreeBSD: src/lib/libc/sys/stat.2,v 1.35 2003/10/20 13:52:22 dds Exp % +.\" %FreeBSD: src/lib/libc/sys/stat.2,v 1.36 2003/12/10 15:08:41 dds Exp % .\" .\" $FreeBSD$ .Dd February 15, 2002 .Dt STAT 2 .Os .Sh 名称 .Nm stat , .Nm lstat , .Nm fstat .Nd ファイルステータスの取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/stat.h .Ft int .Fn stat "const char *path" "struct stat *sb" .Ft int .Fn lstat "const char *path" "struct stat *sb" .Ft int .Fn fstat "int fd" "struct stat *sb" .Sh 解説 .Fn stat システムコールは、 .Fa path が指すファイルの情報を取得します。 指定したファイルの読取り権、書込み権、実行権は必要ありません。 しかし、そのファイルへ至るパス名で列挙されたすべてのディレクトリは、 検索可能であることが必要です。 .Pp .Fn lstat 関数は .Fn stat に似ていますが、指定したファイルがシンボリックリンクである場合は異なります。 .Fn lstat はリンクの情報を戻しますが、 .Fn stat はリンクが参照するファイルの情報を返します。 .Pp .Fn fstat システムコールは、ファイル記述子 .Fa fd で区別されるオープンファイルについて、上と同じ情報を取得します。 .Pp 引数 .Fa sb は、構造体 .Vt stat へのポインタです。 これは、 .In sys/stat.h で定義され、ファイルに関する情報を保持します。 .Pp .Fa struct stat の時刻に関するフィールドは、以下のとおりです: .Bl -tag -width ".Va st_birthtime" .It Va st_atime ファイルのデータが最後にアクセスされた時刻。 .Xr mknod 2 , .Xr utimes 2 , .Xr read 2 および .Xr readv 2 システムコールで変更されます。 .It Va st_mtime ファイルのデータが最後に修正された時刻。 .Xr mkdir 2 , .Xr mkfifo 2 , .Xr mknod 2 , .Xr utimes 2 , .Xr write 2 および .Xr writev 2 システムコールで変更されます。 .It Va st_ctime ファイルステータスが最後に変更された時刻 (inode データの修正)。 .Xr chflags 2 , .Xr chmod 2 , .Xr chown 2 , .Xr creat 2 , .Xr link 2 , .Xr mkdir 2 , .Xr mkfifo 2 , .Xr mknod 2 , .Xr rename 2 , .Xr rmdir 2 , .Xr symlink 2 , .Xr truncate 2 , .Xr unlink 2 , .Xr utimes 2 , .Xr write 2 および .Xr writev 2 システムコールで変更されます。 .It Va st_birthtime inode が作成されたときの時刻。 .El .Pp .Dv _POSIX_SOURCE が定義されていない場合、時刻に関するフィールドは以下のように定義されます: .Bd -literal #ifndef _POSIX_SOURCE #define st_atime st_atimespec.tv_sec #define st_mtime st_mtimespec.tv_sec #define st_ctime st_ctimespec.tv_sec #endif .Ed .Pp .Vt "struct stat" のサイズに関するフィールドは、以下のとおりです: .Bl -tag -width XXXst_blksize .It st_blksize ファイルの最適な入出力ブロックサイズ。 .It st_blocks ファイルに 512 バイト単位で割り当てられたブロックの実際の数。 短いシンボリックリンクが inode に保持されている場合、この数値が 0 になることがあります。 .El .Pp ステータス情報ワード .Fa st_mode には、以下のようなビットがあります: .Bd -literal #define S_IFMT 0170000 /* ファイルのタイプ */ #define S_IFIFO 0010000 /* 名前付きパイプ (fifo) */ #define S_IFCHR 0020000 /* キャラクタ型特殊ファイル */ #define S_IFDIR 0040000 /* ディレクトリ */ #define S_IFBLK 0060000 /* ブロック型特殊ファイル */ #define S_IFREG 0100000 /* 通常 */ #define S_IFLNK 0120000 /* シンボリックリンク */ #define S_IFSOCK 0140000 /* ソケット */ #define S_IFWHT 0160000 /* ホワイトアウト */ #define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* 使用後にもスワップされたテキストを保存 */ #define S_IRUSR 0000400 /* 読取り権限の所有者 */ #define S_IWUSR 0000200 /* 書込み権限の所有者 */ #define S_IXUSR 0000100 /* 実行 / 検索権限の所有者 */ .Ed アクセスモードのリストについては、 .In sys/stat.h , .Xr access 2 , .Xr chmod 2 を参照してください。 .Sh 戻り値 .Rv -std .Sh 互換性 以前のバージョンのシステムでは、 .Li st_dev , .Li st_uid , .Li st_gid , .Li st_rdev , .Li st_size , .Li st_blksize , .Li st_blocks フィールドに別のタイプを使用していました。 .Sh エラー .Fn stat システムコールと .Fn lstat システムコールは、以下のような場合にエラーとなります: .Bl -tag -width Er .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er EFAULT .Fa sb 引数または .Em name 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムでの読み書き中に入出力エラーが発生しました。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er EOVERFLOW ファイルサイズのバイト数が、 .Fa sb で指されている構造体で正しく表現できません。 .El .Pp .Fn fstat システムコールは、以下のような場合にエラーとなります: .Bl -tag -width Er .It Bq Er EBADF .Fa fd 引数が、有効な記述子ではありません。 .It Bq Er EFAULT .Fa sb 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .It Bq Er EOVERFLOW ファイルサイズのバイト数が、 .Fa sb で指されている構造体で正しく表現できません。 .El .Sh 関連項目 .Xr access 2 , .Xr chmod 2 , .Xr chown 2 , .Xr utimes 2 , -.Xr symlink 7 +.Xr symlink 7 , +.Xr sticky 8 .Sh バグ .Fn fstat をソケット (およびパイプ) に適用すると、ブロックサイズフィールド、 および固有デバイスと inode 番号以外に 0 の入ったバッファが戻されます。 .Sh 規格 .Fn stat システムコールと .Fn fstat システムコールは、 .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn stat システムコールと .Fn fstat システムコールは、 .At v7 で登場しました。 .Fn lstat システムコールは .Bx 4.2 で登場しました。 .\" Amended by N.Kumagai 2000-3-18