diff --git a/ja_JP.eucJP/man/man2/accept.2 b/ja_JP.eucJP/man/man2/accept.2 index bcbf0d553a..2d5216e868 100644 --- a/ja_JP.eucJP/man/man2/accept.2 +++ b/ja_JP.eucJP/man/man2/accept.2 @@ -1,190 +1,193 @@ .\" 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.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 .Os BSD 4.2 .Sh 名称 .Nm accept .Nd ソケット上の接続を受け入れる .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn accept "int s" "struct sockaddr *addr" "socklen_t *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 addrlen は、「値 - 結果」パラメータです。 これは最初は .Fa addr が指す空間のサイズを含んでいなければなりません。 戻り時には、返されるアドレスの実際の長さ (バイト単位) を含むことになります。 この呼び出しは、コネクションをベースとしたソケットタイプ、 現在では .Dv SOCK_STREAM とともに使用されます。 .Pp 読取りでソケットを .Xr select 2 することによって、 .Fn accept するソケットを選ぶことができます。 .Pp .Tn ISO または .Tn DATAKIT のような明瞭な確認が必要な特定のプロトコルでは、 .Fn accept は単に次の接続要求を待ち行列から除くだけで、 確認は行わないと考えられます。確認は、新しいファイル記述子についての 通常の読取りまたは書込みによって行うことができ、 拒絶は新しいソケットを閉じる事によって実現できます。 .Pp .Fa msg_iovlen を 0 に、 .Fa msg_controllen を 0 でない値に設定して .Xr recvmsg 2 を発行することによって、または .Xr getsockopt 2 を発行することによって、確認なしにユーザ接続要求データを得ることができます。 同じように、制御情報だけを指定して .Xr sendmsg 2 を発行することによって、または .Xr setsockopt 2 を発行することによって、ユーザ接続拒絶情報を提供できます。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリで .Fn accept は .Va accept システムコールとして実装されます。 .Pp スレッドライブラリでは、 .Va accept システムコールは .Fn _thread_sys_accept にアセンブルされ、 .Fn accept は、読取りと書込み用に .Fa s をロックしてから、 .Fn _thread_sys_accept を呼び出す関数として実装されます。 .Fn _thread_sys_accept への呼び出しがブロックする場合はコンテキストスイッチが 実行されます。戻る前に .Fn accept は .Fa s をアンロックします。 .Pp .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 .Sh 歴史 .Fn accept 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/aio_cancel.2 b/ja_JP.eucJP/man/man2/aio_cancel.2 index 7f9b8c6274..e792312277 100644 --- a/ja_JP.eucJP/man/man2/aio_cancel.2 +++ b/ja_JP.eucJP/man/man2/aio_cancel.2 @@ -1,108 +1,108 @@ .\" Copyright (c) 1999 Softweyr LLC. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC 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 Softweyr LLC 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/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 .Os .Sh 名称 .Nm aio_cancel .Nd 未解決の非同期入出力操作をキャンセルする (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn aio_cancel "int fildes" "struct aiocb * iocb" .Sh 解説 .Fn aio_cancel 関数は .Fa fildes で指定されるファイル記述子の未解決の非同期入出力をキャンセルします。 .Fa iocb が指定された場合、指定された非同期入出力要求だけをキャンセルします。 .Pp 通常の非同期通知がキャンセルされた要求に対して発生します。要求は .Er ECANCELED のエラー結果となって完了します。 .Sh 制限 .Fn aio_cancel 関数は raw ディスクデバイスに対する非同期入出力をキャンセルしません。 .Fn aio_cancel は、raw ディスクデバイスに関連づけられたファイル記述子に対しては常に .Dv AIO_NOTCANCELED を返します。 .Sh 戻り値 .Fn aio_cancel は -1 を返してエラーまたは次のうちの一つを示します。 .Bl -tag -width Dv .It Bq Dv AIO_CANCELED 指定された条件のすべての未解決要求はキャンセルされました。 .It Bq Dv AIO_NOTCANCELED いくつかの要求はキャンセルされず、 その要求の状態は .Xr aio_error 2 でチェックすべきです。 .It Bq Dv AIO_ALLDONE 条件に合致するすべての要求は完了しています。 .El .Sh 関連項目 .Xr aio_error 2 , .Xr aio_read 2 , .Xr aio_return 2 , .Xr aio_suspend 2 , -.Xr aio_write 2 . +.Xr aio_write 2 .Sh エラー .Fn aio_cancel から返されるエラーは、次のことを示します: .Bl -tag -width Er .It Bq Er EBADF .Fa fildes が有効なファイル記述子ではありません。 .El .Sh STANDARDS .Fn aio_cancel は .St -p1003.2 に準拠しています。 .Sh 歴史 .Fn aio_cancel 関数は .Fx 3.0 ではじめて登場しました。機能する .Fn aio_cancel の実装は .Fx 4.0 ではじめて登場しました。 .Sh 作者 このマニュアルは始めに .An Wes Peters Aq wes@softweyr.com が作成しました。 .Fn aio_cancel が .Fx 4.0 に実装された時に .An Christopher M Sedore Aq cmsedore@maxwell.syr.edu が更新しました。 diff --git a/ja_JP.eucJP/man/man2/aio_error.2 b/ja_JP.eucJP/man/man2/aio_error.2 index aa7aae56fc..0eb39b5b61 100644 --- a/ja_JP.eucJP/man/man2/aio_error.2 +++ b/ja_JP.eucJP/man/man2/aio_error.2 @@ -1,93 +1,93 @@ .\" Copyright (c) 1999 Softweyr LLC. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC 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 Softweyr LLC 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/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 .Os .Sh 名称 .Nm aio_error .Nd 非同期入出力操作のエラーステータスを取り出す (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn aio_error "const struct aiocb *iocb" .Sh 解説 .Fn aio_error 関数は、 .Fa iocb の指す構造体に対応する非同期入出力要求のエラー状態を返します。 .Sh 戻り値 非同期入出力要求が成功した上で正常に完了している場合に .Fn aio_error は 0 を返します。 要求がまだ完了していない場合は .Er EINPROGRESS が返されます。 要求が失敗した上で完了している場合、 .Xr read 2 , .Xr write 2 , .Xr fsync 2 , に記述されているようなエラーステータスが返されます。 処理が失敗した場合に .Fn aio_error は .Dv -1 を返し、 .Dv errno を設定してエラー状態を示します。 .Sh エラー .Fn aio_error は次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa iocb が未解決の非同期 I/O 要求を参照していません。 .El .Sh 関連項目 .Xr aio_cancel 2 , .Xr aio_read 2 , .Xr aio_return 2 , .Xr aio_suspend 2 , .Xr aio_write 2 , .Xr fsync 2 , .Xr read 2 , .Xr write 2 .Sh 規格 .Fn aio_error 関数は .St -p1003.2 に準拠しています。 .Sh 歴史 .Nm 関数は .Fx 3.0 ではじめて登場しました。 .Sh 作者 このマニュアルページは .An Wes Peters Aq wes@softweyr.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_return.2 b/ja_JP.eucJP/man/man2/aio_return.2 index c47f060794..2e6707f0e3 100644 --- a/ja_JP.eucJP/man/man2/aio_return.2 +++ b/ja_JP.eucJP/man/man2/aio_return.2 @@ -1,95 +1,95 @@ .\" Copyright (c) 1999 Softweyr LLC. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC 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 Softweyr LLC 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/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 .Os .Sh 名称 .Nm aio_return .Nd 非同期入出力操作の戻りステータスを取り出す (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn aio_return "struct aiocb *iocb" .Sh 解説 .Fn aio_return 関数は .Fa iocb が指す構造体に対応する非同期入出力要求の最終ステータスを返します。 .Pp .Xr aio_error 2 が .Er EINPROGRESS 以外の何かを返した時の非同期入出力操作の最終ステータスを得るためには .Fn aio_return を 1 回だけしか呼び出してはいけません。 .Sh 戻り値 非同期入出力要求が完了すると .Xr read 2 , .Xr write 2 , または .Xr fsync 2 で説明したようなステータスが 返されます。処理を失敗した場合に .Fn aio_return は .Dv -1 を返し、エラー状態を指すように .Dv errno を設定します。 .Sh 関連項目 .Xr aio_cancel 2 , .Xr aio_error 2 , .Xr aio_read 2 , .Xr aio_suspend 2 , .Xr aio_write 2 , .Xr fsync 2 , .Xr read 2 , -.Xr write 2 . +.Xr write 2 .Sh エラー .Fn aio_return は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EINVAL .Fa iocb が未解決の非同期入出力要求を参照しません。 .El .Sh 規格 .Fn aio_return は .St -p1003.2 に準拠しています。 .Sh 歴史 .Nm 関数は .Fx 3.0 ではじめて登場しました。 .Sh 作者 このマニュアルページは .An Wes Peters Aq wes@softweyr.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_suspend.2 b/ja_JP.eucJP/man/man2/aio_suspend.2 index 5037435eb1..01edd05429 100644 --- a/ja_JP.eucJP/man/man2/aio_suspend.2 +++ b/ja_JP.eucJP/man/man2/aio_suspend.2 @@ -1,101 +1,101 @@ .\" Copyright (c) 1999 Softweyr LLC. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC 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 Softweyr LLC 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/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 .Os .Sh 名称 .Nm aio_suspend .Nd 非同期入出力操作完了、またはタイムアウト経過まで延期する (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn aio_suspend "const struct aiocb * const iocbs[]" "int niocb" "const struct timespec * timeout" .Sh 解説 指定の非同期入出力要求のうち少なくとも 1 つが完了するか、 .Fa timeout が経過するまで .Fn aio_suspend 関数は呼び出しプロセスを延期します。 .Pp .Fa iocbs は、非同期入出力要求への .Ar niocb ポインタの配列です。 NULL が入っている配列メンバはそのまま無視されます。 .Pp .Fa timeout がヌルポインタでない場合、それは延期する時間の最大インターバルを指定します。 .Fa timeout がヌルポインタの場合、無期限に延期します。ポーリングするためには .Fa timeout は値 0 の timespec 構造体を指しているべきです。 .Sh 戻り値 指定された 1 つ以上の非同期入出力要求が完了すると .Fn aio_suspend は 0 を返します。 そうでない場合は -1 を返し、後述するように .Va errno がエラー状態を示すためにセットされます。 .Sh 関連項目 .Xr aio_cancel 2 , .Xr aio_error 2 , .Xr aio_read 2 , .Xr aio_suspend 2 , .Xr aio_write 2 .Sh エラー .Fn aio_suspend 関数は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EAGAIN 入出力要求がどれも完了しないうちに .Fa timeout が時間切れになりました。 .It Bq Er EINVAL .Fa iocbs には .Dv AIO_LISTIO_MAX を越える非同期入出力要求が入っているか、または少なくとも 1 つの要求が 有効ではありません。 .It Bq Er EINTR 延期はシグナルによって割り込みされました。 .El .Sh 規格 .Fn aio_suspend は .St -p1003.2 標準に準拠しています。 .Sh 歴史 .Nm 関数は .Fx 3.0 ではじめて登場しました。 .Sh 作者 このマニュアルページは .An Wes Peters Aq wes@softweyr.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_waitcomplete.2 b/ja_JP.eucJP/man/man2/aio_waitcomplete.2 index d1d8284c2b..3d4e1879fd 100644 --- a/ja_JP.eucJP/man/man2/aio_waitcomplete.2 +++ b/ja_JP.eucJP/man/man2/aio_waitcomplete.2 @@ -1,133 +1,133 @@ .\" Copyright (c) 1999 Christopher M Sedore. .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED ``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/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 .Os .Sh 名称 .Nm aio_waitcomplete .Nd 非同期入出力要求の完了までの待機 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int -.Fn aio_waitcomplete "struct aiocb **iocbp, struct timeval *timeout" +.Fn aio_waitcomplete "struct aiocb **iocbp" "struct timespec *timeout" .Sh 解説 .Fn aio_waitcomplete 関数は非同期入出力の完了まで待ちます。完了次第、 .Fn aio_waitcomplete はその関数の結果を返し、 元の要求に関連する構造体へのポインタを .Fa iocbp にセットします。もし、 .Fn aio_waitcomplete 関数が呼び出される前に非同期入出力要求が完了していた場合には、 完了した要求の結果を即座に返します。 .Pp .Fa timeout がヌルポインタでない場合、それは非同期入出力要求が完了するまで 待機する最大時間を指定します。 .Fa timeout がヌルポインタの場合は、 .Fn aio_waitcomplete は無期限に待機します。 ポーリングする場合は、 引数 .Fa timeout はヌルではなく、0 の値を持つ timeval 構造体を指すようにするべきです。 .Pp .Fn aio_waitcomplete 関数は .Fn aio_return の役割もします。従って、 コントロールブロックは .Fa iocbp で返されているので、 .Fn aio_return を呼び出すべきではありません。 .Sh 戻り値 非同期入出力リクエストが完了した場合、 .Fa iocbp に元のリクエストから渡されたコントロールブロックを指すポインタを設定し、 .Xr read 2 , .Xr write 2 , .Xr fsync 2 で述べられているのと同様のステータスを返します。 失敗した場合、 .Fn aio_waitcomplete は .Dv -1 を返し、iocbp に .Dv NULL を設定します。そして、 -.Dv errno +.Va errno にエラーの状況を設定します。 .Sh エラー .Fn aio_waitcomplete 関数は次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL 指定された制限時間が無効です。 .It Bq Er EAGAIN プロセスはまだ .Fn aio_read や .Fn aio_write を呼び出していません。 .It Bq Er EINTR タイムアウトする前で、かつ 非同期入出力リクエストが完了する前にシグナルが届きました。 .It Bq Er EWOULDBLOCK .It Bq Er EINPROGRESS 非同期入出力リクエストが完了する前に、指定された制限時間に達しました。 .El .Sh 参照 .Xr aio_cancel 2 , .Xr aio_error 2 , .Xr aio_read 2 , .Xr aio_return 2 , .Xr aio_suspend 2 , .Xr aio_write 2 , .Xr fsync 2 , .Xr read 2 , -.Xr write 2 . +.Xr write 2 .Sh 規格 .Fn aio_waitcomplete 関数は .Fx 特有の拡張です。 .Sh 歴史 .Fn aio_waitcomplete 関数は .Fx 4.0 ではじめて登場しました。 .Sh 作者 .Fn aio_waitcomplete 関数とこのマニュアルページは .An Christopher M Sedore Aq cmsedore@maxwell.syr.edu が作成しました。 diff --git a/ja_JP.eucJP/man/man2/bind.2 b/ja_JP.eucJP/man/man2/bind.2 index b10710cc0c..f9e5160e77 100644 --- a/ja_JP.eucJP/man/man2/bind.2 +++ b/ja_JP.eucJP/man/man2/bind.2 @@ -1,149 +1,149 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)bind.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/bind.2,v 1.11.2.3 2000/08/23 00:45:18 jhb Exp % .\" .Dd June 4, 1993 .Dt BIND 2 .Os BSD 4.2 .Sh 名称 .Nm bind .Nd ローカルプロトコルアドレスをソケットに割り当てる .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn bind "int s" "const struct sockaddr *addr" "socklen_t addrlen" .Sh 解説 .Fn bind は、ローカルプロトコルアドレスをソケットに割り当てます。ソケットは、 .Xr socket 2 で作成される時にアドレスファミリ空間に存在しますが、 プロトコルアドレスは割り当てられていません。 .Fn bind はソケットに .Fa addr を割り当てることを要求します。 .Sh 注 UNIX ドメイン内でのアドレスのバインドによってファイルシステム内に ソケットが作成されます。 これは、必要なくなったときに呼び出し側が .Pf ( Xr unlink 2 を使用して) 削除する必要があります。 .Pp アドレスのバインドで使用される規則は通信ドメイン間で異なります。 詳細については、 セクション 4 のマニュアルエントリを参照してください。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn bind は .Va bind システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va bind システムコールは .Fn _thread_sys_bind にアセンブルされ、 .Fn bind は読取りと書込み用に .Fa s をロックしてから、 .Fn _thread_sys_bind を呼び出す 関数として実装されています。戻る前に、 .Fn bind は .Fa s をアンロックします。 .Sh 戻り値 バインドは成功すると値 0 を返します。戻り値 -1 はエラーを示し、 このエラーはグローバル .Va errno で指定されています。 .Sh エラー .Fn bind 呼び出しは次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EAGAIN 要求を満たすためのカーネルリソースが一時的に利用できません。 .It Bq Er EBADF .Fa s が有効な記述子ではありません。 .It Bq Er ENOTSOCK .Fa s がソケットではありません。 .It Bq Er EADDRNOTAVAIL 指定のアドレスがローカルマシンから利用できません。 .It Bq Er EADDRINUSE 指定のアドレスは既に使用中です。 .It Bq Er EACCES 要求されたアドレスは保護されており、現在のユーザが持っているパーミッションは それにアクセスするのには不適切です。 .It Bq Er EFAULT .Fa addr パラメータが有効なユーザアドレス空間ではありません。 .El .Pp 次のエラーは UNIX ドメイン内のバインドアドレスに固有のものです。 .Bl -tag -width EADDRNOTAVA .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT パス名の接頭辞構成要素が存在しません。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EIO ディレクトリエントリを作成している間、または i ノードを割り振りしている間に 入出力エラーが発生しました。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EISDIR 空のパス名が指定されました。 .El .Sh 関連項目 .Xr connect 2 , .Xr getsockname 2 , .Xr listen 2 , .Xr socket 2 .Sh 歴史 .Fn bind 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/brk.2 b/ja_JP.eucJP/man/man2/brk.2 index 9d80057542..58718be993 100644 --- a/ja_JP.eucJP/man/man2/brk.2 +++ b/ja_JP.eucJP/man/man2/brk.2 @@ -1,130 +1,130 @@ .\" 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. .\" .\" @(#)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 .Os BSD 4 .Sh 名称 .Nm brk , .Nm sbrk .Nd データセグメントのサイズを変更する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft char * .Fn brk "const char *addr" .Ft char * .Fn sbrk "int incr" .Sh 解説 .Bf -symbolic brk 関数と sbrk 関数は、仮想メモリ管理の到来の前の初期の日々から残された 歴史的に興味あるものです。 .Ef .Fn brk 関数は、プロセスのデータセグメント (初期化されていないデータ) のブレーク または最下位アドレスを .Fa addr (bss の真上) に設定します。データアドレス指定は、 .Fa addr とスタックセグメントへの最も低いスタックポインタの間に制約されます。 メモリはページサイズ単位で .Fa brk によって割当てされます。 .Fa addr は、システムページサイズ上に均等に分割されない場合には 次のページ境界まで増加させます。 .Pp プログラムブレークの現在の値は、 .Dq Li sbrk(0) によって信頼性をもって返されます .Pf ( Xr end 3 も参照)。 .Xr getrlimit 2 システムコールは、 .Em data セグメントの許容できる最大のサイズを決定するのに利用できます。 .Xr getrlimit 2 の呼び出しから返された .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 を参照してください)。 .Sh 戻り値 .Fn brk は、正常に完了すると 0 を返します。それ以外の場合は値 -1 を返し、 割当てが処理失敗した理由を示す .Va errno が設定されます。 .Fn sbrk 関数は、正常に完了すると新しい記憶域のベースを指すポインタを 返します。それ以外の場合は値 -1 を返し、割当てが処理失敗した理由を示す .Va errno が設定されます。 .Sh エラー .Fn brk または .Fn sbrk は、以降のうちの 1 つが真の場合に処理に失敗し、新しくメモリを 割当てられません。 .Bl -tag -width Er .It Bq Er ENOMEM .Xr setrlimit 2 が設定した限界を越えました。 .It Bq Er ENOMEM データセグメントの可能な最大サイズ (システム内部にコンパイルされます) を越えました。 .It Bq Er ENOMEM 展開をサポートするスワップ領域内に不充分な空間が存在しました。 .El .Sh 関連項目 .Xr execve 2 , .Xr getrlimit 2 , .Xr end 3 , .Xr malloc 3 .Sh バグ ブレークの設定は、スワップ空間の一次的な不足のために処理が失敗する 可能性があります。これは .Xr getrlimit 2 を使用せずには、データセグメントの最大サイズを越えることで起こされた 障害と区別することはできません。 .Sh 歴史 .Fn brk 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/clock_gettime.2 b/ja_JP.eucJP/man/man2/clock_gettime.2 index 3451c93a83..33a44056b7 100644 --- a/ja_JP.eucJP/man/man2/clock_gettime.2 +++ b/ja_JP.eucJP/man/man2/clock_gettime.2 @@ -1,128 +1,128 @@ .\" $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. .\" .\" 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. .\" .Dd May 8, 1997 .Dt CLOCK_GETTIME 2 .Os BSD 4 .Sh 名称 .Nm clock_gettime , .Nm clock_settime , .Nm clock_getres .Nd 日付と時刻の取得/設定/精度の取得をする .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn clock_gettime "clockid_t clock_id" "struct timespec *tp" .Ft int .Fn clock_settime "clockid_t clock_id" "const struct timespec *tp" .Ft int .Fn clock_getres "clockid_t clock_id" "struct timespec *tp" .Sh 解説 .Fn clock_gettime と .Fn clock_settime は .Fa clock_id で指定するクロックの値を取得、設定します。 .Pp .Fa clock_id には、次の 3 つの値のうちの 1 つを指定します。 CLOCK_REALTIME は普通の時計のように進む時間、 CLOCK_VIRTUAL は呼び出しプロセスのために CPU がユーザモードで 実行されているときにだけ進む時間、 CLOCK_PROF は、CPU がユーザモードまたはカーネルモードで実行されている ときに進む時間です。 .Pp .Fa tp によって指される構造体は .Ao Pa sys/time.h Ac 内で次のように定義されています。 .Pp .Bd -literal struct timespec { time_t tv_sec; /* 秒 */ long tv_nsec; /* ナノ秒 */ }; .Ed .Pp 時刻を設定できるのはスーパーユーザだけです。 システムの安全性レベル (securelevel) が 1 より大きい場合 .Pf ( Xr init 8 を参照)、 時間は進めることだけができます。この制限は、 悪意のあるスーパーユーザがファイルに 任意のタイムスタンプを設定するのを防止するためのものです。 しかし、システムが安全なモードの時でも、 .Xr adjtime 2 システムコールを使用すれば システム時間を遅らせることができてしまいます。 .Pp クロックの精度 (細かさ) は、 .Fn clock_getres 呼び出しによって返されます。この値は、 (非 NULL ポインタ) .Fa *tp 内に格納されます。 .Sh 戻り値 戻り値 0 は呼び出しが正常に完了したことを示します。 戻り値 -1 はエラーが起こったことを示し、 エラーコードはグローバル変数 .Va errno に保存されます。 .Sh エラー 次のエラーコードが .Va errno に設定されます。 .Bl -tag -width Er .It Bq Er EINVAL .Fa clock_id が有効な値ではありませんでした。 .It Bq Er EFAULT .Fa *tp 引数アドレスが無効なメモリを参照しています。 .It Bq Er EPERM スーパユーザ以外のユーザが時刻を設定しようとしました。 .El .Sh 関連項目 .Xr date 1 , .Xr adjtime 2 , .Xr ctime 3 , .Xr timed 8 .Sh 規格 .Fn clock_gettime 等の関数は .St -p1003.1b-93 に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/close.2 b/ja_JP.eucJP/man/man2/close.2 index fba1f29b2a..0cf8d969bf 100644 --- a/ja_JP.eucJP/man/man2/close.2 +++ b/ja_JP.eucJP/man/man2/close.2 @@ -1,157 +1,157 @@ .\" 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. .\" .\" @(#)close.2 8.2 (Berkeley) 4/19/94 .\" %FreeBSD: src/lib/libc/sys/close.2,v 1.10.2.2 2000/08/23 00:45:18 jhb Exp % .\" .Dd April 19, 1994 .Dt CLOSE 2 .Os BSD 4 .Sh 名称 .Nm close .Nd 記述子を削除する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn close "int d" .Sh 解説 .Fn close はプロセスのオブジェクト参照テーブルから記述子を削除します。 これがそのオブジェクトへの最後の参照だった場合、 オブジェクトはアクティブでなくなります。たとえば、 ファイルに対する最後のクローズで、そのファイルに結び付けられた現在の .Em seek ポインタは失われます。 .Xr socket 2 に対する最後のクローズで、そのソケットに結び付けられた 命名情報と待ち行列内のデータは破棄されます。 問合せ型ロックを保持している ファイルに対する最後のクローズで、ロックは開放されます (詳細は .Xr flock 2 を参照)。しかし、System V と .St -p1003.1-88 では、あるプロセスがファイルに対して保持しているすべての .Xr fcntl 2 問合せ型レコードロックは、そのファイルについてのファイル記述子の .Em いずれか がそのプロセスによって閉じられるときに開放される、と規定しています。 .Pp プロセスが終了するとき、プロセスに結び付けられた ファイル記述子はすべて解放されます。しかし、 アクティブな記述子の個数にはプロセスごとに制限があるので、 大量のファイル記述子を処理するときは、 .Fn close 関数呼び出しが便利です。 .Pp プロセスがフォークするとき .Pf ( Xr fork 2 参照)、新しい子プロセスの記述子はすべて、 フォークの前に親プロセスの記述子が参照していたのと同じオブジェクトを 参照します。次に、新しいプロセスが .Xr execve 2 で実行される場合、そのプロセスは通常これらの記述子を継承します。 ほとんどの記述子は .Xr execve 2 の前に .Xr dup2 2 で再配置されるか、 .Fn close で削除されます。もし execve が失敗した場合にこれらの記述子が 必要になるのであれば、execve が成功した場合にのみ、 それらをクローズするようにする必要があります。 このために、 .Dq Li fcntl(d, F_SETFD, 1) 呼び出しが準備されています。これは execve が成功した後で、 記述子を閉じるように指示します。 .Dq Li fcntl(d, F_SETFD, 0) 呼び出しはこれをデフォルトに戻します。デフォルトでは、 記述子はクローズされません。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn close は .Va close システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va close システムコールは、 .Fn _thread_sys_close にアセンブルされ、 .Fn close は、読み書きについて .Fa d をロックしてから、 .Fn _thread_sys_close を呼び出す関数として実装されています。戻る前に、 .Fn close は .Fa d をアンロックします。 .Sh 戻り値 処理が正常に完了すると、値 0 が返されます。そうでない場合は、 値 -1 が返され、エラーを示すために グローバル整数変数 .Va errno が設定されます。 .Sh エラー .Fn close は次の場合に失敗します: .Bl -tag -width Er .It Bq Er EBADF .Fa d がアクティブな記述子ではありません。 .It Bq Er EINTR 割り込みが受信されました。 .El .Sh 関連項目 .Xr accept 2 , .Xr execve 2 , .Xr fcntl 2 , .Xr flock 2 , .Xr open 2 , .Xr pipe 2 , .Xr socket 2 , .Xr socketpair 2 .Sh 規格 .Fn close 関数は .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn close 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/connect.2 b/ja_JP.eucJP/man/man2/connect.2 index 39a0dd0f78..5e57689e14 100644 --- a/ja_JP.eucJP/man/man2/connect.2 +++ b/ja_JP.eucJP/man/man2/connect.2 @@ -1,166 +1,166 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)connect.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/connect.2,v 1.11.2.3 2000/12/08 13:49:31 ru Exp % .\" .Dd June 4, 1993 .Dt CONNECT 2 .Os BSD 4.2 .Sh 名称 .Nm connect .Nd ソケット上で接続を開始する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn connect "int s" "const struct sockaddr *name" "socklen_t namelen" .Sh 解説 パラメータ .Fa s はソケットです。このタイプが .Dv SOCK_DGRAM の場合、この呼び出しはソケットが結び付けられる 通信相手を指定します。このアドレスは送信データグラムの送信先であり、 受信データグラムの送信元となる唯一のアドレスです。ソケットのタイプが .Dv SOCK_STREAM の場合、この呼び出しは通信相手のソケットに接続を確立 しようとします。通信相手のソケットは .Fa name で指定されます。 .Fa name はソケット通信空間内のアドレスです。各通信空間は .Fa name パラメータを独自の方法で解釈します。一般に、ストリームソケットが正常に .Fn connect できるのは 1 回だけです。データグラムソケットは .Fn connect を複数回使用してその結び付けを変更できます。データグラム ソケットは、NULL アドレスのような無効なアドレスに接続することによって 結び付けを解除できます。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn connect は .Va connect システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va connect システムコールは .Fn _thread_sys_connect にアセンブルされ、 .Fn connect は、読み書きについて .Va s をロックしてから .Fn _thread_sys_connect を呼び出す関数として実装されています。 .Fn _thread_sys_connect の呼び出しがブロックする場合、コンテキストスイッチが 実行されます。戻る前に .Fn connect は .Va s をアンロックします。 .Sh 戻り値 接続または結び付けが正常に完了すると 0 が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn connect は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EBADF .Fa s が有効な記述子でありません。 .It Bq Er ENOTSOCK .Fa s がソケットではなくファイルの記述子です。 .It Bq Er EADDRNOTAVAIL 指定のアドレスがこのマシンでは利用できません。 .It Bq Er EAFNOSUPPORT 指定のアドレスファミリ内のアドレスがこのソケットでは使用できません。 .It Bq Er EISCONN ソケットは既に接続されています。 .It Bq Er ETIMEDOUT 接続を確立することなく、タイムアウトしました。 .It Bq Er ECONNREFUSED 接続が強制的に拒絶されました。 .It Bq Er ENETUNREACH このホストからそのネットワークに到達できません。 .It Bq Er EADDRINUSE アドレスが既に使用中です。 .It Bq Er EFAULT .Fa name パラメータはプロセスアドレス空間の外側の領域を指定しています。 .It Bq Er EINPROGRESS 非ブロッキングのソケットで、接続がすぐには確立できませんでした。 ソケットへの書込みを .Xr select 2 で待つことによって、接続完了を待つことができます。 .It Bq Er EALREADY 非ブロッキングのソケットで、以前の接続の試みがまだ完了していません。 .El .Pp 以降のエラーは、UNIX ドメインの接続名に固有です。 これらのエラーは、UNIX IPC ドメインの将来の バージョンには適用されない可能性があります。 .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 EACCES 指定のソケットへの書込みアクセスが拒絶されています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .El .Sh 関連項目 .Xr accept 2 , .Xr getpeername 2 , .Xr getsockname 2 , .Xr select 2 , .Xr socket 2 .Sh 歴史 .Fn connect 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/dup.2 b/ja_JP.eucJP/man/man2/dup.2 index 961ae00ae3..7414c4b4f1 100644 --- a/ja_JP.eucJP/man/man2/dup.2 +++ b/ja_JP.eucJP/man/man2/dup.2 @@ -1,202 +1,202 @@ .\" 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. .\" .\" @(#)dup.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/dup.2,v 1.9.2.2 2000/08/23 00:45:18 jhb Exp % .\" .Dd June 4, 1993 .Dt DUP 2 .Os BSD 4 .Sh 名称 .Nm dup , .Nm dup2 .Nd 既存のファイル記述子を複製する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn dup "int oldd" .Ft int .Fn dup2 "int oldd" "int newd" .Sh 解説 .Fn dup は既存のオブジェクト記述子を複製し、その値を呼び出しプロセスに返します .Fa ( newd = .Fn dup oldd ) 。 引数 .Fa oldd はプロセスの記述子テーブル内のインデックスで、負でない小さな整数です。 その値はテーブルのサイズより小さくなければなりません。 テーブルのサイズは .Xr getdtablesize 2 によって返されます。 .Fn dup 呼び出しは、そのときにプロセスによって使用されていない番号のうち、 最も小さい番号の付いた記述子を返します。 .Pp 記述子が参照するオブジェクトは .Fa oldd と .Fa newd をまったく区別しません。したがって .Fa newd と .Fa oldd がオープンされたファイルへの複製された参照だった場合、すべての .Xr read 2 , .Xr write 2 および .Xr lseek 2 呼び出しは、単一のポインタをファイル内で移動します。 追加モード、ノンブロッキング入出力 および非同期入出力オプションは各参照の間で共有されます。 一つのファイルへの別々のポインタが必要な場合は、追加の .Xr open 2 を呼び出し、ファイルへの異なるオブジェクト参照を 得る必要があります。このとき、新しいファイル記述子の close-on-exec フラグは設定解除されています。 .Pp .Fn dup2 には新しい記述子 .Fa newd の値を指定します。この記述子が既に使用されていた場合、 .Fa oldd != .Fa newd であれば、まずその記述子は .Xr close 2 が呼び出されたかのように割り当て解除されます。 .Fa oldd が有効な記述子でなかった場合には、 .Fa newd はクローズされません。 .Fa oldd == .Fa newd であり、しかも .Fa oldd が有効な記述子の場合、 .Fn dup2 は正常に終了し、何もしません。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリ .Fn dup は .Va dup システムコールとして実装されています。 .Pp スレッドライブラリの場合、 .Va dup システムコールが .Fn _thread_sys_dup にアセンブルされ、 .Fn dup は読み書きについて .Fa oldd をロックしてから、 .Fn _thread_sys_dup を呼び出す関数として実装されています。 戻る前に .Fn dup は .Fa oldd をアンロックします。 .Pp 非スレッドライブラリ .Fn dup2 は、 .Va dup2 システムコールとして実現されます。 .Pp スレッドライブラリでは、 .Va dup2 システムコールは .Fn _thread_sys_dup2 にアセンブルされ、 .Fn dup2 は、読み書きについて .Fa oldd と .Fa newd の両方をロックしてから、 .Fn _thread_sys_dup2 を呼び出す関数として実現されます。戻る前に、 .Fn dup2 は .Fa oldd と .Fa newd をアンロックします。 .Sh 戻り値 いずれかの呼び出しでエラーが起きた場合は値 -1 が返されます。 外部変数 .Va errno はエラーの原因を示します。 .Sh エラー .Fn dup と .Fn dup2 は次の場合に処理に失敗します。 .Bl -tag -width Er .It Bq Er EBADF .Fa oldd または .Fa newd が有効なアクティブ記述子ではありません。 .It Bq Er EMFILE アクティブな記述子が多すぎます。 .El .Sh 関連項目 .Xr accept 2 , .Xr close 2 , .Xr fcntl 2 , .Xr getdtablesize 2 , .Xr open 2 , .Xr pipe 2 , .Xr socket 2 , .Xr socketpair 2 .Sh 規格 .Fn dup 関数と .Fn dup2 関数は、 .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn dup 関数と .Fn dup2 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/execve.2 b/ja_JP.eucJP/man/man2/execve.2 index 7edbeff530..2ca7f855f7 100644 --- a/ja_JP.eucJP/man/man2/execve.2 +++ b/ja_JP.eucJP/man/man2/execve.2 @@ -1,287 +1,291 @@ .\" 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. .\" .\" @(#)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 .Os BSD 4 .Sh 名称 .Nm execve .Nd ファイルを実行する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn execve "const char *path" "char *const argv[]" "char *const envp[]" .Sh 解説 .Fn execve は呼び出しプロセスを新しいプロセスに変換します。新しいプロセスは .Em new process file と呼ばれる通常のファイルに基いて構成されます。このファイルの名前は .Fa path によって指定されます。 このファイルは実行可能オブジェクトファイル、またはインタプリタ用の データのファイルです。実行可能オブジェクトファイルは、識別ヘッダに データのページが続いたもので構成されます。このデータは 初期プログラム (テキスト) と初期値ありデータのページを表します。 追加のページはヘッダの指定によって 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 .Ed .Pp インタプリタファイルが .Sy execve されるとき、システムは実際には指定の .Em interpreter を .Sy execve します。オプションの .Em arg が指定されている場合、それは .Em interpreter の 1番目の引数に なり、元々の .Sy execve で指定されたファイルの名前は 2 番目の引数になります。それ以外では .Sy execve で指定されたファイルの名前が 1番目の引数になります。 元々の引数はシフトされて後続の引数に なります。0 番目の引数は指定された .Em interpreter に設定されます。 .Pp 引数 .Fa argv は、ヌルで終了する文字ポインタの配列を指すポインタです。 各文字ポインタはヌル文字で終了する文字列を指します。 これらの文字列は、新しいプロセスから参照できる引数リストを構成します。 少なくとも 1 つの引数が配列内に存在している必要があります。 慣習では、最初の要素が実行されたプログラムの名前になるはずです (たとえば、 .Fa path の最後の構成要素)。 .Pp 引数 .Fa envp も、ヌルで終了する文字ポインタの配列を指すポインタです。 各文字ポインタはヌル文字で終了する文字列を指します。 この配列を指すポインタは、通常、グローバル変数 .Va environ に保存されます。これらの文字列は、引数としてコマンドへ直接 渡されない情報を新しいプロセスに渡します .Pf ( Xr environ 7 を参照)。 .Pp 呼び出しプロセスイメージ内でオープンされているファイル記述子は、 新しいプロセスイメージの中でもオープンされたままです。 しかし、close-on-exec フラグが設定されているものは例外です。 .Pf ( Xr close 2 と .Xr fcntl 2 を参照)。 オープンされたままの記述子は .Fn execve の影響を受けません。 .Pp 呼び出しプロセスで無視するように設定されたシグナルは、 新しいプロセス内でも無視されるように設定されます。 呼び出しプロセスイメージ内で捕捉されるように設定されたシグナルは、 新しいプロセスイメージ内でデフォルトのアクションに 設定されます。ブロックされたシグナルは、 シグナルアクションの変化とは無関係にブロックされたままになります。 シグナルスタックは未定義にリセットされます (詳細については .Xr sigaction 2 を参照してください)。 .Pp 新しいプロセスイメージファイルに set-user-ID モードビット が設定されている場合 .Pf ( Xr chmod 2 を参照)、新しいプロセスイメージの実効ユーザ ID は、 新しいプロセスイメージファイルの所有者 ID に設定されます。 新しいプロセスイメージファイルに set-group-ID モードビットが 設定されている場合、新しいプロセスイメージの実効グループ ID は新しい プロセスイメージファイルのグループ ID に設定されます (実効グループ ID はグループリストの最初の要素です)。 新しいプロセスの実ユーザ ID、実グループ ID、およびその他の グループ ID は、呼び出しプロセスイメージと同じになります。 set-user-ID および set-group-ID 処理の後、実効ユーザ ID は saved set-user-ID として記録され、実効グループ ID は saved set-group-ID として記録されます。 これらの値は、後で実効 ID を変更するのに使用できます .Pf ( Xr setuid 2 を参照)。 .Pp 該当するファイルシステムで .Ar nosuid オプションが有効な場合、または新しいプロセスファイルがインタプリタ ファイルの場合、set-ID ビットは意味を持ちません。 実効 ID が変更された場合、システムコールのトレースは 無効になります。 .Pp また、新しいプロセスは呼び出しプロセスから次の属性を継承します。 .Pp .Bl -column ファイルモードマスク -offset indent -compact .It プロセス ID Ta Xr getpid 2 \ を参照 .It 親プロセス ID Ta Xr getppid 2 \ を参照 .It プロセスグループ ID Ta Xr getpgrp 2 \ を参照 .It アクセスグループ Ta Xr getgroups 2 \ を参照 .It 作業ディレクトリ Ta Xr chdir 2 \ を参照 .It ルートディレクトリ Ta Xr chroot 2 \ を参照 .It 制御端末 Ta Xr termios 4 \ を参照 .It リソースの使用状況 Ta Xr getrusage 2 \ を参照 .It インターバルタイマ Ta Xr getitimer 2 \ を参照 .It リソースの使用制限 Ta Xr getrlimit 2 \ を参照 .It ファイルモードマスク Ta Xr umask 2 \ を参照 .It シグナルマスク Ta Xr sigvec 2 , .Xr sigsetmask 2 \ を参照 .El .Pp .Fn execve 呼び出しの結果として実行されるとき、プログラムは次のように呼び出されます。 .Bd -literal -offset indent main(argc, argv, envp) int argc; char **argv, **envp; .Ed .Pp ここで、 .Fa argc は .Fa argv の要素数 (``arg count'') であり、 .Fa argv は、引数自身を指す文字ポインタの配列を指します。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn execve は .Va execve システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va execve システムコールは .Fn _thread_sys_execve にアセンブルされ、 .Fn execve は、ユーザスレッドライブラリ再初期化を行なってから、 .Fn _thread_sys_execve を呼び出す関数として実装されています。 .Sh 戻り値 .Fn execve は現在のプロセスイメージを新しいプロセスイメージで上書きするので、 処理が成功した呼び出しには戻るプロセスがありません。 .Fn execve が呼び出しプロセスに返ってくる場合は エラーが起きています。戻り値は -1 で、 エラーを示すためにグローバル変数 .Va errno が設定されます .Sh エラー 次の場合、 .Fn execve は処理に失敗し、呼び出しプロセスに戻ります。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 新しいプロセスファイルが存在しません。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています .It Bq Er EACCES 新しいプロセスファイルが通常のファイルではありません。 .It Bq Er EACCES 新しいプロセスファイルは、実行が許可されていません。 .It Bq Er ENOEXEC 新しいプロセスファイルに適切なアクセス許可がありますが、 ヘッダのマジック番号が無効です。 .It Bq Er ETXTBSY 新しいプロセスファイルは純粋な手続き (共有テキスト) ファイルで、 現時点で他のプロセスによって書込みまたは読取り用にオープンされています。 .It Bq Er ENOMEM 新しいプロセスは、許された .Pq Xr getrlimit 2 で課された最大値 以上の仮想メモリを必要とします。 .It Bq Er E2BIG 新しいプロセスの引数リストのバイト数がシステムの課した上限を 越えています。この上限は、 .Xr sysctl 3 の MIB 変数 .Dv KERN_ARGMAX により指定されます。 .It Bq Er EFAULT 新しいプロセスファイルは、ヘッダ内のサイズ値で 示されるほど長くはありません。 .It Bq Er EFAULT .Fa path , .Fa argv , または .Fa envp が正しくないアドレスを指しています。 .It Bq Er EIO ファイルシステムから読取る間に入出力エラーが発生しました。 .El .Sh 警告 スーパユーザでないものに対して .Em setuid されたプログラムが、実 .Em uid が ``root'' の時に実行された場合、プログラムは部分的に スーパユーザの権限を持ちます。 .Sh 関連項目 .Xr ktrace 1 , .Xr _exit 2 , .Xr fork 2 , .Xr execl 3 , .Xr exit 3 , .Xr sysctl 3 , +.Xr a.out 5 , +.Xr elf 5 , .Xr environ 7 , .Xr mount 8 .Sh 歴史 .Fn execve 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fcntl.2 b/ja_JP.eucJP/man/man2/fcntl.2 index 7ef77bd5db..1eb7d95b25 100644 --- a/ja_JP.eucJP/man/man2/fcntl.2 +++ b/ja_JP.eucJP/man/man2/fcntl.2 @@ -1,538 +1,538 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)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 .Os BSD 4.2 .Sh 名称 .Nm fcntl .Nd ファイル制御 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn fcntl "int fd" "int cmd" "..." .Sh 解説 .Fn fcntl は、記述子の制御機能を提供します。引数 .Fa fd は、後述する .Fa cmd によって操作される記述子です。 .Fa cmd の値によっては、 .Nm は 3 つめの引数 .Fa "int arg" を取ることができます。 .Bl -tag -width F_GETOWNX .It Dv F_DUPFD 次のような新しい記述子を返します。 .Pp .Bl -bullet -compact -offset 4n .It .Fa arg 以上で最小番号をもつ利用可能な記述子 .It オリジナルの記述子と同じオブジェクトを参照 .It オブジェクトがファイルだった場合、 同じファイルオフセットを共有 .It 同じアクセスモード (読取り、書込み、または読取りと書込み) .It 同じファイルステータスフラグ (すなわち、 両方のファイル記述子が同じファイルステータス フラグを共有) .It close-on-exec フラグは、 .Xr execve 2 システムコールの後でも 記述子をオープンしたままでいるように設定 .El .It Dv F_GETFD ファイル記述子 .Fa fd に結び付けられた close-on-exec フラグを取得します。 返された値の下位ビットが 0 の場合、ファイルは .Fn exec を実行してもオープンされたままになります。 そうでない場合、ファイルは .Fn exec の実行でクローズされます。 .Fa ( arg は無視されます)。 .It Dv F_SETFD .Fa fd に結び付けられた close-on-exec フラグを .Fa arg (前記のように 0 または 1) の下位ビットで指定される値に設定します。 .It Dv F_GETFL 後述するように記述子のステータスフラグを取得します .Fa ( arg は無視されます)。 .It Dv F_SETFL 記述子ステータスフラグを .Fa arg で指定される値に設定します。 .It Dv F_GETOWN 現時点で .Dv SIGIO シグナルと .Dv SIGURG シグナルを受信しているプロセス ID またはプロセスグループを取得 します。プロセスグループは負の値として返されます .Fa ( arg は無視されます)。 .It Dv F_SETOWN プロセスまたはプロセスグループが .Dv SIGIO シグナルおよび .Dv SIGURG シグナルを受信するように設定します。 プロセスグループは .Fa arg を負数にして与えることによって指定されます。そうでない場合、 .Fa arg はプロセス ID として解釈されます。 .El .Pp .Dv F_GETFL および .Dv F_SETFL 用のフラグは次のとおりです。 .Bl -tag -width O_NONBLOCKX .It Dv O_NONBLOCK 非ブロッキング入出力。 .Xr read 2 呼び出しで読み取るべきデータが無い場合、または .Xr write 2 操作がブロックするであろう場合に、読取り呼び出しまたは書込み呼び出しはエラー .Er EAGAIN で -1 を返します。 .It Dv O_APPEND 各書込みがファイルの末尾に追加されるようにします。 .Xr open 2 の .Dv O_APPEND フラグに対応します。 .It Dv O_ASYNC たとえば、読み取るべきデータが用意できたときなど、 入出力が可能になったときに .Dv SIGIO シグナルがプロセスグループに送信されるようにします。 .El .Pp 問合せ型ファイルロックを行なうためにいくつかのコマンドが利用できます。 これらのコマンドはすべて次の構造体で操作します。 .ne 7v .Bd -literal struct flock { off_t l_start; /* 開始位置のオフセット */ off_t l_len; /* len = 0 はファイル末尾までという意味 */ pid_t l_pid; /* ロック所有者 */ short l_type; /* ロックタイプ: 読取り/書込みなど */ short l_whence; /* l_start のタイプ */ }; .Ed 問合せ型レコードロックに利用できるコマンドは次のとおりです。 .Bl -tag -width F_SETLKWX .It Dv F_GETLK 3 番めの引数 .Fa arg を .Fa "struct flock" (前記を参照) へのポインタと解釈して、それによって指定される ロック記述をブロックする最初のロックを取得します。取り出された情報は、 .Fn fcntl に渡された .Fa flock 構造体内の情報に上書きされます。 このロックが作成されるのを妨げるロックが見つからない場合は、 構造体はこの関数呼び出しによっても変更されません。 ただし、ロックタイプが .Dv F_UNLCK に設定されている場合は除きます。 .It Dv F_SETLK 3 番めの引数 .Fa arg を .Fa "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 は .Er EAGAIN でただちに戻ります。 .It Dv F_SETLKW このコマンドは .Dv F_SETLK と同じですが、共有ロックまたは排他的ロックが他のロックによって ブロックされる場合に、 要求が満たされるまでプロセスが待機する点が異なります。 .Fn fcntl がある領域を確保するために待機している間に 捕捉されるべきシグナルを受信して、シグナルハンドラが .Dv SA_RESTART .Pf ( Xr sigaction 2 を参照) を 指定していない場合、 .Fn fcntl は中断されます。 .El .Pp 共有ロックがファイルのあるセグメントに設定されている場合、 他のプロセスはそのセグメントまたはその 一部に共有ロックを設定できます。共有ロックは、保護している どの領域にも、他のプロセスが排他的ロックを設定するのを防止します。 ファイル記述子が読取りアクセスで開かれていない場合、 共有ロックの要求は処理を失敗します。 .Pp 排他的ロックは、保護している領域に他のプロセスが 共有ロックまたは排他的ロックを設定するのを防止します。 ファイルが書込みアクセスで開かれていない場合、 排他的ロックの要求は失敗します。 .Pp .Fa l_whence の値は .Dv SEEK_SET , .Dv SEEK_CUR , または .Dv SEEK_END で、これらは相対オフセット .Fa l_start バイトが、それぞれファイルの先頭、現在位置、 またはファイルの末尾から測定されることを指示します。 .Fa l_len の値はロックされる連続領域のバイト数です。 .Fa l_len が負の場合の結果は未定義です。 .Fa l_pid フィールドは、 ブロックするロックを保持しているプロセスのプロセス ID を返すために .Dv F_GETLK でのみ使用されます。 .Dv F_GETLK 要求が正常に完了すると .Fa l_whence の値は .Dv SEEK_SET になります。 .Pp ロックは現在のファイル末尾以降で開始したり、 ファイル末尾を越えて延長することはできますが、 ファイルの先頭より前で開始したり、 ファイルの先頭を越えて延長することはできません。 .Fa l_len が 0 に設定されている場合、ロックはそのファイルの ファイルオフセットの可能な最大の値まで延長されます。 .Fa l_whence と .Fa l_start がファイルの先頭を指しており、しかも .Fa l_len が 0 の場合はファイル全体がロックされます。 アプリケーションがファイル全体をロックしようとしているだけなら、 .Xr flock 2 システムコールの方がはるかに効率的です。 .Pp ファイル内の各バイトについて最大で 1 つのタイプのロックが設定されます。 呼び出しプロセスが .Dv F_SETLK 要求、または .Dv F_SETLKW 要求で指定した領域内に既存のロックを保持しているとき、 要求から正常に戻る前に、 指定の領域内の各バイトについて以前の ロックタイプが新しいロックタイプで置き換えられます。共有ロックと 排他的ロックのところで前述したように、 別のプロセスが指定の領域内にロックを保持しており、しかもそれらのロック のタイプが要求で指定されたタイプと競合するとき、 .Dv F_SETLK 要求は失敗し、 .Dv F_SETLKW 要求はブロックします。 .Pp このインターフェースは、System V と .St -p1003.1-88 が要求する不毛なセマンティクスに完全に従っています。 つまり、あるプロセスが保持している、 あるファイルと結び付けられたすべてのロックは、 そのファイルの記述子の .Em いずれか がそのプロセスによって クローズされたときに解除されます。 これは、サブルーチンライブラリがアクセスする可能性のあるファイル全てを アプリケーションが認識している必要がある ことを意味します。たとえば、パスワードファイルを更新する アプリケーションが、更新を行なうために パスワードファイルデータベースをロックし、 レコードを取り出すために .Xr getpwnam 3 を呼び出したとしましょう。 .Xr getpwnam 3 はパスワードデータベースをオープンし、読み取り、 そしてクローズするので、ロックは失われます。 データベースをクローズすると、ライブラリルーチン がデータベースへのロックを要求したことがない場合でさえ、 プロセスがデータベースに結び付けたすべての ロックが開放されてしまうのです。 このインタフェースの別のさほど重要でないセマンティクス上の問題は、 ロックが .Xr fork 2 関数を使用して作成された子プロセスによって継承されないことです。 .Xr flock 2 インタフェースは、はるかに合理的な last close セマンティクスを採用し、 ロックが子プロセスによって継承されるようになっています。 ライブラリを使用するときにロックの整合性を確実にする、 またはロックを子プロセスに渡したいアプリケーションについては .Xr flock 2 をお勧めします。 .Xr flock 2 と .Xr fcntl 2 ロックは同時に安全に使用できます。 .Pp プロセスの、あるファイルに結び付けられたすべてのロックは そのプロセスが終了するときに解除されます。 .Pp あるロックした領域を制御しているプロセスが、 別のプロセスがロックした領域をロックしようとして 休眠状態にされる場合に、デッドロックが発生する可能性があります。 この実装では、ロックされた領域がアンロックされるまでの休眠が デッドロックを引き起こす可能性を検出すると、 .Er EDEADLK エラーで失敗します。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn fcntl は .Va fcntl として実装されています。 .Pp スレッドライブラリでは、 .Va fcntl システムコールは .Fn _thread_sys_fcntl にアセンブルされ、 .Fn fcntl はスレッドの再スケジューリングを無効にし、読み書きについて .Fa fd をロックしてから .Fn _thread_sys_fcntl を呼び出す関数として実装されています。戻る前に .Fn fcntl は .Fa fd をアンロックし、スレッドスケジュールを有効にします。 .Sh 戻り値 処理が正常に完了した場合、返される値は .Fa cmd に応じて次のようになります。 .Bl -tag -width F_GETOWNX -offset indent .It Dv F_DUPFD 新しいファイル記述子 .It Dv F_GETFD フラグの値 (下位ビットだけが定義されます) .It Dv F_GETFL フラグの値 .It Dv F_GETOWN ファイル記述子所有者の値 .It その他 \-1 以外の値 .El .Pp そうでない場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn fcntl は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EAGAIN 引数 .Fa cmd は .Dv F_SETLK であり、ロックのタイプ -.Fa (l_type) +.Pq Fa l_type は共有ロック -.Dv (F_RDLCK) +.Pq Dv F_RDLCK 、または 排他的ロック -.Dv (F_WRLCK) +.Pq Dv F_WRLCK で、ロックされるはずのファイルの セグメントは既に別のプロセスによって排他的に ロックされています。または、タイプが排他的なロックで、 ロックされるファイルのセグメントの一部が 既に別のプロセスによって共有ロックまたは排他的ロックされています。 .It Bq Er EBADF .Fa fildes は有効なオープンファイル記述子ではありません。 .Pp 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW で、かつロックタイプ -.Fa (l_type) +.Pq Fa l_type が共有ロック -.Dv (F_RDLCK) +.Pq Dv F_RDLCK のとき、 .Fa fildes は読取り用に開かれた有効なファイル記述子ではありません。 .Pp 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW で、かつロックタイプ -.Fa (l_type) +.Pq Fa l_type が排他的ロック -.Dv (F_WRLCK) +.Pq Dv F_WRLCK のとき、 .Fa fildes は書込み用に開かれた有効なファイル記述子ではありません。 .It Bq Er EDEADLK 引数 .Fa cmd が .Dv F_SETLKW であり、デッドロック条件が検出されました。 .It Bq Er EINTR 引数 .Fa cmd が .Dv F_SETLKW であり、関数がシグナルによって割り込まれれました。 .It Bq Er EINVAL .Fa cmd が .Dv F_DUPFD で、 .Fa arg が負であるかまたは許容される最大値より大きくなっています .Pf ( Xr getdtablesize 2 を参照)。 .Pp 引数 .Fa cmd が .Dv F_GETLK , .Dv F_SETLK , または .Dv F_SETLKW で、 .Fa arg が指すデータが有効でありません。または .Fa fildes が、ロックをサポートしないファイルを参照しています。 .It Bq Er EMFILE 引数 .Fa cmd が .Dv F_DUPFD であり、プロセスについて許容される最大数までファイル記述子が 既に使用されています。 .Fa arg で指定された以上のファイル記述子は利用できません。 .It Bq Er ENOLCK 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW であり、ロック要求またはアンロック要求を満たすことによって、 システムが課した限界を越える数のロックされた領域がシステム内に できてしまいます。 .It Bq Er EPERM .Fa cmd は、 .Dv F_SETOWN であり、引数として指定されたプロセス ID またはプロセスグループ は、呼び出し側と異なるセッション内にあります。 .It Bq Er ESRCH .Fa cmd は .Dv F_SETOWN であり、引数として指定されたプロセス ID が使用されていません。 .El .Pp さらに、 .Fa fd が (ソケット上で開いている記述子とは反対に) 端末デバイス上で開いている記述子を参照する場合、 .Fa cmd で .Dv F_SETOWN を指定すると .Xr tcsetpgrp 3 と同じ理由で処理を失敗する可能性があり、 .Xr tcgetpgrp 3 で述べたような 理由で .Fa cmd で .Dv F_GETOWN を指定した場合に処理に失敗する可能性があります。 .Sh 関連項目 .Xr close 2 , .Xr execve 2 , .Xr flock 2 , .Xr getdtablesize 2 , .Xr open 2 , .Xr sigvec 2 , .Xr tcgetpgrp 3 , .Xr tcsetpgrp 3 .Sh 歴史 .Fn fcntl 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fhopen.2 b/ja_JP.eucJP/man/man2/fhopen.2 index cc8f662cee..b5ee433b00 100644 --- a/ja_JP.eucJP/man/man2/fhopen.2 +++ b/ja_JP.eucJP/man/man2/fhopen.2 @@ -1,139 +1,139 @@ .\" %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. .\" .\" This software was written by William Studenmund of the .\" Numerical Aerospace Similation Facility, NASA Ames Research Center. .\" .\" 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. Neither the the name of the National Aeronautics & Space Administration .\" 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 NATIONAL AERONAUTICS & SPACE ADMINISTRATION .\" ``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 ADMINISTRATION OR CONTRIB- .\" UTORS 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. .\"/ .Dd June 29, 1999 .Dt FHOPEN 2 .Os .Sh 名称 .Nm fhopen , .Nm fhstat , .Nm fhstatfs .Nd ファイルハンドルによるファイルアクセス .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .Ft int .Fn fhopen "const fhandle_t *fhp" "int flags" .Ft int .Fn fhstat "const fhandle_t *fhp" "struct stat *sb" .Ft int .Fn fhstatfs "const fhandle_t *fhp" "struct statfs *buf" .Sh 解説 これらの関数はファイルハンドル .Fa fhp で渡されたファイルにアクセスする手段を提供します。 この方法はディレクトリのアクセス制限をバイパスするので、 これらのシステムコールの使用はスーパユーザに限定されています。 .Pp .Fn fhopen は .Fa fhp が参照するファイルを .Fa flags で指定にしたがって読み出し / 書き込み / 読み書き用にオープンし、 呼び出したプロセスにファイル記述子を返します。 .Fa flags は、 .Xr open 2 の呼び出す時に使われる各種フラグの .Em or をとって指定します。 ただし、フラグのうち .Dv O_CREAT は使えません。 .Pp .Fn fhstat と .Fn fhstatfs はオープンされたファイルではなく、 .Fa fhp によって指し示されたファイルの情報を返すことを除いて .Xr fstat 2 と .Xr fstatfs 2 呼び出しと同等の機能を提供します。 .Sh 戻り値 処理が正常に完了すると、 .Fn fhopen はオープンされたファイルの記述子を返します。 .Fn fhstat と .Fn fhstatfs は 0 を返します。 そうでない場合は -1 が返され、エラーを示すために .Va errno が 設定されます。 .Sh エラー .Xr open 2 , .Xr fstat 2 , .Xr fstatfs 2 のそれぞれの返すエラーに加えて .Fn fhopen , .Fn fhstat , .Fn fhstatfs は次のエラーを返します。 .Bl -tag -width Er .It Bq Er EINVAL .Fn fhopen が .Dv O_CREAT をセットされて呼び出されました。 .It Bq Er ESTALE ファイルハンドル .Fa fhp はもう有効ではありません。 .El .Sh 関連項目 .Xr getfh 2 , .Xr open 2 , .Xr fstat 2 , .Xr fstatfs 2 .Sh 歴史 関数 .Fn fhopen , .Fn fhstat , .Fn fhstatfs は .Nx 1.5 で最初に登場しました。Alfred Perlstein が .Fx 4.0 に移植しました。 .Sh 作者 このマニュアルページは .An William Studenmund によって NetBSD 用に書かれました。 diff --git a/ja_JP.eucJP/man/man2/flock.2 b/ja_JP.eucJP/man/man2/flock.2 index 62b49797a8..f6f0edcce2 100644 --- a/ja_JP.eucJP/man/man2/flock.2 +++ b/ja_JP.eucJP/man/man2/flock.2 @@ -1,180 +1,180 @@ .\" 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. .\" .\" @(#)flock.2 8.2 (Berkeley) 12/11/93 .\" %FreeBSD: src/lib/libc/sys/flock.2,v 1.8.2.4 2000/12/29 14:44:52 ru Exp % .\" .Dd December 11, 1993 .Dt FLOCK 2 .Os BSD 4.2 .Sh 名称 .Nm flock .Nd "開いたファイル上の問合せ型ロックを適用または除去する" .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd "#define LOCK_SH 0x01 /* 共有ファイルロック */" .Fd "#define LOCK_EX 0x02 /* 排他的ファイルロック */" .Fd "#define LOCK_NB 0x04 /* ロックするときにブロックしない */" .Fd "#define LOCK_UN 0x08 /* ファイルをアンロックする */" .Ft int .Fn flock "int fd" "int operation" .Sh 解説 flock() は、ファイル記述子 .Fa fd に対応するファイル上の .Em 問合せ型 ロックを適用または除去します。 ロックを適用するには、パラメータの .Fa operation に .Dv LOCK_SH または .Dv LOCK_EX のいずれかと、必要であれば .Dv LOCK_NB を加えて指定します。 既存のロックをアンロックする場合は .Dv operation を .Dv LOCK_UN にしてください。 .Pp 問合せ型ロックは、協同するプロセス間での一貫したファイル操作を 可能にしますが、ファイルの一貫性を保証する ものではありません (すなわち、プロセスは問合せ型ロックを使用せずに ファイルにアクセスできるので、その結果一貫性がなくなる可能性があります)。 .Pp ロックメカニズムは .Em 共有 ロックと .Em 排他的 ロックという 2 つのタイプのロックを提供します。 いつでも複数の共有ロックを 1 つのファイルに適用できます。しかし、 同時に 1 つのファイルに複数の排他的ロック、 または共有ロックと排他的ロックの両方を適用することはできません。 .Pp 適切なロックのタイプを指定するだけで、共有ロックは排他的ロックに .Em アップグレード でき、排他的ロックを共有ロックに .Em ダウングレード できます。 その結果として前のロックは解放されて 新しいロックが適用されます (他のプロセスがロックを取得し 解放した後かもしれません)。 .Pp 既にロックされているオブジェクトについてロックを要求すると、 ロックが獲得できるまで呼び出し側はブロックされます。ただし .Dv LOCK_NB が .Fa operation に含まれる場合はブロックされません。代わりに呼び出しが失敗し、 エラー .Er EWOULDBLOCK が返されます。 .Sh 注 ロックはファイルにかけられるものであって、 ファイル記述子にかけられるものではありません。 すなわち、 .Xr dup 2 または .Xr fork 2 によって複製されたファイル記述子は、 ロックの複数のインスタンスとはならずに、1 つのロックへの複数の 参照になります。あるファイルについてのロックを保持しているプロセスが フォークし、子プロセスが明示的にその ファイルをアンロックする場合、親プロセスはそのロックを失います。 .Pp ロックを待ってブロックしているプロセスはシグナルで起こされるかもしれません。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn flock は .Va flock システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va flock システムコールは .Fn _thread_sys_flock にアセンブルされ、 .Fn flock は、読み書きについて .Fa fd をロックしてから、 .Fn _thread_sys_flock を呼び出す関数として 実装されています。戻る前に .Fn flock は .Fa fd をアンロックします。 .Sh 戻り値 操作が正常に完了した場合は 0が返されます。 エラーの場合は -1 が返され、 エラーコードはグローバル変数 .Va errno に残されます。 .Sh エラー .Fn flock 呼び出しは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EWOULDBLOCK ファイルはすでに .Dv LOCK_NB オプションが指定された状態でロックされています。 .It Bq Er EBADF 引数 .Fa fd が無効な記述子を指しています。 .It Bq Er EINVAL 引数 .Fa fd がファイル以外のオブジェクトを参照しています。 .It Bq Er EOPNOTSUPP 引数 .Fa fd がファイルのロックをサポートしないオブジェクトを参照しています。 .El .Sh 関連項目 .Xr close 2 , .Xr dup 2 , .Xr execve 2 , .Xr fork 2 , .Xr open 2 .Sh 歴史 .Fn flock 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fsync.2 b/ja_JP.eucJP/man/man2/fsync.2 index 66bc937599..19c317e982 100644 --- a/ja_JP.eucJP/man/man2/fsync.2 +++ b/ja_JP.eucJP/man/man2/fsync.2 @@ -1,105 +1,105 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)fsync.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/fsync.2,v 1.6.2.5 2000/12/29 14:44:52 ru Exp % .\" .Dd June 4, 1993 .Dt FSYNC 2 .Os BSD 4.2 .Sh 名称 .Nm fsync .Nd "ファイルに変更を同期する" .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn fsync "int fd" .Sh 解説 .Fn fsync によって、 .Fa fd の修正されたすべてのデータと属性が永続的なストレージデバイスに移動されます。 これによって、対応するファイルに関するバッファのすべての メモリ上のコピーで、修正された物がディスクに書き込まれる結果になるのが 普通です。 .Pp .Fn fsync は、ファイルが既知の状態にあることを要求するプログラムによって 使用される必要があります。たとえば、簡単なトランザクション機能の構築です。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn fsync は .Va fsync システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va fsync システムコールは .Fn _thread_sys_fsync にアセンブルされ、 .Fn fsync は、読取りと書込みについて .Fa fd をロックしてから .Fn _thread_sys_fsync を呼び出す関数として実装されています。戻る前に .Fn fsync は .Fa fd をアンロックします。 .Sh 戻り値 正常に完了すると値 0 が返されます。値 -1 はエラーを示します。 .Sh エラー .Fn fsync は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EBADF .Fa fd が有効な記述子ではありません。 .It Bq Er EINVAL .Fa fd がファイルではなくソケットを参照しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr sync 2 , .Xr syncer 4 , .Xr sync 8 .Sh 歴史 .Fn fsync 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getdirentries.2 b/ja_JP.eucJP/man/man2/getdirentries.2 index 0ece8f5e09..6d04e7674c 100644 --- a/ja_JP.eucJP/man/man2/getdirentries.2 +++ b/ja_JP.eucJP/man/man2/getdirentries.2 @@ -1,200 +1,200 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)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 .Os .Sh 名称 .Nm getdirentries , .Nm getdents .Nd "ファイルシステムに独立なフォーマットのディレクトリエントリを取得する" .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn getdirentries "int fd" "char *buf" "int nbytes" "long *basep" .Ft int .Fn getdents "int fd" "char *buf" "int nbytes" .Sh 解説 .Fn getdirentries 関数と .Fn getdents 関数は、ファイル記述子 .Fa fd が参照するディレクトリから .Fa buf が指すバッファ内に、ファイルシステムに独立なフォーマットの ディレクトリエントリを読取ります。 最高で .Fa nbytes までのデータが転送されます。 .Fa nbytes 引数は、ファイルに対応するブロックサイズ以上である必要があります。 .Xr stat 2 を参照してください。このサイズより小さいバッファでは、 これらの関数をサポートしない可能性のあるファイルシステムがあります。 .Pp バッファ内のデータは .Em dirent 構造体の連続で、それぞれ次のエントリが入っています。 .Bd -literal -offset indent u_int32_t d_fileno; u_int16_t d_reclen; u_int8_t d_type; u_int8_t d_namlen; char d_name[MAXNAMELEN + 1]; /* 下記を参照 */ .Ed .Pp .Fa d_fileno エントリは、ファイルシステム内の異なるファイル毎に一意の数値です。 ハードリンクでリンクされたファイル .Pf ( Xr link 2 を参照) は同じ .Fa d_fileno を持ちます。 .Fa d_reclen エントリは、ディレクトリレコードの 長さ (バイト単位) です。 .Fa d_type エントリは、ディレクトリレコードが指すファイルのタイプです。 ファイルタイプの値は .Fa 内に定義されます。 .Fa d_name エントリにはヌルで終端されたファイル名が 入っています。 .Fa d_namlen エントリは、ヌルバイトを除いたファイル名の長さを示します。それゆえ、 .Fa d_name の実際のサイズは 1 から .Dv MAXNAMELEN \&+ 1 の間のいずれかの値になります。 .Pp エントリは余分のスペースで分離されているかもしれません。 .Fa d_reclen エントリは、 .Fa dirent 構造体の開始点から次の構造体 がある場合はその構造体へのオフセットとして使用されます。 .Pp 実際に転送されたバイト数が返されます。 .Fa fd に関連づけられた現在の位置を示すポインタは、 エントリの次のブロックに設定されます。ポインタは .Fn getdirentries または .Fn getdents によって返されるバイト数分だけ進められるとは限りません。 ディレクトリの終わりに到達した場合は、値 0 が返されます。 .Pp .Fn getdirentries 関数は、読み込まれたブロック位置を .Fa basep が指す場所に書込みます。 代わりに .Xr lseek 2 によって現在の位置ポインタを設定、取得できます。 現在の位置ポインタは、 .Xr lseek 2 が返す値、 .Fa basep -が指す場所に返される値 ( -.Ns Fn getdirentries +が指す場所に返される値 +.Pf ( Fn getdirentries のみ)、または 0 のいずれかにのみ設定するべきです。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn getdirentries は .Va getdirentries システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va getdirentries システムコールは .Fn _thread_sys_getdirentries にアセンブルされ、 .Fn getdirentries は、読み書きについて .Va fd をロックしてから .Fn _thread_sys_getdirentries を呼び出す関数として実装されています。戻る前に、 .Fn getdirentries は .Fa fd をアンロックします。 .Sh 戻り値 処理が正常に完了すると、実際に転送されたバイト数が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn getdirentries は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EBADF .Fa fd が読取り用に開かれた有効なファイル記述子ではありません。 .It Bq Er EFAULT .Fa buf または .Fa basep のどちらかが、割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINVAL .Fa fd によって参照されるファイルがディレクトリでないか、 .Fa nbytes がディレクトリエントリまたはエントリのブロックを返すのには小さすぎます。 あるいは、現在の位置ポインタが無効です。 .It Bq Er EIO ファイルシステムに読み書きしている間に .Tn I/O (入出力)エラーが発生しました。 .El .Sh 関連項目 .Xr lseek 2 , .Xr open 2 .Sh 歴史 .Fn getdirentries 関数は .Bx 4.4 ではじめて登場しました。 .Fn getdents 関数は .Fx 3.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getlogin.2 b/ja_JP.eucJP/man/man2/getlogin.2 index 93ee2c2d67..d9e838f941 100644 --- a/ja_JP.eucJP/man/man2/getlogin.2 +++ b/ja_JP.eucJP/man/man2/getlogin.2 @@ -1,182 +1,197 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)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 .Os BSD 4.4 .Sh 名称 .Nm getlogin , .Nm getlogin_r , .Nm setlogin .Nd ログイン名を取得 / 設定 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft char * .Fn getlogin void .Fd #include -.Ft char * +.Ft int .Fn getlogin_r "char *name" "int len" .Ft int .Fn setlogin "const char *name" .Sh 解説 .Fn getlogin ルーチンは、 .Fn setlogin で設定した現在のセッションに対応する ユーザのログイン名を返します。 通常、名前はセッションが作成された時点でログインシェルに対応し、 ログインシェルから派生する全てのプロセスに継承されます (これらのプロセスが別のユーザ ID を想定している場合、たとえば、 .Xr su 1 が使用されるときでも該当します)。 .Pp .Fn getlogin_r は .Fn getlogin と同様のサービスを提供しますが、 呼び出し側は結果を保持するための長さ .Fa len バイトのバッファ .Fa name を用意しなければなりません。バッファは少なくとも .Dv MAXLOGNAME バイトの長さがあるべきです。 .Pp .Fn setlogin は、現在のセッションに対応するユーザのログイン名を .Fa name に対応させます。 この呼び出しはスーパユーザに制限されており、 新しいセッションがユーザのために 作成されるときにだけ使用されるのが普通です (たとえば、ログイン時、またはリモートシェルが 起動されるときです)。 .Pp -.Em 注釈: -`セッション' ごとに 1 つの `ログイン名' しかありません。 +.Em 注釈 : +セッションごとに 1 つのログイン名しかありません。 .Pp プロセスが、確実に親のセッションから切り離されるような 適切なステップを取った後にのみ、 .Fn setlogin が呼び出されるようにすることは .Em 非常に 重要です。 .Fn setsid システムコール を行なうのがこれをする .Em 唯一の 方法です。 .Fn daemon ライブラリは .Fn setsid を呼び出しますが、これは制御端末を切り離して フォークでバックグラウンドに入る理想的な方法です。 .Pp 特に、 -.Fn ioctl ttyfd TIOCNOTTY ... +.Fn ioctl ttyfd TIOCNOTTY ...\& または -.Fn setpgrp ... +.Fn setpgrp ...\& では十分では .Em ありません。 .Pp 親プロセスがいったん .Fn setsid 呼び出しを行なえば、セッションリーダでない そのプロセスの子が .Fn setlogin を行なうことも受け入れられますが、親を含めてセッション内のすべての プロセスが同時にログイン名を変更されることに注意してください。 .Pp これは特権を継承する従来の UNIX の動作と同じではありません。 .Pp .Fn setlogin システムコールはスーパユーザに制限されているので、セキュリティ侵犯を 防止するために (他の特権のあるすべてのプログラムと同じように) プログラマが適切な注意を払うものだと仮定しています。 .Sh 戻り値 .Fn getlogin の呼び出しが成功すると、静的バッファ内のヌルで終端された文字列への ポインタが返されます。 -.Fn getlogin_r -の呼び出しが成功すると、呼び出し側が渡したバッファへのポインタが -返されます。 -名前が設定されていない場合は、どちらも +名前が設定されていない場合は、 .Dv NULL が返されます。 +.Fn getlogin_r +の呼び出しが成功すると、0 が返されます。失敗するとエラー番号 +が返されます。 .Pp .Fn setlogin の呼び出しが成功すると 値 0 が返されます。 .Fn setlogin -が処理を失敗すると値 -1 が返され、エラーコードがグローバル位置 +が処理を失敗すると値 -1 が返され、エラーコードがグローバル変数 .Va errno に設定されます。 .Sh エラー これらの呼び出しによって以下のエラーが返される可能性があります。 .Bl -tag -width Er .It Bq Er EFAULT .Fa name パラメータで無効なアドレスを与えました。 .It Bq Er EINVAL .Fa name パラメータが長すぎる文字列を指しています。ログイン名は .Pf ( Ao Pa sys/param.h Ac の ) .Dv MAXLOGNAME 文字までに制限されます。現時点ではヌルを含めて 17 文字です。 .It Bq Er EPERM ログイン名を設定しようとした呼び出し元が スーパユーザではありませんでした。 +.It Bq Er ERANGE +返される結果よりバッファのサイズが小さすぎます。 .El .Sh 関連項目 .Xr setsid 2 , .Xr daemon 3 .Sh バグ システムの以前のバージョンでは、 .Fn getlogin はプロセスがログイン端末に対応していない限り 処理に失敗しました。現在では、 .Pf ( Fn setlogin を使用して) プロセスに制御端末がないときでも getlogin は正常に完了します。初期のバージョンでは、 .Fn getlogin が返す値はユーザ ID をチェックせずには 信頼することができませんでした。 移植性の高いプログラムはおそらくまだこのチェックを行なっているはずです。 .Sh 歴史 .Fn getlogin 関数は .Bx 4.4 ではじめて登場しました。 +.Fn getlogin_r +の戻り値は +.St -p1003.1-96 +に準拠するために +.Fx +の初期のバージョンから変更されました。 +.Sh 規格 +.Fn getlogin +と +.Fn getlogin_r +は +.St -p1003.1-96 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/getpeername.2 b/ja_JP.eucJP/man/man2/getpeername.2 index 56c45dea09..f9fb0a7c9d 100644 --- a/ja_JP.eucJP/man/man2/getpeername.2 +++ b/ja_JP.eucJP/man/man2/getpeername.2 @@ -1,115 +1,115 @@ .\" 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.9.2.4 2000/08/23 00:45:18 jhb Exp % .\" .Dd June 4, 1993 .Dt GETPEERNAME 2 .Os BSD 4.2 .Sh 名称 .Nm getpeername .Nd 接続されたピア (通信相手) の名前の取得 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn getpeername "int s" "struct sockaddr *name" "socklen_t *namelen" .Sh 解説 .Fn getpeername は、ソケット .Fa s に接続されたピア (通信相手) の名前を返します。 .Fa namelen パラメータには、 .Fa name が指す空間の量を示す値を入れておく必要があります。 戻る時に、これには返された名前の 実際のサイズ (バイト単位) が入れられます。 準備されたバッファが小さすぎる場合、名前は切り捨てられます。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn getpeername は .Va getpeername システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va getpeername システムコールは .Fn _thread_sys_getpeername にアセンブルされ、 .Fn getpeername は、読取りと書込みについて .Fa s をロックしてから .Fn _thread_sys_getpeername を呼び出す関数として実装されています。戻る前に .Fn getpeername は .Fa s をアンロックします。 .Sh 戻り値 呼び出しが正常に完了すると 0 が返され、処理を失敗すると -1 が返されます。 .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/getpid.2 b/ja_JP.eucJP/man/man2/getpid.2 index 5203cac4bf..197a874e1e 100644 --- a/ja_JP.eucJP/man/man2/getpid.2 +++ b/ja_JP.eucJP/man/man2/getpid.2 @@ -1,77 +1,81 @@ .\" 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. .\" .\" @(#)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 .Os BSD 4 .Sh 名称 .Nm getpid , .Nm getppid .Nd 親または呼び出しプロセスの識別子を取得 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft pid_t .Fn getpid void .Ft pid_t .Fn getppid void .Sh 解説 .Fn getpid は呼び出しプロセスのプロセス ID を返します。 -ID はユニークであることが保証されており、 -一時的なファイルの名前を作成するのに便利です。 +ID はユニークであることが保証されていますが、 +テンポラリファイル名の作成に利用しては +.Em いけません。 +セキュリティ上の理由については、 +.Xr mkstemp 3 +を参照してください。 .Pp .Fn getppid は呼び出しプロセスの親のプロセス ID を返します。 .Sh エラー .Fn getpid 関数と .Fn getppid 関数は必ず正常に完了するので、エラーを示すための戻り値はありません。 .Sh 関連項目 .Xr gethostid 3 .Sh 規格 .Fn getpid 関数と .Fn getppid 関数は .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn getpid 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getsid.2 b/ja_JP.eucJP/man/man2/getsid.2 index 51e64d688d..ecb28abb2b 100644 --- a/ja_JP.eucJP/man/man2/getsid.2 +++ b/ja_JP.eucJP/man/man2/getsid.2 @@ -1,83 +1,81 @@ .\" Copyright (c) 1997 Peter Wemm .\" .\" 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. .\" .\" 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/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 .Os BSD 4.2 .Sh 名称 .Nm getsid .Nd プロセスセッションを得る .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft pid_t .Fn getsid "pid_t pid" .Sh 解説 .Fn getsid は .Fa pid によって識別されるプロセスのセッション ID を 返します。 .Fa pid が 0 の場合、 .Fn getsid は現在のプロセスのセッション ID を返します。 .Sh 戻り値 処理が正常に完了すると、関数 .Fn getsid は指定されたプロセスのセッション ID を返します。 そうでない場合は値 -1 が返され、エラーを示すために .Fa errno が設定されます。 .Sh エラー .Fn getsid は次の場合を除いて正常に完了します。 .Bl -tag -width Er .It Bq Er ESRCH .Fa pid で指定されたプロセス ID を持つプロセスがない場合 .El .Pp 実装によっては、この関数呼び出しを呼び出しプロセスと 同じセッション ID を持つプロセスに制限する可能性が あることに注意してください。 .Sh 関連項目 .Xr getpgid 2 , .Xr getpgrp 2 , .Xr setpgid 2 , .Xr setsid 2 , .Xr termios 4 .Sh 歴史 .Fn getsid 関数は .Fx 3.0 ではじめて登場しました。 .Fn getsid -.\" jp-man: getsid.2 の原文は setsid になっていました。 -.\" 2001/03/09 send-pr 済 (docs/25626) 関数呼び出しは .At V での使用法に由来しています。 diff --git a/ja_JP.eucJP/man/man2/getsockname.2 b/ja_JP.eucJP/man/man2/getsockname.2 index 6f6542c2f3..491004ad01 100644 --- a/ja_JP.eucJP/man/man2/getsockname.2 +++ b/ja_JP.eucJP/man/man2/getsockname.2 @@ -1,117 +1,117 @@ .\" 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.9.2.4 2000/08/23 00:45:18 jhb Exp % .\" .Dd June 4, 1993 .Dt GETSOCKNAME 2 .Os BSD 4.2 .Sh 名称 .Nm getsockname .Nd ソケットの名前を得る .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn getsockname "int s" "struct sockaddr *name" "socklen_t *namelen" .Sh 解説 .Fn getsockname は指定のソケットについて現在の .Fa name を返します。 .Fa namelen パラメータは、 .Fa name が指す空間の量を示すように初期化しておく必要があります。 戻る時には返された名前の実際のサイズ (バイト単位) が入ります。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn getsockname は .Va getsockname システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va getsockname システムコールは .Fn _thread_sys_getsockname にアセンブルされ、 .Fn getsockname は、読み書きについて .Fa fd をロックしてから .Fn _thread_sys_getsockname を呼び出す関数として実装されています。戻る前に .Fn getsockname は .Fa fd をアンロックします。 .Sh 戻り値 呼び出しが正常に完了すると 0 が返され、 処理に失敗すると -1 が返されます。 .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 ドメイン内のソケットにバインドされた名前にはアクセスできません。 この場合 .Xr 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 24638ba19d..550e082707 100644 --- a/ja_JP.eucJP/man/man2/getsockopt.2 +++ b/ja_JP.eucJP/man/man2/getsockopt.2 @@ -1,425 +1,425 @@ .\" 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.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 .Os BSD 4.3r .Sh 名称 .Nm getsockopt , .Nm setsockopt .Nd ソケットのオプションの取得と設定 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn getsockopt "int s" "int level" "int optname" "void *optval" "socklen_t *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 および指定のオプションは、解釈されずに、 解釈用の該当プロトコルモジュールに渡されます。 インクルードファイル .Ao Pa sys/socket.h Ac には後述するソケットレベルオプション用の定義が入っています。 他のプロトコルレベルのオプションは形式と名称がさまざまです。 マニュアルのセクション 4 の該当するエントリを参照してください。 .Pp ほとんどのソケットレベルのオプションは .Fa optval 用に .Fa int パラメータを使用します。 .Fn setsockopt の場合、ブール演算を有効にするためにはパラメータは 0 でない必要があり、 オプションを無効にする場合は 0 である必要があります。 .Dv SO_LINGER は、 .Ao Pa sys/socket.h Ac で定義された .Fa struct linger パラメータを使用します。これは、 目的の状態のオプションとリンガーインターバル (後述) を指定します。 .Dv SO_SNDTIMEO と .Dv SO_RCVTIMEO は、 .Ao Pa sys/time.h Ac で定義された .Fa 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 "待ち受けソケットでの受け取り用フィルタを設定します" .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 は出力操作についてタイムアウト値を設定するオプションです。 これは、出力操作完了の待機を制限するために使用される秒数、 マイクロ秒数を .Fa struct timeval パラメータで指定します。送信操作が 指定された時間以上ブロックされた場合、部分的なカウントで戻るか、 またはデータが送信されていない場合はエラー .Er EWOULDBLOCK で戻ります。現在の実装では、このタイマは追加の各データがプロトコルに 配信されるたびに再起動され、これはサイズが出力用の最低基準値から 最高基準値の範囲に至る出力部分に適用されることを意味します。 .Dv SO_RCVTIMEO は入力操作についてタイムアウト値を設定するオプションです。 これは入力操作完了の待機を制限するために使用される秒数、マイクロ秒数を .Fa struct timeval パラメータで指定します。現在の実装では、このタイマは 追加のデータがプロトコルによって受信されるたびに再起動されるので、 制限は実際には休止期間のタイマとなります。 追加のデータを受信することなく受信操作がこれだけの時間について ブロックされた場合、短いカウントで戻るか、 またはデータが受信されていない場合はエラー .Er EWOULDBLOCK で戻ります。 .Pp .Dv SO_ACCEPTFILTER は、ソケット上に .Xr accept_filter 9 を置きます。これにより、待ち受けしているストリームソケットに 入ってくる接続が .Xr accept 2 に渡される前にフィルタされることになります。 .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 は、アプリケーションが待ち受けソケット上に置きたいと思っている 受け取り用フィルタの名前で埋めなくてはなりません。 .Fa af_arg はオプションのパラメータで、 .Fa af_name で指定された受け取り用フィルタに渡すことができるものです。 これにより、ソケットに置かれる時にさらなる設定オプションを 提供します。 NULL を .Fa optval 中で渡すと、フィルタが削除されます。 .Pp 最後に、 .Dv SO_TYPE と .Dv SO_ERROR は .Fn getsockopt でだけ使用されるオプションです。 .Dv SO_TYPE では .Dv SOCK_STREAM のようなソケットのタイプが返ります。これは スタートアップ時にソケットを継承するようなサーバに便利です。 .Dv SO_ERROR はソケット上で延期中のエラーを返し、エラー状態をクリアします。 これは接続されたデータグラムソケット上の非同期的エラーをチェックしたり、 その他の非同期エラーをチェックするのに使用できます。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn getsockopt は .Va getsockopt システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va getsockopt システムコールは .Fn _thread_sys_getsockopt にアセンブルされ、 .Fn getsockopt は、読み書きについて .Fa s をロックしてから、 .Fn _thread_sys_getsockopt を呼び出す関数として実装されています。戻る前に .Fn getsockopt は .Fa s をアンロックします。 .Pp 非スレッドライブラリでは、 .Fn setsockopt は .Va setsockopt システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va setsockopt システムコールは .Fn _thread_sys_setsockopt にアセンブルされ、 .Fn setsockopt は、読み書きについて .Fa s をロックしてから、 .Fn _thread_sys_setsockopt を呼び出す関数として実装されています。戻る前に .Fn setsockopt は .Fa s をアンロックします。 .Sh 戻り値 呼び出しが正常に完了すると 0 が返され、処理を失敗すると -1 が返されます。 .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 がプロセスアドレス空間の有効な部分でない場合も、 このエラーが返される可能性があります。 .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 49af88bd5d..564fcda13c 100644 --- a/ja_JP.eucJP/man/man2/gettimeofday.2 +++ b/ja_JP.eucJP/man/man2/gettimeofday.2 @@ -1,129 +1,129 @@ .\" 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.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 .Os BSD 4 .Sh 名称 .Nm gettimeofday , .Nm settimeofday .Nd 日付と時刻の取得 / 設定 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .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 の指す構造体は .Ao Pa sys/time.h Ac 内に次のように定義されています。 .Pp .Bd -literal struct timeval { long tv_sec; /* 1970年1月1日からの秒数 */ long tv_usec; /* およびマイクロ秒数 */ }; struct timezone { int tz_minuteswest; /* グリニッジから西方向への偏差 */ int tz_dsttime; /* 夏時間補正のタイプ */ }; .Ed .Pp .Fa timezone 構造体は、ローカル時間帯 (グリニッジから西向きに分単位で測定) と フラグを含みます。フラグが 0 でない場合は、一年の適切な時期に 夏時間がその地域に適用されることを示します。 .Pp スーパユーザだけが時刻または時間帯を設定できます。 システムが安全モード .Pf ( Xr init 8 を参照) で実行される場合は、時刻は進めることしかできません。 この制限が課されるのは、悪意のあるスーパユーザがファイルに任意の タイムスタンプを設定するのを防止するためです。 システム時刻は、システムが安全モードにあっても .Xr adjtime 2 システムコールを使用して後方に調整できます。 .Sh 戻り値 戻り値 0 は呼び出しが正常に完了したことを示します。 戻り値 -1 はエラーが起こったことを示し、エラーコードはグローバル変数 .Va errno に保存されます。 .Sh エラー 次のエラーコードが .Va errno に設定されます。 .Bl -tag -width Er .It Bq Er EFAULT 引数アドレスが無効なメモリを参照しました。 .It Bq Er EPERM スーパユーザ以外のユーザが時刻を設定しようとしました。 .El .Sh 関連項目 .Xr date 1 , .Xr adjtime 2 , .Xr ctime 3 , .Xr clocks 7 , .Xr timed 8 .Sh 歴史 .Fn gettimeofday 関数は .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/ioctl.2 b/ja_JP.eucJP/man/man2/ioctl.2 index 54d7a67d8f..d6800f919b 100644 --- a/ja_JP.eucJP/man/man2/ioctl.2 +++ b/ja_JP.eucJP/man/man2/ioctl.2 @@ -1,142 +1,142 @@ .\" 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. .\" .\" @(#)ioctl.2 8.2 (Berkeley) 12/11/93 .\" .\" %FreeBSD: src/lib/libc/sys/ioctl.2,v 1.7.2.2 2000/05/06 13:34:14 phantom Exp % .\" .Dd December 11, 1993 .Dt IOCTL 2 .Os BSD 4 .Sh 名称 .Nm ioctl .Nd デバイスを制御する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn ioctl "int d" "unsigned long request" ... .Sh 解説 .Fn ioctl 関数は特殊ファイルの下層となっているデバイスのパラメータを操作します。 特に、キャラクタ型特殊ファイル (たとえば、端末) の多数の操作属性は .Fn ioctl で制御できます。引数 .Fa d は開いているファイル記述子である必要があります。 .Pp .Nm への 3 番めの引数は従来から .Ar "char *argp" と名前付けられています。しかし、 .Fx 3.0 での .Nm のほとんどの使用法では、3 番めの引数が .Ar caddr_t または .Ar int である必要があります。 .Pp ioctl の .Fa request は、引数が .Dq in パラメータなのか .Dq out パラメータなのかということと、引数 .Fa argp のサイズ (バイト単位) をエンコードします。 ioctl の .Fa request を指定するのに使用されるマクロと定義 はファイル .Ao Pa sys/ioctl.h Ac の中にあります。 -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリ .Fn ioctl は、 .Va ioctl システムコールとして実装されています。 .Pp スレッドライブラリの場合、 .Va ioctl システムコールは .Fn _thread_sys_ioctl にアセンブルされ、 .Fn ioctl は、読み書きについて .Va d をロックしてから .Fn _thread_sys_ioctl 呼び出す関数として実装されています。戻る前に .Fn ioctl は .Va d をアンロックします。 .Sh 戻り値 エラーが起きた場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn Ioctl は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EBADF .Fa d が有効な記述子ではありません。 .It Bq Er ENOTTY .Fa d がキャラクタ型特殊デバイスに対応していません。 .It Bq Er ENOTTY 指定された要求は記述子 .Fa d が参照する種類のオブジェクトには適用されません。 .It Bq Er EINVAL .Fa request または .Fa argp が有効ではありません。 .El .Sh 関連項目 .Xr mt 1 , .Xr execve 2 , .Xr fcntl 2 , .Xr intro 4 , .Xr tty 4 .Sh 歴史 .Fn ioctl 関数は .At v7 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kill.2 b/ja_JP.eucJP/man/man2/kill.2 index 5004da9b41..7eb9932822 100644 --- a/ja_JP.eucJP/man/man2/kill.2 +++ b/ja_JP.eucJP/man/man2/kill.2 @@ -1,150 +1,150 @@ .\" 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. .\" .\" @(#)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 .Os BSD 4 .Sh 名称 .Nm kill .Nd プロセスにシグナルを送信する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn kill "pid_t pid" "int sig" .Sh 解説 .Fn kill 関数は、 .Fa sig によって指定されたシグナルをプロセスまたはプロセスのグループである .Fa pid に送信します。 .Fa sig は、 .Xr sigaction 2 で規定されたシグナルの 1 つにすることもできますし、0 にすることもできます。 0 の場合は、エラーチェックを実行しますが、実際にシグナルは送信されません。 これを使用して .Fa pid の有効性をチェック できます。 .Pp プロセスが .Fa pid によって指定されたプロセスにシグナルを送信するパーミッションを持つためには、 受信するプロセスの実ユーザ ID または実効ユーザ ID が 送信プロセスの対応するものと一致するか、 またはユーザは該当する特権を持っている (set-user-ID で与えられた特権、 またはユーザがスーパユーザである) 必要があります。 唯一の例外はシグナル SIGCONT で、これだけは現在のプロセスの子孫に 必ず送信できます。 .Bl -tag -width Ds .\".It \&If Fa pid No \&is greater than zero : .It Fa pid No が 0 より大きい場合: .Fa sig は ID が .Fa pid に等しいプロセスに送信されます。 .\".It \&If Fa pid No \&is zero : .It Fa pid No が 0 の場合: .Fa sig はグループ ID が送信側のプロセスグループ ID と等しく、それについて プロセスがパーミッションを持っているすべてのプロセスに送信されます。これは .Xr killpg 2 の変種です。 .\".It \&If Fa pid No \&is -1 : .It Fa pid No が -1 の場合: ユーザにスーパユーザの特権がある場合、 システムプロセス .Dv ( P_SYSTEM フラグが設定されている)、ID が 1 のプロセス (通常は .Xr init 8 )、 およびシグナルを送信しているプロセスを 除くすべてのプロセスにシグナルが送信されます。 ユーザがスーパユーザでない場合、シグナルを送信しているプロセスを除く、 ユーザと同じ uid のすべてのプロセスに シグナルが送信されます。いずれかのプロセスにシグナルを送信できた場合、 エラーは返されません。 .El .Pp System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、 プロセス番号の絶対値に等しいプロセスグループ ID を持つ すべてのプロセスにシグナルが 送信されます。これは .Xr killpg 2 の変種です。 .Sh 戻り値 正常に完了すると値 0 が返されます。そうでない場合は -1 が返され、 エラーを示すように .Va errno が設定されます。 .Sh エラー .Fn Kill は次の場合に処理に失敗し、シグナルは送信されません。 .Bl -tag -width Er .It Bq Er EINVAL .Fa sig が有効なシグナル番号ではありません。 .It Bq Er ESRCH .Fa pid で指定されたプロセスに対応するプロセスが検出できません。 .It Bq Er ESRCH プロセス ID は 0 として与えられたものの、 送信プロセスにプロセスグループがありません。 .It Bq Er EPERM 送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信 プロセスの実効ユーザ ID と一致しません。 プロセスグループにシグナルを送信するとき、グループのメンバの いずれかにシグナル を送信することができない場合、このエラーが返されます。 .El .Sh 関連項目 .Xr getpgrp 2 , .Xr getpid 2 , .Xr killpg 2 , .Xr sigaction 2 , .Xr init 8 .Sh 規格 .Fn kill 関数は .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn kill 関数は .At v7 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kldstat.2 b/ja_JP.eucJP/man/man2/kldstat.2 index 3a01480696..44fdf9883d 100644 --- a/ja_JP.eucJP/man/man2/kldstat.2 +++ b/ja_JP.eucJP/man/man2/kldstat.2 @@ -1,123 +1,126 @@ .\" .\" Copyright (c) 1999 Chris Costello .\" 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. .\" .\" 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/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 .Os FreeBSD .Sh 名称 .Nm kldstat .Nd kld ファイルの状態を得る .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn kldstat "int fileid" "struct kld_file_stat *stat" .Sh 解説 .Fn kldstat 関数は、 .Fa fileid によって参照されたファイルに関する情報を .Fa stat に書込みます。 .Bd -literal struct kld_file_stat { int version; /* sizeof(linker_file_stat) に設定 */ char name[MAXPATHLEN]; int refs; int id; caddr_t address; /* ロードアドレス */ size_t size; /* バイト単位のサイズ */ }; .Ed .Pp .Bl -tag -width XXXaddress .It version このフィールドは、 .Fn kldstat 自体ではなく、 .Fn kldstat を呼び出すコードで前述した 構造体のサイズに設定します。 .It name .Fa fileid によって参照されるファイルの名前 .It refs .Fa fileid によって参照されるモジュールの数 .It id .Fa fileid で指定されたファイルの ID .It address kld ファイルのロードアドレス .It size ファイルのサイズ .El .Sh 戻り値 .Fn kldstat -は、必ず 0 を返すように見えます。 +関数は、処理に成功した場合には 0 を返します。 +失敗した場合には -1 を返し、エラーを示すために +.Va errno +を設定します。 .Sh エラー 次の場合を除いて、 .Fa fileid が参照するファイルに関する情報は .Fa stat が指す構造体に記入されます。 .Bl -tag -width Er .It Bq Er ENOENT ファイルが見つかりませんでした (おそらくロードされていないのでしょう)。 .It Bq Er EINVAL stat の .Fa version フィールドで指定されたバージョンが適切ではありません。 .Fa version フィールドに適切に記入しているのにこのエラーが起きた場合は、 ワールド、カーネル、 またはアプリケーションを再構築する必要があります。 .It Bq Er EFAULT .Fn copyout 関数で、フィールドを .Fa stat にコピーする際に問題がありました。 .El .Sh 関連項目 .Xr kldfind 2 , .Xr kldfirstmod 2 , .Xr kldload 2 , .Xr kldnext 2 , .Xr kldunload 2 , .Xr modfind 2 , .Xr modnext 2 , .Xr modstat 2 , .Xr kld 4 , .Xr kldstat 8 .Sh 歴史 .Nm kld インタフェースは .Fx 3.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kqueue.2 b/ja_JP.eucJP/man/man2/kqueue.2 index 9ee0b57f56..98a2a091d4 100644 --- a/ja_JP.eucJP/man/man2/kqueue.2 +++ b/ja_JP.eucJP/man/man2/kqueue.2 @@ -1,427 +1,471 @@ .\" Copyright (c) 2000 Jonathan Lemon .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED ``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/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 .Os .Sh 名称 .Nm kqueue , .Nm kevent .Nd カーネルイベント通知メカニズム .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include +.Fd #include .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 を削除します。 .Pp .Fn kqueue は新規のカーネルイベントキューを生成して記述子を返します。 キューは .Xr fork 2 で生成された子プロセスには継承されません。 しかしながら、 .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 の大きさを与えます。 .Fa eventlist は kevent 構造体の配列へのポインタです。 .Fa nevents は .Fa eventlist の大きさを決定します。 .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; /* このイベントの識別子 */ short filter; /* イベントのフィルタ */ u_short flags; /* kqueue のアクションフラグ */ u_int fflags; /* フィルタフラグ値 */ intptr_t data; /* フィルタデータ値 */ void *udata; /* 不透明なユーザデータ識別子 */ }; .Ed .Pp .Fa struct kevent のフィールドは以下の通りです。 .Bl -tag -width XXXfilter .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 フラグによって上書きされない限りは 自動的に有効にされます。 .It EV_ENABLE イベントがトリガされた場合に、 .Fn kevent がそのイベントを返すことを許可します。 .It EV_DISABLE イベントを無効にします。これにより .Fn kevent はそのイベントを返さなくなります。 フィルタ自身は無効にされません。 .It EV_DELETE kqueue からイベントを削除します。 ファイル記述子に結び付けられているイベントは、 その記述子の最後のクローズ時に自動的に削除されます。 .It EV_ONESHOT -フィルタが最初トリガされた時にのみ、イベントが返るようにします。 +フィルタが最初トリガされたときにのみ、イベントが返るようにします。 ユーザがイベントを kqueue から回収した後で、そのイベントは削除されます。 .It EV_CLEAR ユーザがイベントを回収した後に、その状態をリセットします。 これは現在の状態ではなく、状態の変化を報告するフィルタに有用です。 幾つかのフィルタは内部でこのフラグを自動的にセットしている かもしれないことに注意してください。 .It EV_EOF -フィルタはそのフィルタ特有の EOF 状態であることをを示すために -このフラグをセットすることができます。 +そのフィルタ固有の EOF 状態であることをを示すために、 +フィルタがこのフラグをセットすることがあります。 .It EV_ERROR 後述の .Sx 戻り値 を参照してください。 .El .Pp -あらかじめ定義されたシステムフィルタを以下に示します。 +あらかじめ定義されたシステムフィルタを次に示します。 引数は kevent 構造体の .Va fflags および .Va data フィールドを経由してやりとりすることができます。 .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 プロセスが終了しました。 .It NOTE_FORK プロセスが .Fn fork を呼びました。 .It NOTE_EXEC プロセスが .Xr execve 2 -または類似の呼び出しを通して、新規のプロセスを実行しました。 +または類似の呼び出しにより、新規のプロセスを実行しました。 .It NOTE_TRACK .Fn fork -の呼び出しを通して、プロセスを追跡します。 +の呼び出しを越えて、プロセスを追跡します。 親プロセスは .Va fflags フィールドに NOTE_TRACK をセットして戻り、一方、子プロセスは .Va fflags に NOTE_CHILD を .Va data に親プロセスの PID をセットし戻ります。 .It NOTE_TRACKERR -このフラグは、通常は資源の制限のためシステムが子プロセスへのイベントを -結び付けることができなかった時に戻ります。 +このフラグは、システムが子プロセスへのイベントを +結び付けることができなかったときに戻ります。 +通常、これは資源の制限により生じます。 .El .Pp -戻る時に、 +戻るときに、 .Va fflags はフィルタをトリガしたイベントが入っています。 .It EVFILT_SIGNAL -監視するシグナル番号を識別子として取り、 -与えられたシグナルがプロセスに配送された時に戻ります。 +監視するシグナル番号を識別子に引数として取ります。 +与えられたシグナルがプロセスに配送されたときに戻ります。 これは .Fn signal および .Fn sigaction の仕組みと共存し、低い優先順位を持っています。 たとえそのシグナルが SIG_IGN とマークされていたとしても、 フィルタはプロセスに配送されようとしたシグナル全てを記録します。 通常のシグナル配送処理の後に、イベント通知が発生します。 .Va data には .Fn kqueue を最後に呼び出してからのシグナル発生の回数が返ります。 このフィルタは内部で自動的に EV_CLEAR フラグをセットします。 .El .Sh 戻り値 .Fn kqueue は新規のカーネルイベントキューを生成し、ファイル記述子を返します。 カーネルイベントキューの生成時にエラーがあった場合には、 -値 -1 が返されて errno をセットします。 +値 -1 が返されて errno がセットされます。 .Pp .Fn kevent -は最大 -.Fa nevents -で与えられた値までの +は .Fa eventlist に配列されているイベントの数を返します。 +この数は、最大 +.Fa nevents +で与えられた値までです。 .Fa changelist -の要素の処理中にエラーが発生した場合と、 +の要素の処理中にエラーが発生し、かつ .Fa eventlist -に十分な余地が無い場合には、 +に十分な余地がある場合には、 .Va flags に .Dv EV_ERROR がセットされ、 .Va data にシステムエラーがセットされたイベントが、 .Fa eventlist に置かれます。 さもなければ、 .Dv -1 が返され、 .Dv errno -がエラー状態を示す為にセットされます。 +がエラー状態を示すためにセットされます。 時間切れの場合には、 .Fn kevent は 0 を返します。 .Sh エラー .Fn kqueue 関数は以下の場合に失敗します。 .Bl -tag -width Er .It Bq Er ENOMEM カーネルがカーネルキューのための十分なメモリの割り当てに失敗しました。 .It Bq Er EMFILE プロセスの記述子テーブルが満杯です。 .It Bq Er ENFILE システムファイルテーブルが満杯です。 .El .Pp .Fn kevent 関数は以下の場合に失敗します。 .Bl -tag -width Er .It Bq Er EACCES プロセスがフィルタを登録する権限を持っていません。 .It Bq Er EFAULT .Va kevent 構造体の読み込みまたは書き込みでエラーがありました。 .It Bq Er EBADF 指定された記述子が有効ではありません。 .It Bq Er EINTR 時間切れ前や、戻るための何らかのイベントが kqueue に 置かれる前に、シグナルが配送されました。 .It Bq Er EINVAL 指定されたタイムリミットまたはフィルタが無効です。 .It Bq Er ENOENT 修正または削除されるべきイベントが見つかりません。 .It Bq Er ENOMEM イベント登録のためのメモリがありません。 .It Bq Er ESRCH -指定された結び付けられるべきプロセスが存在しません。 +結び付けるために指定したプロセスが存在しません。 .El .Sh 関連項目 .Xr aio_error 2 , .Xr aio_read 2 , .Xr aio_return 2 , .Xr poll 2 , .Xr read 2 , .Xr select 2 , .Xr sigaction 2 , .Xr write 2 , .Xr signal 3 .Sh 歴史 .Fn kqueue および .Fn kevent 関数は .Fx 4.1 で初めて登場しました。 .Sh 作者 .Fn kqueue -システムとこのマニュアルページは +システムと、このマニュアルページは .An Jonathan Lemon Aq jlemon@FreeBSD.org が書きました。 .Sh バグ -現在は、UFS ファイルシステム以外の全てに属する +現在は、UFS ファイルシステムに属さない .Xr vnode 9 -を監視することが出来ません。 +を監視することができません。 diff --git a/ja_JP.eucJP/man/man2/listen.2 b/ja_JP.eucJP/man/man2/listen.2 index ec22fa8045..51d8a4287a 100644 --- a/ja_JP.eucJP/man/man2/listen.2 +++ b/ja_JP.eucJP/man/man2/listen.2 @@ -1,142 +1,142 @@ .\" 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. .\" .\" 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 .Os BSD 4.2 .Sh 名称 .Nm listen .Nd ソケット上の接続をリスンする .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn listen "int s" "int backlog" .Sh 解説 .Xr socket 2 で最初にソケットが作成され、 着信接続を受け入れる意思および着信接続用の待ち行列限界が .Fn listen で指定された後、接続が .Xr accept 2 で受け入れられます。 .Fn listen 呼び出しは、タイプが .Dv SOCK_STREAM または .Dv SOCK_SEQPACKET のソケットにだけ適用されます。 .Pp .Fa backlog パラメータは、延期中の接続の待ち行列を伸ばす際の最大長を定義します。 -待ち行列が一杯のときに接続要求が到着すると、クライアントは +待ち行列が満杯のときに接続要求が到着すると、クライアントは .Er ECONNREFUSED を示すエラーを受信する可能性があります。 または下層のプロトコルが再送信をサポートする場合は、 再試行によって成功する可能性に期待して要求は無視されるかもしれません。 .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 は .Va listen システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va listen システムコールは .Fn _thread_sys_listen にアセンブルされ、 .Fn listen は読み書きについて .Fa s をロックしてから、 .Fn _thread_sys_listen を呼び出す関数として実装されています。戻る前に .Fn listen は .Fa s をアンロックします。 .Sh 戻り値 戻り値 0 は処理の成功を示し、-1 はエラーを示します。 .Sh エラー .Fn listen は次の場合に処理を失敗します。 .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ENOTSOCK 引数 .Fa s がソケットではありません。 .It Bq Er EOPNOTSUPP ソケットが、 .Fn listen をサポートするタイプではありません。 .El .Sh 関連項目 .Xr accept 2 , .Xr connect 2 , .Xr socket 2 , .Xr sysctl 3 , .Xr sysctl 8 .Sh 歴史 .Fn listen 関数は .Bx 4.2 で登場しました。 実行時に最大 .Fa backlog を設定できる機能、および許容できる最大値を指定する場合に負の .Fa backlog を使用する機能は .Fx 2.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/lseek.2 b/ja_JP.eucJP/man/man2/lseek.2 index 767d7bd124..e696b4cfac 100644 --- a/ja_JP.eucJP/man/man2/lseek.2 +++ b/ja_JP.eucJP/man/man2/lseek.2 @@ -1,131 +1,131 @@ .\" 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. .\" .\" @(#)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 .Os BSD 4 .Sh 名称 .Nm lseek .Nd 読取り / 書込みファイルオフセット位置を変更する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft off_t .Fn lseek "int fildes" "off_t offset" "int whence" .Sh 解説 .Fn lseek 関数は、ディレクティブ .Fa whence に従ってファイル記述子 .Fa fildes のオフセットを引数 .Fa offset に移動します。引数 .Fa fildes はオープンファイル記述子でなければなりません。 .Fn lseek は、次のようにファイル記述子 .Fa fildes に対応するファイル位置ポインタを移動します。 .Bl -item -offset indent .It .Fa whence が .Dv SEEK_SET の場合、オフセットは .Fa offset バイトに設定されます。 .It .Fa whence が .Dv SEEK_CUR の場合、オフセットは現在の位置に .Fa offset バイトを加算したものに設定されます。 .It .Fa whence が .Dv SEEK_END の場合、オフセットはファイルのサイズに .Fa offset バイトを加算したものになります。 .El .Pp .Fn lseek 関数によって、ファイルオフセットをファイルの既存のファイルの終り (EOF) を越えるところに設定できます。 後にデータがこの点に書きこまれると、それ以後のギャップ内のデータに対する読取りは (データが実際にギャップ内に書き込まれるまで) データとして 0 を返します。 .Pp シークできないデバイスもあります。そのようなデバイスに対応するポインタの 値は未定義になります。 .Sh 戻り値 処理が正常に完了すると .Fn lseek は、ファイルの先頭から測定した結果のオフセット位置を バイト単位で返します。そうでない場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn lseek は次の場合に処理を失敗し、ファイル位置ポインタは変更されません。 .Bl -tag -width Er .It Bq Er EBADF .Em fildes がオープンファイル記述子ではありません。 .It Bq Er ESPIPE .Em fildes はパイプ、ソケット、または FIFO と対応づけられています。 .It Bq Er EINVAL .Fa whence が適切な値ではありません。 .El .Sh 関連項目 .Xr dup 2 , .Xr open 2 .Sh バグ このドキュメントの .Fa whence の使用法は正しくない英語ですが、歴史的な理由で維持されています。 .Sh 規格 .Fn lseek 関数は .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn lseek 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/madvise.2 b/ja_JP.eucJP/man/man2/madvise.2 index 8379fa8a08..6ffbae0236 100644 --- a/ja_JP.eucJP/man/man2/madvise.2 +++ b/ja_JP.eucJP/man/man2/madvise.2 @@ -1,176 +1,172 @@ .\" Copyright (c) 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. .\" .\" @(#)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 .Os .Sh 名称 .Nm madvise .Nd メモリの使用法について助言を与える .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn madvise "void *addr" "size_t len" "int behav" .Sh 解説 .Fn madvise システムコールによって、自身のメモリ利用の習性の知識があるプロセスは、それを システムに説明できます。 これまで知られている習性は、 .Aq Pa sys/mman.h で定義されており、次のとおりです。 .\" 6 から訳追加 .Bd -literal #define MADV_NORMAL 0 /* これ以降、特殊な処理は必要ない */ #define MADV_RANDOM 1 /* ランダムなページ参照が予測される */ #define MADV_SEQUENTIAL 2 /* シーケンシャルな参照が予測される */ #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 ページがランダムにアクセスされ、プリフェッチが有利ではないと考えられるという ヒントです。 .It Dv MADV_SEQUENTIAL 指定のページがフォルトで読み込まれたとき、そのページの直前のページの 優先順位を VM システムが下げるようにします。 .It Dv MADV_WILLNEED 指定の仮想アドレス範囲内にあるページが一時的に高い優先順位を持つようにし、 それらがメモリ内にある場合、解放される可能性を減少させます。 -さらに既にメモリ内に -あるページはただちにプロセスにマップされ、それによって -プロセス全体にわたるフォルトによる読み込みによる +さらに既にメモリ内にあるページはただちにプロセスにマップされ、 +それによってプロセス全体にわたるフォルトによる読み込みによる 不要なオーバーヘッドを除去します。 -これは、フォルトによるページのバッキングストアからの読み込み -を生じさせるのではなく、 +これは、フォルトによるページのバッキングストアからの +読み込みを生じさせるのではなく、 メモリ内に既にあるページを呼び出し側のプロセスに素早くマップさせます。 .It Dv MADV_DONTNEED VM システムに、指定の範囲内のページのメモリ内優先順位の減少を許可します。 今後、このアドレス範囲への参照はページフォルトを発生させるでしょう。 .It Dv MADV_FREE VM システムにページを解放する自由を与え、指定ページ範囲内の情報がもはや 重要でないことをシステムに通知します。これは、アドレス空間を有効にしたままで .Xr malloc 3 がアドレス空間内の任意の位置のページを解放できるようにする効率的な方法です。 ページが次に参照される時には、そのページは要求時ゼロクリアの対象に なっている可能性もありますし、または .Dv MADV_FREE 呼び出しの前にそこにあったデータが残っているかもしれません。 ページが再び修正されるまで、そのアドレス空間範囲に対する参照だけでは、 VM システムはバッキングストアから情報をページに読み込む動作を行わなくなります。 .\" 訳追加 .It Dv MADV_NOSYNC このマップに関連づけられているデータを 物理的バッキングストアにフラッシュしないようにシステムに要求します。 通常、これにより、ファイルシステムアップデートデーモンが VM システムが汚したページを特に理由もないのに 物理ディスクに書込む不要な動作を防止します。 -VM とファイルシステムの一貫性は常に維持されることに注意して -下さい。 -この機能は、 -マップされたデータが必要なときだけ、 -(通常、システムページャにより)フラッシュされることを +VM とファイルシステムの一貫性は常に維持されることに注意してください。 +この機能は、マップされたデータが必要なときだけ、 +(通常、システムページャにより) フラッシュされることを 保証しているに過ぎません。 .Pp この機能を使用する典型的な場合とは、 ファイルを裏に持つ共有メモリ領域をプロセス (IPC) 間通信で使いたいとき、 -とくに、その領域に格納されるデータを物理的ディスクに書き込む必要が -ない場合です。 -この機能は、 -SysV 共有メモリ呼び出しで得られる mmap 性能と -同等の性能を与えてくれますし、かつ、 -SysV 共有メモリ呼び出しを使うより、きめ細かい制御が可能で -より制約が少ない方法でもあります。 -しかしこの機能は UNIX プラットホーム間で -移植性がないことに注意してください -(いくつかのプラットホームではデフォルトで -正しく振る舞うかも知れませんが)。 +特に、その領域に格納されるデータを物理的ディスクに書き込む必要がない場合です。 +この機能は、SysV 共有メモリ呼び出しで得られる mmap 性能と +同等の性能を与えてくれますし、かつ、SysV 共有メモリ呼び出しを使うより、 +きめ細かい制御が可能でより制約が少ない方法でもあります。 +しかしこの機能は UNIX プラットホーム間で移植性がないことに注意してください +(いくつかのプラットホームではデフォルトで正しく振る舞うかも知れませんが)。 詳しい情報に関しては、 .Xr mmap 2 の MAP_NOSYNC セクションを参照してください。 .It Dv MADV_AUTOSYNC 将来、アドレス範囲内のページが汚された場合のために MADV_NOSYNC の効果を元に戻します。 既に汚されているページについての効果は不定です。 書き戻しするかもしれませんし、しないかもしれません。 書き戻しを確実に行なうには、 .Xr msync 2 または .Xr fsync 2 システムコールを使用します。 .It Dv MADV_NOCORE 領域は、コアファイルに含まれません。 .It Dv MADV_CORE コアファイルの領域を含みます。 .El .Sh 戻り値 正常に完了すると .Fn madvise -は 0 を返します。そうでない場合は値 -1 を -返し、エラーを示すために +は 0 を返します。 +そうでない場合は値 -1 を返し、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn madvise 関数は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EINVAL .Fa addr 引数と .Fa len 引数で指定された仮想アドレス範囲が有効ではありません。 .El .Sh 関連項目 .Xr mincore 2 , .Xr mprotect 2 , .Xr msync 2 , .Xr munmap 2 .Sh 歴史 .Fn madvise 関数は .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mmap.2 b/ja_JP.eucJP/man/man2/mmap.2 index 22019bbb23..a6c2840962 100644 --- a/ja_JP.eucJP/man/man2/mmap.2 +++ b/ja_JP.eucJP/man/man2/mmap.2 @@ -1,290 +1,352 @@ .\" Copyright (c) 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. .\" .\" @(#)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 .Fd #include .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 関数は、 .Fa addr を始点として最大で .Fa len バイトの連続するページに、 .Fa fd によって記述されるオブジェクトの バイトオフセット .Fa offset -の位置からマップされるようにします。 +の位置から始まる部分をマップされるようにします。 .Fa len がページサイズの倍数でない場合、 マップされた領域は指定の範囲を越えて拡張されるかもしれません。 このような拡張によってマップされたオブジェクトの末端を越えた部分は 0 で埋められます。 .Pp .Fa addr が 0 でない場合、これはシステムへのヒントとして使用されます (システムの便宜のために、領域の実際のアドレスは 指定されたアドレスとは違う可能性があります)。 .Fa addr が 0 の場合、アドレスはシステムによって選択されます。 領域の実際の開始アドレスが返されます。 .Fa mmap が処理に成功すると、確保されたアドレス範囲の以前のマッピングは 削除されます。 .Pp 保護 (領域へのアクセス許可) は .Fa prot 引数で、以下の値の論理和 .\".Em or Ns 'ing .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 パラメータは、マップされたオブジェクトのタイプ、マッピングオプション、 およびマップされたページのコピーに対して行なわれた修正が、プロセスに 固有であるかまたは他からの参照と共有されるかを指定します。 共有、マッピングタイプ、およびオプションは、以下の値の論理和 .\".Em or Ns 'ing .Em ( or ) を取った値で .Fa flags 引数に指定します。 -.Pp -.Bl -tag -width MAP_FIXEDX +.Bl -tag -width MAP_HASSEMAPHORE .It Dv MAP_ANON どの特定のファイルとも対応していない匿名メモリをマップします。 .Dv MAP_ANON を作成するのに使用される ファイル記述子は \-1 である必要があります。 .Fa offset パラメータは無視されます。 .\".It Dv MAP_FILE .\"Mapped from a regular file or character-special device memory. .It Dv MAP_FIXED システムが、指定されたアドレスと異なるアドレスを選択することを許容しません。 指定されたアドレスが使用できない場合、 .Fn mmap -は処理に失敗します。MAP_FIXED が指定されている場合、 +は処理に失敗します。 +.Dv MAP_FIXED +が指定されている場合、 .Fa addr はページサイズの倍数である必要があります。 このオプションの使用はお勧めできません。 .It Dv MAP_HASSEMAPHORE 領域にセマフォが含まれている可能性があること、特殊な処理が必要な可能性が あることをカーネルに通知します。 .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 システムコールは .Bx で整合性のあるファイルシステムのバッファキャッシュが実装されたので 廃止されました。しかしながら、汚れた 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 バイトを加えたものになります。最も伸びた場合のスタックの下端は、 呼び出しによって返される開始アドレスになります。 .El .Pp .Xr close 2 関数はページをアンマップしません。詳細については .Xr munmap 2 を参照してください。 .Pp 現在の設計ではプロセスはスワップ空間の位置を指定できません。 将来は、追加のマッピングタイプ .Dv MAP_SWAP を定義するかもしれません。この場合、ファイル記述子引数には スワップを行なうべきファイルまたはデバイスを指定します。 .Sh 戻り値 正常に完了すると、 .Fn mmap は、マップされた領域を指すポインタを返します。そうでない場合は -値 MAP_FAILED が返され、エラーを示すために +値 +.Dv MAP_FAILED +が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn mmap は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EACCES フラグ .Dv PROT_READ が .Fa prot パラメータの一部として指定されましたが、 .Fa fd が読取り用に開かれていませんでした。 フラグ .Dv MAP_SHARED と .Dv PROT_WRITE が .Fa flags と .Fa prot パラメータの一部として指定されましたが、 .Fa fd は書込み用に開かれていませんでした。 .It Bq Er EBADF .Fa fd が有効な開かれたファイルの記述子ではありません。 .It Bq Er EINVAL .Dv MAP_FIXED が指定されて .Fa addr パラメータがページ境界に整列されていないか、または指定の アドレスの一部がユーザプロセスの有効なアドレス空間の外になります。 .It Bq Er EINVAL .Fa len が負でした。 .It Bq Er EINVAL .Dv MAP_ANON が指定されて .Fa fd パラメータが -1 ではありませんでした。 .It Bq Er EINVAL .Dv MAP_ANON が指定されておらず、 .Fa fd が通常のファイルまたはキャラクタ型特殊ファイルを参照していませんでした。 .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 関連項目 .Xr madvise 2 , .Xr mincore 2 , .Xr mlock 2 , .Xr mprotect 2 , .Xr msync 2 , .Xr munlock 2 , .Xr munmap 2 , .Xr getpagesize 3 .Sh バグ .Fa len は 2GB に限定されます。2GB をわずかに上回るマッピングは機能しませんが、 2GB, 4GB, 6GB, および 8GB よりわずかに少ないファイルサイズについて (ファイルサイズ % 2GB) のサイズのウィンドウをマップできます。 .Pp 制約は多彩な理由から生じています。 -そのほとんどは、 +そのほとんどは、パフォーマンス上の著しいペナルティのため、 .Fx -の VM システム内で 64 ビットのオフセットを使用したくないというものです。 +では VM システム内で 64 ビットのオフセットを使用したくないことと +関係しています。 したがって .Fx は 32 ビットのページインデックスを使用しており、これによって .Fx では最高で 8TB までのファイルサイズを利用できます。実際には -ファイルシステムコード内のバグによってさらに制約が課されて、 -1TB までが利用できます。 +さらに制約が課されて使用可能サイズは 1TB までですが、これは、 +ファイルシステムコード内のバグによるものです (ブロック番号計算を行なっているときの桁落ち)。 .Pp 2GB 制限のもうひとつの理由は、ファイルシステムメタデータが負のオフセットに 存在できるということです。 .Pp 現在われわれはページ境界に整列したファイルオフセットのみを処理できます。 diff --git a/ja_JP.eucJP/man/man2/open.2 b/ja_JP.eucJP/man/man2/open.2 index 8d9059974d..874f9772ec 100644 --- a/ja_JP.eucJP/man/man2/open.2 +++ b/ja_JP.eucJP/man/man2/open.2 @@ -1,295 +1,295 @@ .\" 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. .\" .\" @(#)open.2 8.2 (Berkeley) 11/16/93 .\" .Dd November 16, 1993 .Dt OPEN 2 .Os BSD 4 .Sh 名称 .Nm open .Nd 読取りまたは書込み用にファイルをオープンする、または作成する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn open "const char *path" "int flags" "..." .Sh 解説 .Fa path によって指定されるファイルを、引数 .Fa flags によって指定されたように読取りまたは書込み (またはその両方) 用にオープンし、 そのファイル記述子を呼び出し元プロセスに返します。 ファイルが存在しない場合にはファイルを 作成するように、 .Fa flags 引数で指示できます .Dv ( O_CREAT フラグを指定する)。 この場合、 .Nm には 3 番目の引数 .Fa "mode_t mode" が必要であり、ファイルは .Xr chmod 2 で説明されているようにモード .Fa mode で作成され、プロセスの umask 値によって修正されます .Pf ( Xr umask 2 を参照)。 .Pp 指定されたフラグは次の値の論理和 .\".Em or Ns 'ing .Em ( or ) で作成されます。 .Pp .Bd -literal -offset indent -compact O_RDONLY 読取り専用でオープン O_WRONLY 書込み専用でオープン O_RDWR 読取りと書込み用にオープン O_NONBLOCK オープンするときにブロックしない O_APPEND 書込みのたびに末尾に追加する O_CREAT ファイルが存在しない場合、作成する O_TRUNC サイズを 0 に切り捨てる O_EXCL 作成するファイルが既に存在した場合、エラーとする O_SHLOCK 共有ロックを自動的に取得する O_EXLOCK 排他的ロックを自動的に取得する .Ed .Pp .Dv O_APPEND を設定してファイルをオープンすると、 ファイルへの書込みはすべてファイルの末尾に追加されます。 .Dv O_TRUNC が指定されていてファイルが存在する場合、ファイルは長さ 0 に 切り捨てられます。 .Dv O_EXCL が .Dv O_CREAT とともに設定されていてファイルが既に存在する場合、 .Fn open はエラーを返します。これを使用して、 簡単な排他的アクセスロッキングメカニズムを 実現できます。 .Dv O_EXCL が設定されていてパス名の最後の構成要素がシンボリックリンクの場合、 たとえシンボリックリンクが存在しない名前を指していたとしても .Fn open は処理に失敗します。 .Dv O_NONBLOCK フラグが指定されていて .Fn open 呼び出しの結果、プロセスが何らかの理由でブロックされると (たとえば、 ダイアルアップ回線でキャリアを待っている場合)、 .Fn open は即座に戻ります。プロセスがオープンしたファイルに 最初に入出力しようとしたとき、プロセスはブロックします (現時点では実装されていません)。 .Pp ファイルをオープンするときに、 .Xr flock 2 を使ったロックを得るには、共有ロックについては .Dv O_SHLOCK 、 排他的ロックについては .Dv O_EXLOCK を設定します。 .Dv O_CREAT でファイルを作成する場合、ロック要求が失敗すること はありません (ただし、下層にあるファイルシステムが ロックをサポートしている場合に限ります)。 .Pp 正常に完了すると、 .Fn open は、ファイル記述子を示す負でない整数を返します。 処理に失敗すると -1 を返します。ファイル内の現在の位置をマークする ファイルポインタはファイルの先頭に設定されます。 .Pp 新しいファイルが作成される場合、そのグループは ファイルが含まれるディレクトリのグループに設定されます。 .Pp 新しい記述子は .Xr execve 2 システムコールを通じてオープンされたままであるように設定されます。 .Xr close 2 と .Xr fcntl 2 を参照してください。 .Pp システムには、1 つのプロセスによって同時にオープンできる ファイル記述子数に制限があります。 .Xr getdtablesize 2 は現在のシステム制限を返します。 .Pp -.Sh システムの注意事項 +.Sh 実装に関する注 非スレッドライブラリでは、 .Fn open は .Va open システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va open システムコールは .Fn _thread_sys_open にアセンブルされ、 .Fn open は、スレッドの再スケジュールを無効にし .Fn _thread_sys_open を呼び出す関数として実装されています。 戻る前に、 .Fn open はスレッドの再スケジュールを有効にします。 .Sh 戻り値 正常に完了すると、 .Fn open はファイル記述子である負でない整数を返します。 処理に失敗すると -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー 指定のファイルは次の場合を除いてオープンされます。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在せず、 .Dv O_CREAT も設定されていません。 .It Bq Er ENOENT 存在しなければならないパス名の構成要素が存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er EACCES 要求されたパーミッション (読取りまたは書込み用、または両方) が 指定のフラグに拒否されています。 .It Bq Er EACCES .Dv O_CREAT が指定されていて、ファイルが存在せず、かつファイルを作成する ディレクトリに書込み許可がありません。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EISDIR 指定のファイルがディレクトリであり、これを書込み用に オープンするように引数が指定されています。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあり、 そのファイルを修正しようとしています。 .It Bq Er EMFILE プロセスは、すでにオープンできるファイル記述子に関する 制限に達しています。 .It Bq Er ENFILE システムファイルテーブルが満杯です。 .It Bq Er ENXIO 指定のファイルはキャラクタ型特殊ファイルまたはブロック型特殊 ファイルであり、この特殊ファイルに結び付けられたデバイスは 存在していません。 .It Bq Er ENXIO 指定されたファイルは FIFO パイプで、どのプロセスからも 読取り用にオープンされていないにも関らず、 これを書込み用にオープンしようとしました。 .It Bq Er EINTR .Fn open 操作がシグナルによって割り込みされました。 .It Bq Er EOPNOTSUPP .Dv O_SHLOCK または .Dv O_EXLOCK が指定されましたが、下層となっているファイルシステムは ロックをサポートしていません。 .It Bq Er EWOULDBLOCK .Dv O_NONBLOCK と、 .Dv O_SHLOCK か .Dv O_EXLOCK のどちらかが指定されましたが、ファイルはロックされています。 .It Bq Er ENOSPC .Dv O_CREAT が指定されていて、ファイルが存在せず、新しいファイル用のエントリを 配置中のディレクトリは、そのディレクトリを含むファイルシステムに 空間が残っていないため拡張できません。 .It Bq Er ENOSPC .Dv O_CREAT が指定されていて、ファイルが存在せず、かつファイルが作成中の ファイルシステム上に未使用の inode がありません。 .It Bq Er EDQUOT .Dv O_CREAT が指定されていて、ファイルが存在せず、かつ新しいファイル用の エントリを配置中のディレクトリは、そのディレクトリを含む ファイルシステム上でディスクブロックの ユーザのクォータが枯渇したために拡張できません。 .It Bq Er EDQUOT .Dv O_CREAT が指定されていて、ファイルが存在せず、かつファイルを作成中の ファイルシステム上で inode のユーザのクォータが枯渇しています。 .It Bq Er EIO ディレクトリエントリを作成中、または .Dv O_CREAT 用の inode を割当て中に入出力エラーが発生しました。 .It Bq Er ETXTBSY ファイルは純粋な手続き (共有テキスト) ファイルで、 .Fn open が書込みアクセスを要求しましたが、ファイルは実行中です。 .It Bq Er EFAULT .Fa path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EEXIST .Dv O_CREAT と .Dv O_EXCL が指定されていて、ファイルが存在します。 .It Bq Er EOPNOTSUPP ソケットをオープンしようとしました (現時点では実装されていません)。 .It Bq Er EINVAL .Dv O_RDONLY , .Dv O_WRONLY および .Dv O_RDWR の不正な組合わせで記述子をオープンしようとしました。 .El .Sh 関連項目 .Xr chmod 2 , .Xr close 2 , .Xr dup 2 , .Xr getdtablesize 2 , .Xr lseek 2 , .Xr read 2 , .Xr umask 2 , .Xr write 2 .Sh 歴史 .Fn open 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/poll.2 b/ja_JP.eucJP/man/man2/poll.2 index 73b77d437c..d11b80f822 100644 --- a/ja_JP.eucJP/man/man2/poll.2 +++ b/ja_JP.eucJP/man/man2/poll.2 @@ -1,193 +1,193 @@ .\" %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. .\" .\" 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. .\" .Dd September 7, 1996 .Dt POLL 2 .Os .Sh 名称 .Nm poll .Nd 同期的な入出力の多重化 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn poll "struct pollfd *fds" "unsigned int nfds" "int timeout" .Sh 解説 .Fn poll はファイル記述子の集合を調査して、 それらのいずれかで入出力の準備ができているか否かを調べます。 .Fa fds 引数は .Aq Pa 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 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 d069fc6146..3d5ce842f8 100644 --- a/ja_JP.eucJP/man/man2/ptrace.2 +++ b/ja_JP.eucJP/man/man2/ptrace.2 @@ -1,338 +1,348 @@ -.\" %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 .Dt PTRACE 2 .Os FreeBSD .Sh 名称 .Nm ptrace .Nd プロセスのトレースとデバッグ .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn ptrace "int request" "pid_t pid" "caddr_t addr" "int data" .Sh 解説 .Fn ptrace はトレースとデバッグの機能を提供します。これによって 1 つのプロセス .\".Em tracing (トレース するプロセス) が 他のプロセス .\".Em traced (トレース されるプロセス) を制御できます。 ほとんどの場合、トレースされるプロセスは正常に実行されます。 -ただし、トレースされるプロセスはシグナルを受信すると +ただし、トレースされるプロセスはシグナル .Po .Xr sigaction 2 を参照 .Pc -停止します。トレースするプロセスは、 +を受信すると停止します。トレースするプロセスは、 .Xr wait 2 または .Dv SIGCHLD シグナルによってこれを検知し、停止されたプロセスの状態を調査して、 それを終了させるか、または適切な形で実行を継続させます。 .Fn ptrace は、これらすべてを制御するメカニズムです。 .Pp .Fa request 引数は、どの操作を実行するかを指定します。 残りの引数の意味は操作によって異なります。 後述する 1 つの特殊なケースを除いて、 .Fn ptrace 呼び出しはすべてトレースするプロセスによって行われ、 .Fa pid 引数はトレースされるプロセスのプロセス ID を指定します。 .Fa request は次のものにできます。 .Bl -tag -width 12n .It Dv PT_TRACE_ME この要求は、トレースされるプロセスが使用する唯一の要求です。 この要求は、 プロセスがその親によってトレースされることを宣言します。 他の引数はすべて無視され ます (親プロセスが子プロセスをトレースしない場合は、 かなり混乱した結果になります。 トレースされるプロセスが停止すると、このプロセスは、 -.Eo \& .Fn ptrace -.Ec \& によってしか実行を継続できません)。プロセスがこの要求を使用し、 .Xr execve 2 またはそれに組み込まれているルーチン .Po たとえば、 .Xr execv 3 .Pc を呼び出した場合、 そのプロセスは新しいイメージの最初の命令を実行する前に停止します。 また、実行される実行可能モジュールの setuid または setgid ビットは無視されます。 .It Dv PT_READ_I , Dv PT_READ_D これらの要求は、トレースされるプロセスのアドレス空間から 1 つの -.Li int +.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_READ_U この要求は、トレースされるプロセスのユーザ構造体から 1 つの -.Li int +.Vt int を読み取ります。 .Fa addr 引数は、 ユーザ構造体のベースから相対的な int の位置を指定します。この引数は通常、明示的または .Eo \& .Fn ptrace .Ec のプロトタイプの存在によって -.Li caddr_t +.Vt caddr_t にキャストされる整数値です。 .Dv PT_READ_I および .Dv PT_READ_D と異なり、 .Fa addr は -.Li int +.Vt int 境界に調整されている必要があります。読み取られた値は .Eo \& .Fn ptrace .Ec からの戻り値として返されます。 .It Dv PT_WRITE_U この要求はトレースされるプロセスのユーザ構造体に 1 つの -.Li int +.Vt int を書き込みます。 .Fa addr には .Dv PT_READ_U と同じようにオフセットを指定し、 .Fa data には .Dv PT_WRITE_I および .Dv PT_WRITE_D と同じように書き込まれる値を指定します。 .It Dv PT_CONTINUE トレースされるプロセスは実行を継続します。 .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 フィールドは使用されません。 .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 と類似していますが、実行を継続する別の場所を 指定できないこと、 および要求が成功した後、トレースされていたプロセスはもはや トレースされず、通常どおり実行を継続することが異なります。 .El .Pp さらにマシンに固有の要求が存在することがあります。i386 では、これらは次のとおりです。 .Bl -tag -width 12n .It Dv PT_GETREGS この要求は、トレースされるプロセスのマシンレジスタを、 .Fa addr が指す -.Dq Li "struct reg" +.Do +.Vt "struct reg" +.Dc .Pf ( Aq Pa machine/reg.h 内に定義されています) 内に読み取ります。 .It Dv PT_SETREGS この要求は .Dv PT_GETREGS の逆です。 .Fa addr が指す -.Dq Li "struct reg" +.Do +.Vt "struct reg" +.Dc .Pf ( Aq Pa machine/reg.h 内に定義されています) からトレースされるプロセスのマシンレジスタをロードします。 .It Dv PT_GETFPREGS この要求はトレースされるプロセスの浮動小数点レジスタを .Fa addr が指す -.Dq Li "struct fpreg" +.Do +.Vt "struct fpreg" +.Dc .Pf ( Aq Pa machine/reg.h に定義されています) に読み取ります。 .It Dv PT_SETFPREGS この要求は .Dv PT_GETFPREGS の反対です。 .Fa addr が指す .Dq Li "struct fpreg" .Pf ( Aq Pa machine/reg.h 内に定義されています) からトレースされるプロセスの浮動小数点レジスタをロードします。 .It Dv PT_GETDBREGS この要求はトレースされるプロセスのデバッグレジスタを .Fa addr が指す -.Dq Li "struct dbreg" +.Do +.Vt "struct dbreg" +.Dc .Pf ( Aq Pa machine/reg.h 内に定義されています) に読み取ります。 .It Dv PT_SETDBREGS この要求は .Dv PT_GETDBREGS の反対です。 .Fa addr の指す -.Dq Li "struct dbreg" +.Do +.Vt "struct dbreg" +.Dc .Pf ( Aq Pa machine/reg.h 内に定義されています) からトレースされるプロセスのデバッグレジスタにロードします。 .El .Sh 戻り値 いくつかの要求で .Fn ptrace はエラー以外の場合にも .Li -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_READ_U または .Dv PT_WRITE_U への .Fa addr が -.\".Li int Ns \&-aligned. -.Li int -境界に調節されていませんでした。 +.\".Vt int Ns \-aligned. +.Vt int +境界に調節されていませんでした。 .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 455035d3c8..189dcc2447 100644 --- a/ja_JP.eucJP/man/man2/read.2 +++ b/ja_JP.eucJP/man/man2/read.2 @@ -1,264 +1,264 @@ .\" 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 .\" .Dd February 26, 1994 .Dt READ 2 .Os BSD 4 .Sh 名称 .Nm read , .Nm readv , .Nm pread .Nd 入力を読取る .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .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 { char *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 は、実際に読取られバッファ内に配置されたバイト 数を返します。記述子が通常ファイルを参照しており、 ファイルの終端までに十分な量のバイトがあれば、 システムは要求されたバイト数を読取ることを保証しますが、 他のケースではそうではありません。 .Pp -.Sh システムの注意事項 +.Sh 実装に関する注 .Pp 非スレッドライブラリでは、 .Fn read は .Va read システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va read システムコールは .Fn _thread_sys_read にアセンブルされ、 .Fn read は読取り用に .Fa d をロックしてから .Fn _thread_sys_read を呼び出す関数として実装されています。 .Fn _thread_sys_read の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。 戻る前に .Fn read は .Fa d をアンロックします。 .Pp 非スレッドライブラリでは、 .Fn readv は .Va readv システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va readv システムコールは .Fn _thread_sys_readv システムコールにアセンブルされ、 .Fn readv は、読取り用に .Fa d をロックしてから .Fn _thread_sys_readv を呼び出す関数として実装されています。 .Fn _thread_sys_readv の呼び出しがブロックする場合、コンテキストスイッチが実行されます。 戻る前に .Fn readv は .Fa d をアンロックします。 .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 ファイルは非ブロッキング入出力とマークされており、 読取りの準備ができたデータがありません。 .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 open 2 , .Xr pipe 2 , .Xr select 2 , .Xr socket 2 , .Xr socketpair 2 .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 fc57ab75be..23d38ae0a7 100644 --- a/ja_JP.eucJP/man/man2/recv.2 +++ b/ja_JP.eucJP/man/man2/recv.2 @@ -1,286 +1,285 @@ .\" 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.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 .Os BSD 4.3r .Sh 名称 .Nm recv , .Nm recvfrom , .Nm recvmsg .Nd ソケットからメッセージを受信する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .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" .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 呼出しへの +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 フラグは帯域外データの受信を要求し、 通常のデータストリームからは受信しません。 急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、 このフラグはそのようなプロトコルでは使用できません。MSG_PEEK フラグは 受信待ち行列の先頭からデータを除去することなく、そのデータを -返します。したがって、後続の受信呼出しは同じデータ +返します。したがって、後続の受信呼び出しは同じデータ を返します。MSG_WAITALL フラグは要求が完全に満たされるまで ブロックするように要求します。 -しかし、シグナルが補足された場合、エラーまたは切断が発生した場合、 +しかし、シグナルが捕捉された場合、エラーまたは切断が発生した場合、 または受信する次のデータが返されたタイプと異なる -場合、呼出しは要求されたより少ないデータを返す可能性があります。 +場合、呼び出しは要求されたより少ないデータを返す可能性があります。 .Pp .Fn recvmsg -呼び出しは、 -直接に指定されるパラメータの数を最小にするために +呼び出しは、直接に指定されるパラメータの数を最小にするために .Fa msghdr 構造体を使用します。この構造体は .Ao Pa sys/socket.h Ac で定義されているように、次の形式になっています。 .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 における -データストリームの変化を知り、 +たとえば、これを使用して 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 である必要があります。これは 次のように .Ao Pa sys/socket.h Ac 内で定義されています。 .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 は、急送または帯域外データが受信されたことを示します。 .Pp .Sh 戻り値 -これらの呼出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。 +これらの呼び出しは受信したバイト数を返し、エラーが起きた場合は -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/rfork.2 b/ja_JP.eucJP/man/man2/rfork.2 index bd3f1a10d4..eb61b7c4b3 100644 --- a/ja_JP.eucJP/man/man2/rfork.2 +++ b/ja_JP.eucJP/man/man2/rfork.2 @@ -1,165 +1,173 @@ .\" .\" This manual page is taken directly from Plan9, and modified to .\" describe the actual BSD implementation. Permission for .\" use of this page comes from Rob Pike . .\" -.\" %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 .Os .Sh 名称 .Nm rfork .Nd プロセスリソースの操作 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Ft int .Fn rfork "int flags" .Sh 解説 fork, vfork, rfork は、新しいプロセスが作成される唯一の方法です。 .Fn rfork への引数 .Fa flags は、起動しているプロセス (親) のどのリソースが新しいプロセス (子) に よって共有されるか、またはそれらのデフォルト値に初期化されるかを選択します。 リソースにはオープンファイル記述子テーブル (これは、共有される場合、 プロセスが他のプロセスについてファイルを開閉することを 許容します) およびオープンファイルが含まれます。 .Fa flags は次の項目の倫理和 (OR) です。 .Bl -tag -width "RFCNAMEG" -compact -offset indent .It RFPROC 設定されている場合、新しいプロセスが 作成されます。そうでない場合、変更が現在のプロセスに影響を及ぼします。 現在の実装は、このフラグが必ず設定されていることを要求します。 .It RFNOWAIT 設定されている場合、子プロセスは親プロセスから分離されます。 終了時に、子プロセスは、親プロセスが集めるステータスを残しません。 .Xr wait 2 を参照してください。 .It RFFDG 設定されている場合、起動側のファイル記述子テーブル .Pf ( Xr intro 2 -を参照) が -コピーされます。そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。 +を参照) がコピーされます。 +そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。 .It RFCFDG 設定されている場合、新しいプロセスは新しいファイル記述子テーブルで 開始します。 .Dv RFFDG とは互いに排他的です。 .It RFMEM 設定されている場合、 通常、ハードウェアのページテーブルを直接共有することで、 カーネルはアドレス空間全体の共有を強制します。 -子は、この様な方法で、 +子は、このような方法で、 親プロセスが所有しているすべてのセグメントを、 それが普段共有可能であるか否かに関係なく、 継承し共有します。 スタックセグメントは分割されない (親と子の両方が同じスタック上に復帰する) ので、 RFMEM フラグを指定した .Fn rfork -を通常、高級言語から直接呼び出すことはできません。 -例えば、C 言語でこのシステムコールを直接呼び出すことはできません。 +は一般に、C 言語を含む高級言語から直接呼び出すことはできません。 共に設定可能なフラグは .Dv RFPROC だけです。 +この問題を解決し、提供されたスタック上で新しいプロセスを +走らせるために補助関数が提供されています。詳しくは +.Fn rfork_thread 3 +を参照してください。 .It RFSIGSHARE 設定されている場合、カーネルは、親子間で sigacts 構造体を共有することを 強制します。 .It RFLINUXTHPN 設定されている場合、カーネルは、 子についてのスレッド終了時に、SIGCHILD の代わりに SIGUSR1 を返します。これは特定の Linux クローン動作を模倣するためです。 .El .Pp 共有ファイル記述子テーブル内のファイル記述子は、 明示的に閉じられるか、またはテーブルを 共有しているすべてのプロセスが終了するまで開いたままに保たれます。 .Pp .Dv RFPROC が設定されている場合、 親プロセス内で返される値は子プロセスのプロセス ID です。 子プロセス内で返される値は 0 です。 .Dv RFPROC がない場合、戻り値は 0 です。プロセス ID の範囲は 1 から最大整数値 .Ft ( int ) です。必要であれば、要求されたプロセスリソースが 利用できるようになるまで .Fn rfork は待機します。 .Pp .Fn fork は、 .Fn rfork "RFFDG | RFPROC" への呼び出しとして実装可能ですが、後方互換性のために -その様には実装していません。 +そのようには実装されていません。 .Sh 戻り値 正常に完了した場合、 .Fn rfork は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに 返します。そうでない場合、子プロセスは作成されずに、 値 -1 が親プロセスに返され、 エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn rfork は、次の場合に処理を失敗し、子プロセスは作成されません。 .Bl -tag -width Er .It Bq Er EAGAIN 実行中のプロセスの合計数がシステムの課す制限を超過してしまいます。 制限は .Xr sysctl 3 MIB 変数 .Dv KERN_MAXPROC によって指定されます (スーパユーザを除いて、制限は実際には これより 1 少なくなります)。 .It Bq Er EAGAIN ユーザがスーパユーザではなく、 -1 人のユーザによる実行中のプロセスの合計数 -がシステムの課した制限を超過してしまいます。制限は、 +1 人のユーザによる実行中のプロセスの合計数がシステムの課した制限を +超過してしまいます。制限は、 .Xr sysctl 3 MIB 変数 .Dv KERN_MAXPROCPERUID によって指定されます。 .It Bq Er EAGAIN ユーザがスーパユーザではなく、リソースパラメータ .Dv RLIMIT_NOFILE に対応するソフトリソースの制限を超過してしまいます .Pf ( Xr getrlimit 2 を参照)。 .It Bq Er EINVAL RFPROC フラグが指定されませんでした。 .It Bq Er EINVAL RFFDG フラグと RFCFDG フラグの両方が指定されました。 .It Bq Er ENOMEM 新しいプロセス用に十分なスワップ空間が不足しました。 .El .Sh 関連項目 .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 を利用していません。 linux スレッドライブラリの native port である、 .Pa /usr/ports/devel/linuxthreads は RFMEM を利用して動作する .Fn clone -コールを含んでいます。 +呼び出しを含んでいます。 +.Fn rfork_thread +ライブラリ関数は +.Fn clone +の代わりとして利用することができます。 .Sh 歴史 .Fn rfork 関数は Plan9 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/select.2 b/ja_JP.eucJP/man/man2/select.2 index 1a334d5ca1..02835a1255 100644 --- a/ja_JP.eucJP/man/man2/select.2 +++ b/ja_JP.eucJP/man/man2/select.2 @@ -1,194 +1,192 @@ .\" 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.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 .Os BSD 4.2 .Sh 名称 .Nm select .Nd 同期的な入出力の多重化 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .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 が、ヌルポインタでない場合、それはセレクションの完了を 待つ最大インターバルを指定します。 システムの活動性が、このインターバルを不定時間延長することがあります。 .Pp .Fa timeout がヌルポインタの場合、 .Fn select は無期限にブロックします。 .Pp ポーリングのためには、 .Fa timeout -引数がヌルでなく、値が 0 の timeval 構造体を指しているべきです。 +引数はヌルでなく、値が 0 の timeval 構造体を指しているべきです。 .Pp .Fa readfds , .Fa writefds および .Fa exceptfds のどれについても、いずれの記述子も興味がない場合は ヌルポインタを指定できます。 .Sh 戻り値 .Fn select は記述子集合に含まれている準備のできた記述子の数を返し、 エラーが起きた場合は -1 を返します。 タイムリミットが来ると、 .Fn select は 0 を返します。 割り込みによるものも含めて .Fn select がエラーで戻る場合は、記述子集合は変更されません。 .Sh エラー .Fn select から戻るエラーは次のことを示します。 .Bl -tag -width Er .It Bq Er EBADF 記述子集合のどれかが無効な記述子を指定していました。 .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 read 2 , .Xr recv 2 , .Xr send 2 , .Xr write 2 , .Xr clocks 7 .Sh 注釈 .Dv FD_SETSIZE のデフォルトのサイズは現時点では  1024 です。 多数のオープンファイルを使用する可能性があるプログラムで .Fn select を実行するために、 .Aq Pa sys/types.h を取り込むヘッダを含める前にプログラムで .Dv FD_SETSIZE を定義することで、このサイズを増加できます。 .Pp .Fa nfds がオープンファイルの数より大きい場合、 .Fn select が未使用のファイル記述子を調査することは保証されていません。 歴史的な理由で、 .Fn select は最初の 256 個の記述子を必ず調査します。 .Sh バグ +.St -susv2 +では、システムが元の timeout を適当に更新することを許しています。 +したがって、タイムアウトの値が .Fn select -は、時間値を適切に修正することで、 -指定したタイムアウトからの残り時間を返す必要がおそらくあります。 -これはシステムの将来のバージョンで実装される可能性があります。 -このように、タイムアウトの値が -.Fn select -呼び出しによって修正されないと想定するのは賢明ではありません。 +呼び出しによって変更されないと想定するのは賢明ではありません。 .Sh 歴史 .Fn select 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/semget.2 b/ja_JP.eucJP/man/man2/semget.2 index 7c40a80040..01ee27ca3c 100644 --- a/ja_JP.eucJP/man/man2/semget.2 +++ b/ja_JP.eucJP/man/man2/semget.2 @@ -1,156 +1,148 @@ .\" .\" Copyright (c) 1995 David Hovemeyer .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS 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/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 .Os FreeBSD .Sh 名称 .Nm semget .Nd セマフォ ID を取得する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .Ft int .Fn semget "key_t key" "int nsems" "int flag" .Sh 解説 .Fa key と .Fa flag の値に基づき、 .Fn semget は新たに作成された、あるいは 以前から存在するセマフォ集合の識別子を返します。 .\" .\" This is copied verbatim from the shmget manpage. Perhaps .\" it should go in a common manpage, such as .Xr ipc 2 .\" キーはファイル名に類似しています。 キーは 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 を使用して、パス名からキーを生成できます。 .Xr ftok 3 を参照してください。 .El .\" .\" Likewise for this section, except SHM_* becomes SEM_*. .\" .Pp 新しく作成される -IPC オブジェクトのモードは、次の定数の論理和 -( +IPC オブジェクトのモードは、次の定数の論理和 ( .Em OR ) を .Fa flag パラメータに設定することで決定されます。 .Bl -tag -width XSEM_WXX6XXX .It Dv SEM_R ユーザ用の読取りアクセス .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 新しいセマフォ集合が作成されている場合、 .Fa nsems を使用して、集合の中に入れる必要のある セマフォの数を示します。そうでない場合、 .Fa nsems -を -0 として指定できます。 +を 0 として指定できます。 .Sh 戻り値 .Fn semget は、正常に完了するとセマフォ集合の識別子を返します。 -そうでない場合は、 --1 を返し、エラーを示すように +そうでない場合は、-1 を返し、エラーを示すように .Va errno を設定します。 .Sh エラー .Fn semget は次の場合に処理に失敗します。 .Bl -tag -width Er .\" ipcperm could fail (we're opening to read and write, as it were) .It Bq Er EACCES アクセスパーミッション障害。 .\" .\" sysv_sem.c is quite explicit about these, so I'm pretty sure .\" this is accurate .\" .It Bq Er EEXIST IPC_CREAT および IPC_EXCL が指定されているのに、 .Fa key に対応するセマフォ集合が既に存在します。 .It Bq Er EINVAL 要求されたセマフォの数が、 システムが集合単位で課している最大値を超過しています。 .It Bq Er ENOSPC 利用可能なセマフォが不足しています。 .It Bq Er ENOSPC カーネルが .Fa "struct semid_ds" を割当てできませんでした。 .It Bq Er ENOENT .Fa key に対応するセマフォ集合が見つからず、その際に IPC_CREAT が指定されていませんでした。 .El .Sh 関連項目 .Xr semctl 2 , .Xr semop 2 , .Xr ftok 3 diff --git a/ja_JP.eucJP/man/man2/send.2 b/ja_JP.eucJP/man/man2/send.2 index 7cb4386334..d7b3c22cc3 100644 --- a/ja_JP.eucJP/man/man2/send.2 +++ b/ja_JP.eucJP/man/man2/send.2 @@ -1,199 +1,201 @@ .\" 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. .\" .\" 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 .Os BSD 4.2 .Sh 名称 .Nm send , .Nm sendto , .Nm sendmsg .Nd ソケットからメッセージを送信する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft ssize_t .Fn send "int s" "const void *msg" "size_t len" "int flags" .Ft ssize_t .Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen" .Ft ssize_t .Fn sendmsg "int s" "const struct msghdr *msg" "int flags" .Sh 解説 .Fn send , .Fn sendto および .Fn sendmsg は、メッセージを別のソケットに送信するのに使用されます。 .Fn send は、ソケットが .Em 接続された 状態にあるときにだけ使用できるのに対し、 .Fn sendto と .Fn sendmsg はいつでも使用できます。 .Pp ターゲットのアドレスを .Fa to で与え、 .Fa tolen でそのサイズを指定します。 メッセージの長さは .Fa len で指定します。 メッセージが長すぎて基層となるプロトコルを不可分に通過できない場合、 エラー .Er EMSGSIZE を返し、メッセージを送信しません。 .Pp .Fn send では、配送できないことはまったく示されません。 戻り値 -1 はローカルで検出されたエラーを示します。 .Pp 送信するメッセージを保持するスペースがソケットに無い場合 .Fn send は通常ブロックします。 ただし、ソケットが非ブロッキング入出力モードに設定されている場合は別です。 .Xr select 2 呼び出しを使用して、さらに多くのデータをいつ送信できるか判定できます。 .Pp .Fa flags パラメータには次に示されるもののうち 1 つまたは複数を含めることが可能です。 .Bd -literal #define MSG_OOB 0x1 /* 帯域外データを処理する */ #define MSG_PEEK 0x2 /* 着信メッセージを覗く */ #define MSG_DONTROUTE 0x4 /* ルーティングをバイパスし、 インタフェースを直接使用する */ #define MSG_EOR 0x8 /* このデータでレコードを終了する */ #define MSG_EOF 0x100 /* このデータでトランザクションを終了する */ .Ed .Pp フラグ .Dv MSG_OOB は、この概念をサポートするソケット (たとえば、 .Dv SOCK_STREAM ) 上の .Dq 帯域外 データを送信するのに使用されます。 基層となっているプロトコルも .Dq 帯域外 データをサポートする必要があります。 .Dv MSG_EOR は、この概念をサポートするプロトコル用のレコード マークを示すのに使用されます。 .Dv MSG_EOF は、ソケットの送信側のシャットダウンを要求し、 指定データの終了時に、適切な指示の送信を要求します。 このフラグは、 .Dv PF_INET プロトコルファミリの .Dv SOCK_STREAM ソケットについてだけ実装され、トランザクション .Tn TCP ( .Xr ttcp 4 を参照) を実装するのに使用されます。 .Dv MSG_DONTROUTE は通常、診断プログラムまたは経路設定プログラムで使用されます。 .Pp .Fa msghdr 構造体の詳細については、 .Xr recv 2 を参照してください。 .Sh 戻り値 この呼び出しは送信された文字数を返し、エラーが起きた場合は -1 を返します。 .Sh エラー .Fn send , .Fn sendto および .Fn sendmsg は次の場合に実行に失敗します。 .Bl -tag -width Er .It Bq Er EBADF 無効な記述子が指定されました。 .It Bq Er EACCES 宛先アドレスはブロードキャストアドレスであり、 .Dv SO_BROADCAST がソケット上に設定されていません。 .It Bq Er ENOTSOCK 引数 .Fa s がソケットではありません。 .It Bq Er EFAULT パラメータについて無効なユーザ空間アドレスが指定されました。 .It Bq Er EMSGSIZE ソケットはメッセージが不可分に送信されることを要求していますが、 送信されるメッセージのサイズでは不可能です。 .It Bq Er EAGAIN ソケットは非ブロッキングとマークされており、 要求された操作はブロックされるでしょう。 .It Bq Er ENOBUFS システムは内部バッファを割り当てることができませんでした。 バッファが利用可能になったときに操作が成功する可能性があります。 .It Bq Er ENOBUFS ネットワークインタフェース用の出力キューが満杯でした。 これは一般に、インタフェースが送信を停止したものの、 それが一時的な輻輳によって起こったことを示します。 .It Bq Er EHOSTUNREACH リモートホストに到達できませんでした。 +.It Bq Er EHOSTDOWN +リモートホストがダウンしていました。 .El .Sh バグ .Fn sendmsg はデータが転送されてしまうまで必ずしもブロックしないので、 オープンされているファイル記述子を .Dv AF_UNIX ドメインソケット ( .Xr recv 2 を参照) 経由で送信し、それから実際に送信される前に .Fn close する可能性があります。 その結果、受信側は閉じたファイル記述子を得ることになります。 これを防止する確認メカニズムの実装は アプリケーションで行う必要があります。 .Sh 関連項目 .Xr fcntl 2 , .Xr getsockopt 2 , .Xr recv 2 , .Xr select 2 , .Xr socket 2 , .Xr write 2 .Sh 歴史 .Fn send 関数呼び出しは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sendfile.2 b/ja_JP.eucJP/man/man2/sendfile.2 index f835cfe3db..95422daa9e 100644 --- a/ja_JP.eucJP/man/man2/sendfile.2 +++ b/ja_JP.eucJP/man/man2/sendfile.2 @@ -1,192 +1,192 @@ .\" Copyright (c) 1998, David Greenman .\" 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.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 .Os .Sh 名称 .Nm sendfile .Nd ファイルをソケットに送信 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .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 は、 -ファイルの終わりまで送信するという特殊な意味を持ちます。 +引数は、ファイルの何バイトを送信する必要があるかを指定します。 +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 tailers -ポインタは、 NULL でない場合に構造体 iovec 構造の配列を -指します。 iovec 構造体の詳細については、 +.Fa trailers +ポインタは、NULL でない場合に構造体 iovec 構造の配列を +指します。iovec 構造体の詳細については、 .Fn writev システムコールを参照してください。 これらの配列内の iovecs の数は、 .Fa hdr_cnt と .Fa trl_cnt によって指定されます。 .Pp NULL でない場合に、システムは、ソケット上に送信された合計バイト数を、 .Fa sbytes によって指された変数に書込みます。 .Pp .Fa flags -引数は現時点では未定義であり、 0 に指定する必要があります。 +引数は現時点では未定義であり、0 に指定する必要があります。 .Pp 非ブロッキング入出力用に指定されたソケットを使用するときに、 .Fn sendfile は要求されたよりも少ないバイトを送信することがあります。 この場合、正常に書込まれたバイト数が .Fa *sbytes (指定されている場合) に返され、エラー .Er EAGAIN が返されます。 .Sh 実装上の注釈 .Fn sendfile の .Fx での実装は「0 コピー」です。すなわち、ファイルデータのコピー が回避されるように最適化されています。 .Pp 非スレッドライブラリでは、 .Fn sendfile は .Va sendfile システムコールとして実装されています。 .Pp スレッドライブラリでは、 .Va sendfile システムコールは .Fn _thread_sys_sendfile にアセンブルされ、 .Fn sendfile は読取り用に .Fa fd -、書込み用に +を、書込み用に .Fa s をロックしてから .Fn _thread_sys_sendfile を呼び出す関数として実装されています。 .Fn _thread_sys_sendfile の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。 戻る前に、 .Fn sendfile は .Fa fd と .Fa s をアンロックします。 .Sh 戻り値 正常に完了すると、 .Fn sendfile は 0 を返します。そうでない場合は -1 が返され、 エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Bl -tag -width Er .It Bq Er EBADF .Fa fd が有効なファイル記述子ではありません。 .It Bq Er EBADF .Fa s が有効なソケット記述子ではありません。 .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 EAGAIN ソケットは非ブロッキング入出力と指定されており、ソケットバッファが 満杯であるためにすべてのデータが送信されませんでした。 sbytes が指定された場合、送信が正常に完了したバイト数が .Fa *sbytes 内に返されます。 .El .Sh 関連項目 .Xr open 2 , .Xr send 2 , .Xr socket 2 , .Xr writev 2 .Sh 歴史 .Fn sendfile -は、はじめて +は、 .Fx 3.0 -で登場しました。このマニュアルページは +ではじめて登場しました。このマニュアルページは .Fx 3.1 ではじめて登場しました。 .Sh 作者 .Fn sendfile とこのマニュアルページは .An David Greenman Aq dg@root.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/setreuid.2 b/ja_JP.eucJP/man/man2/setreuid.2 index e846c0b444..c022c122fa 100644 --- a/ja_JP.eucJP/man/man2/setreuid.2 +++ b/ja_JP.eucJP/man/man2/setreuid.2 @@ -1,89 +1,90 @@ .\" 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. .\" .\" @(#)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 .Os BSD 4 .Sh 名称 .Nm setreuid .Nd 実ユーザ ID と実効ユーザ ID を設定する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .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 .Fn setreuid 関数は set-user-ID プログラム内で実ユーザ ID と実効ユーザ ID を スワップし、 set-user-ID の値を一時的に放棄するために使われてきました。 この目的は、現在では .Fn seteuid 関数 ( .Xr setuid 2 を参照 ) を使用するとより良く達成できます。 .Pp 実ユーザ ID と実効ユーザ ID を同じ値に設定するときは、標準の .Fn setuid 関数を使用するようにしてください。 .Sh 戻り値 +.\".Rv -std setreuid 処理が正常に完了すると、値 0 が返されます。 そうでない場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Bl -tag -width Er .It Bq Er EPERM 現在のプロセスがスーパユーザでなく、実効ユーザ ID を実ユーザ ID に 変更する以外の変更が指定されました。 .El .Sh 関連項目 .Xr getuid 2 , .Xr issetugid 2 , .Xr seteuid 2 , .Xr setuid 2 .Sh 歴史 .Fn setreuid システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/shmget.2 b/ja_JP.eucJP/man/man2/shmget.2 index fa821cf355..6e5e95a5e1 100644 --- a/ja_JP.eucJP/man/man2/shmget.2 +++ b/ja_JP.eucJP/man/man2/shmget.2 @@ -1,135 +1,135 @@ .\" .\" Copyright (c) 1995 David Hovemeyer .\" .\" 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. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS 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/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 .Os FreeBSD .Sh 名称 .Nm shmget .Nd 共有メモリの識別子の取得 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .Fd #include .Ft int .Fn shmget "key_t key" "int size" "int flag" .Sh 解説 .Fn shmget は、 .Fa key と .Fa flag の値に従って、新しく作成した共有メモリセグメント または既存の共有メモリセグメントの識別子を戻します。 .\" .\" The following bit about keys and modes also applies to semaphores .\" and message queues. .\" キーはファイル名に似たもので、IPC オブジェクトを 指定するハンドルを提供するものです。 キーの指定方法には 3 つ方法があります。 .Bl -bullet .It IPC_PRIVATE を指定すると新しい IPC オブジェクトが作成されます。 .It 整定数を指定できます。 .Fa key に対応する IPC オブジェクトが指定されておらず、IPC_CREAT ビットが .Fa flag で設定されている場合は、新しい IPC オブジェクトが作成されます。 -.It +.It .Fn ftok を使用し、パス名からキーを作成できます。 .Xr ftok 3 を参照してください。 .El .Pp 新しく作成された IPC オブジェクトのモードは、 .Fa flag パラメータに渡す以下の定数の論理和で決まります。 .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 .\" and use .\" .\" end section about keys and modes .\" .Pp 新しい共有メモリセグメントを作成する場合、 .Fa size は、新しいセグメントのバイト単位のサイズを表わします。 セグメントのサイズは、カーネルに便利なようにある倍数に 切り上げられることがあります (すなわちページサイズ)。 .Sh 戻り値 処理が正常に完了すると、 .Fn shmget は共有メモリセグメントの正整数の識別子を返します。 そうでない場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー 以下の場合、 .Fn shmget は処理を失敗します。 .Bl -tag -width Er .\" .\" XXX What about ipcperm failing? .\" .It Bq Er EINVAL 指定したサイズが、既存セグメントのサイズより大きいです。 指定したサイズが、システムの最低値より小さいか、最大値より大きいです。 .It Bq Er ENOENT .Fa key と一致する共有メモリセグメントがなく、IPC_CREAT が指定されていません。 .It Bq Er ENOSPC 要求を満たす十分なメモリを、カーネルが割り当てられません。 .It Bq Er EEXIST IPC_CREAT と IPC_EXCL が指定され、 .Fa key に対応する共有メモリセグメントがすでに存在します。 .El .Sh 関連項目 .Xr shmat 2 , .Xr shmctl 2 , -.Xr shmdt 2 , +.Xr shmdt 2 , .Xr ftok 3 diff --git a/ja_JP.eucJP/man/man2/shutdown.2 b/ja_JP.eucJP/man/man2/shutdown.2 index 4ab102da17..6c214460b4 100644 --- a/ja_JP.eucJP/man/man2/shutdown.2 +++ b/ja_JP.eucJP/man/man2/shutdown.2 @@ -1,96 +1,108 @@ .\" 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. .\" .\" @(#)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 全二重接続の一部をシャットダウン .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .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 EINVAL +引数 +.Fa how +が有効な値ではありません。 +.It Bq Er ENOTCONN +ソケットは接続されていません。 .It Bq Er ENOTSOCK +引数 .Fa s -がソケットではなくファイルです。 -.It Bq Er ENOTCONN -指定されたソケットが接続されていません。 +はソケットを参照していません。 .El .Sh 関連項目 .Xr connect 2 , .Xr socket 2 .Sh 規格 .Fn shutdown 関数は、完成時には .St -p1003.1g に準拠します。 .Sh 歴史 .Fn shutdown 関数呼び出しは、 .Bx 4.2 で追加されました。 -.Dv SHUT_ +.Dv SHUT_RD , SHUT_WR +と +.Dv SHUT_RDWR 定数は、 .St -p1003.1g に追加されました。 diff --git a/ja_JP.eucJP/man/man2/sigpending.2 b/ja_JP.eucJP/man/man2/sigpending.2 index 5c2d2cdcca..2e26fd042e 100644 --- a/ja_JP.eucJP/man/man2/sigpending.2 +++ b/ja_JP.eucJP/man/man2/sigpending.2 @@ -1,83 +1,79 @@ .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Berkeley Software Design, Inc. .\" .\" 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. .\" .\" @(#)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 書式 .Fd #include .Ft int .Fn sigpending "sigset_t *set" .Sh 解説 .Fn sigpending 関数は、 .Fa set で示された場所の呼び出しプロセスの配信が保留になっているシグナルの マスクを戻します。シグナルは、現在マスクをかけられているとき、 または配信前に一時的に保留になります (通常、後者を検出することはできません)。 .Sh 戻り値 戻り値 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 .Sh 規格 .Fn sigpending 関数呼び出しは、 .St -p1003.1-90 に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/socket.2 b/ja_JP.eucJP/man/man2/socket.2 index 66aeb6d6cd..38f5569360 100644 --- a/ja_JP.eucJP/man/man2/socket.2 +++ b/ja_JP.eucJP/man/man2/socket.2 @@ -1,294 +1,288 @@ .\" 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 .\" 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. +.\" 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. .\" -.\" 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 .Os BSD 4.2 .Sh 名称 .Nm socket .Nd 通信のエンドポイントの作成 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .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 と呼ばれていた、ホスト内プロトコル PF_UNIX ホスト内プロトコル、使用は奨励されない。 PF_LOCAL を使用のこと PF_INET IPv4 プロトコル PF_IMPLINK ARPAnet IMP アドレス PF_PUP BSP のような PUP プロトコル PF_CHAOS MIT CHAOS プロトコル PF_NS XNS (Xerox Network Systems) プロトコル PF_ISO ISO プロトコル 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) プロトコル PF_LAT LAT プロトコル 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 .Pp ソケットには、通信の種類を指定する .Fa タイプ があります。現在、定義されているタイプは以下のとおりです。 .Pp .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 .\" となっていたが、 .\" SOCK_RDM Reliably-delivered packet .\" SOCK_SEQPACKET Sequenced packet stream, .\" に変更 。send-pr済み (docs/25797) yuko@veltec.co.jp .Pp .Dv SOCK_STREAM タイプは、連続した、信頼性のある、双方向接続ベースの バイトストリームを提供します。帯域外データ転送メカニズムが サポートされることもあります。 .Dv SOCK_DGRAM -ソケットでは、データグラム -(コネクションレスで信頼性のない、最大長が固定の (一般的には小さい) -メッセージ) -がサポートされます。 +ソケットでは、データグラム (コネクションレスで信頼性のない、 +最大長が固定の (一般的には小さい) メッセージ) がサポートされます。 .Dv SOCK_SEQPACKET ソケットは、連続した、信頼性のある、双方向接続ベースの 最大長が固定のデータグラムの転送を提供します。 各読取りシステムコールでパケット全体を読み取る必要があるかもしれません。 この機能はプロトコル固有のもので、現在のところ .Dv PF_NS でしか実装されていません。 .Dv SOCK_RAW -ソケットでは、内部ネットワークプロトコ -ルとインタフェースにアクセスできます。スーパユーザしか使用できない +ソケットでは、内部ネットワークプロトコルとインタフェースにアクセスできます。 +スーパユーザしか使用できない .Dv SOCK_RAW タイプ、および計画されているがまだ実装されていない .Dv SOCK_RDM については、ここでは説明しません。 .Pp .Fa protocol では、ソケットで使用する特定プロトコルを指定します。通常の場合は、 1 つのプロトコルのみが存在して、指定したプロトコルファミリの 特定ソケットタイプをサポートします。しかし、複数のプロトコルが 存在することも可能です。この場合は、特定プロトコルをこの方法で 指定する必要があります。使用するプロトコル番号は、 通信を行う .Dq 通信ドメイン に固有です。 .Xr protocols 5 を参照してください。 .Pp タイプ .Dv SOCK_STREAM のソケットは、パイプに類似した全二重バイトストリームです。 ストリームソケットでは、 .Em 接続済み状態 にしてからデータを送受信する必要があります。別のソケットへの接続は、 .Xr connect 2 を呼び出して作成できます。接続されたら、 .Xr read 2 と .Xr write 2 を呼び出すか、 .Xr send 2 と .Xr recv 2 の変種を呼び出してデータを転送できます。(インターネットファミリなど、 -一部のプロトコルファミリでは、「暗黙接続」という観念が -サポートされています。この接続では、 +一部のプロトコルファミリでは、 +.Dq 暗黙接続 +という観念がサポートされています。この接続では、 .Xr sendto 2 を呼び出し、接続オペレーションに乗せてデータを送信できます。) セッションが終了したら、 .Xr close 2 を実行しても構いません。帯域外データは、 .Xr send 2 で説明されているように送信し、 .Xr recv 2 で説明されているように受信できます。 .Pp .Dv SOCK_STREAM の実装に使用する通信プロトコルでは、データの喪失や重複がないことが 保証されます。ピアプロトコルにバッファ空間があるデータの一部を 合理的な時間内に問題なく転送できない場合は、 接続が破損したとみなされて呼び出しがエラーとなり、 -1 が戻されてグローバル変数 .Va errno に .Er ETIMEDOUT が設定されます。その他の動作がない場合、 プロトコルは約 1 分ごとに転送を強制し、ソケットの .Dq 接続 -を任意に維持します。一定期間 (例、5 分間) +を任意に維持します。一定期間 (例えば 5 分間) アイドル接続で応答がない場合はエラーとなります。 破損したストリームでプロセスが送信すると、 .Dv SIGPIPE シグナルが発生します。 この場合、シグナルを処理しないプロセスは終了します。 .Pp .Dv SOCK_SEQPACKET ソケットは、 .Dv SOCK_STREAM ソケットとほぼ同じシステムコールです。 .Xr read 2 を呼び出しても、要求された量のデータしか戻されず、 受信パケットの残りの部分は放棄される点のみが異なります。 .Pp .Dv SOCK_DGRAM ソケットと .Dv SOCK_RAW ソケットでは、 .Xr send 2 の呼び出しで指定された通信相手にデータグラムを送信できます。 一般的にデータグラムは、次のデータグラムのアドレスを戻す .Xr recvfrom 2 で受信されます。 .Pp .Xr fcntl 2 を呼び出すと、帯域外データを受信した場合の .Dv SIGURG シグナルを受信するプロセスグループを指定できます。 非ブロッキング入出力、 および入出力イベントの非同期通知も、 .Dv SIGIO で有効にできます。 .Pp ソケットのオペレーションは、ソケットレベルの .Em オプション で制御されます。このオプションは、ファイル .Ao Pa sys/socket.h Ac に定義されています。 .Xr setsockopt 2 はオプションの設定に、 .Xr getsockopt 2 はオプションの入手に使用します。 .Sh 戻り値 エラーが発生すると -1 が戻されます。エラーが発生しなかった場合は、 ソケットを参照する記述子が戻されます。 .Sh エラー 以下のような場合、 .Fn socket の呼び出しはエラーになります。 .Bl -tag -width Er .It Bq Er EPROTONOSUPPORT プロトコルタイプか指定されたプロトコルがドメインでサポートされていません。 .It Bq Er EMFILE プロセスごとの記述子テーブルが満杯です。 .It Bq Er ENFILE システムファイルテーブルが満杯です。 .It Bq Er EACCES 指定されたタイプやプロトコルのソケットを作成する権限が拒否されました。 .It Bq Er ENOBUFS バッファ空間が不足しています。 充分なリソースが解放されるまでソケットを作成できません。 .El .Sh 関連項目 .Xr accept 2 , .Xr bind 2 , .Xr connect 2 , .Xr getpeername 2 , .Xr getsockname 2 , .Xr getsockopt 2 , .Xr ioctl 2 , .Xr listen 2 , .Xr read 2 , .Xr recv 2 , .Xr select 2 , .Xr send 2 , .Xr shutdown 2 , .Xr socketpair 2 , .Xr write 2 , .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 .Rs .%T "BSD Interprocess Communication Tutorial" .%B PS1 .%N 8 .Re .Sh 歴史 .Fn socket 関数呼び出しは .Bx 4.2 で登場しました。 - diff --git a/ja_JP.eucJP/man/man2/write.2 b/ja_JP.eucJP/man/man2/write.2 index 5f878d96fb..1bf02fc831 100644 --- a/ja_JP.eucJP/man/man2/write.2 +++ b/ja_JP.eucJP/man/man2/write.2 @@ -1,271 +1,274 @@ .\" 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. .\" .\" @(#)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 .Os BSD 4 .Sh 名称 .Nm write , .Nm writev , .Nm pwrite .Nd 出力の書込み .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Fd #include .Ft ssize_t .Fn write "int d" "const void *buf" "size_t nbytes" .Ft ssize_t .Fn writev "int d" "const struct iovec *iov" "int iovcnt" .Ft ssize_t .Fn pwrite "int d" "const void *buf" "size_t nbytes" "off_t offset" .Sh 解説 .Fn write は、 .Fa buf が指すバッファから記述子 .Fa d が参照するオブジェクトに .Fa nbytes のデータを書込もうとします。 .Fn writev は同様の動作をしますが、iov[0], iov[1], ..., iov[iovcnt-1] という .Fa iov 配列のメンバが指定する .Fa iovcnt バッファから出力データを集めます。 .Fn pwrite は同じ機能を実行しますが、ファイルポインタを修正せずに、 ファイルの特定場所に書込みます。 .Pp .Fn writev では、 .Fa iovec 構造体が以下のように定義されています。 .Pp .Bd -literal -offset indent -compact struct iovec { char *iov_base; /* ベースアドレス */ size_t iov_len; /* 長さ */ }; .Ed .Pp 各 .Fa iovec エントリは、書込むデータがあるメモリのベースアドレスと領域の長さを指定します。 .Fn writev は、常に領域全体を書込んでから次に進みます。 .Pp シーク機能があるオブジェクトでは、 .Fn write は .Fa d に関連するポインタが指定する位置で開始します。 .Xr lseek 2 を参照してください。 .Fn write から戻ると、ポインタは書込まれたバイト数だけ進みます。 .Pp シーク機能がないオブジェクトでは、常に現在位置から書込みます。 このようなオブジェクトに関連するポインタの値は未定義です。 .Pp 実ユーザがスーパユーザでない場合、 .Fn write は、set-user-ID ビットをファイルでクリアします。 これにより、スーパユーザが所有する書込み可能な set-user-ID ファイルを 「捕えた」ユーザは、システムセキュリティを突破できなくなります。 .Pp ソケットのように、フローコントロールの影響を受けるオブジェクトで 非ブロッキング I/O を使用すると、 .Fn write と .Fn writev は、要求したより少ないバイト数を書込むことがあります。 戻り値に注意し、可能な場合にはオペレーションの残りを再度試してください。 .Sh 実装上の注意事項 非スレッドライブラリでは、 .Fn write は .Va write システムコールのように実装されます。 .Pp スレッドライブラリでは、 .Fn write システムコールは .Fn _thread_sys_write に組み込まれ、 .Fn write は、読み書き用に .Fa d をロックしてから .Fn _thread_sys_write を呼び出す関数のように実装されます。 .Va _thread_sys_write の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。 .Fn write は戻る前に .Fa d のロックを解除します。 .Pp 非スレッドライブラリでは、 .Fn writev は .Va writev システムコールのように実装されます。 .Pp スレッドライブラリでは、 .Fn writev システムコールは .Fn _thread_sys_writev に組み込まれ、 .Fn writev は、読み書き用に .Fa d をロックしてから .Fn _thread_sys_writev を呼び出す関数のように実装されます。 .Fn _thread_sys_writev の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。 .Fn writev は戻る前に .Fa d のロックを解除します。 .Sh 戻り値 処理が正常に完了すると、書込まれたバイト数が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn write , .Fn writev , .Fn pwrite は、以下の場合にエラーとなり、ファイルポインタは変更されずに残ります。 .Bl -tag -width Er .It Bq Er EBADF .Fa d が、書込み用に開かれた有効な記述子ではありません。 .It Bq Er EPIPE プロセスによる読取り用に開かれていないパイプに書込もうとしました。 .It Bq Er EPIPE 通信相手のソケットに接続していないタイプ .Dv SOCK_STREAM のソケットに書込もうとしました。 .It Bq Er EFBIG プロセスのファイルサイズ制限か最大ファイルサイズを越えたファイルに 書込もうとしました。 .It Bq Er EFAULT .Fa iov の一部、またはファイルに書込むデータは、 プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINVAL .Fa d に関連するポインタが負になっています。 .It Bq Er ENOSPC ファイルを含むファイルシステムに、充分なスペースが残っていません。 .It Bq Er EDQUOT ファイルを含むファイルシステムのユーザのディスクブロック割当量が 使い尽くされています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.It Bq Er EINTR +書込みが完了する前にシグナルが割り込みました。 .It Bq Er EAGAIN -ファイルは非ブロッキング I/O にマークされており、 +ファイルは非ブロッキング入出力にマークされており、 すぐにデータを書込める状態ではありません。 .El .Pp .Fn writev は、以下のエラーを戻すことがあります。 .Bl -tag -width Er .It Bq Er EDESTADDRREQ .Xr connect 2 を使用して書込み先アドレスを設定した .Ux ドメインデータグラムソケットに書込む場合に、書込み先が使用できません。 .It Bq Er EINVAL .Fa iovcnt が 0 以下になっているか、 .Dv UIO_MAXIOV より、大きくなっています。 .It Bq Er EINVAL .Fa iov 配列 .Fa iov_len 値の 1 つが負になっています。 .It Bq Er EINVAL .Fa iov 配列 .Fa iov_len 値の合計が、32 ビット整数をオーバフローしました。 .It Bq Er ENOBUFS ソケットに書き出している時に mbuf のプールを使い尽くしました。 .El .Pp .Fn pwrite 呼び出しは、以下のエラーを戻すことがあります。 .Bl -tag -width Er .It Bq Er EINVAL 指定したファイルオフセットが正しくありません。 .It Bq Er ESPIPE ファイル記述子が、パイプ、ソケット、FIFO に関連しています。 .El .Sh 関連項目 .Xr fcntl 2 , .Xr lseek 2 , .Xr open 2 , .Xr pipe 2 , .Xr select 2 .Sh 規格 .Fn write 関数呼び出しは、 .St -p1003.1-90 に準拠しています。 .Fn writev 関数と .Fn pwrite 関数は、 .St -xpg4.2 で登場しました。 .Sh 歴史 .Fn pwrite 関数呼び出しは、 .At V.4 で登場しました。 .Fn writev 関数呼び出しは、 .Bx 4.2 で登場しました。 .Fn write 関数呼び出しは、 .At v6 で登場しました。