diff --git a/ja_JP.eucJP/man/man2/accept.2 b/ja_JP.eucJP/man/man2/accept.2 index 5c637d5cdf..dfda258c48 100644 --- a/ja_JP.eucJP/man/man2/accept.2 +++ b/ja_JP.eucJP/man/man2/accept.2 @@ -1,166 +1,170 @@ .\" 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.28 2003/12/24 18:52:41 alfred Exp % +.\" %FreeBSD: src/lib/libc/sys/accept.2,v 1.30 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd December 11, 1993 .Dt ACCEPT 2 .Os .Sh 名称 .Nm accept .Nd ソケット上の接続を受け入れる .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int .Fn accept "int s" "struct sockaddr * restrict addr" "socklen_t * restrict addrlen" .Sh 解説 引数 .Fa s は .Xr socket 2 で作成され、 .Xr bind 2 でアドレスにバインドされ、 .Xr listen 2 も済ませて接続を待ち受けているソケットです。 .Fn accept システムコールは、待ち行列上の最初の接続要求を取り出し、 +新しいソケットを作成し、オリジナルのソケット .Fa s -と同じプロパティの新しいソケットを作成し、 -ソケットのための新しいファイル記述子を割り当てます。 +から +.Dv O_NONBLOCK +プロパティの状態を継承した +そのソケットへ新しいファイル記述子を割り当てます。 +.Pp 接続要求が待ち行列上に存在せず、 -しかもソケットが非ブロッキングとマークされていない場合、 +しかもオリジナルのソケットが非ブロッキングとマークされていない場合、 .Fn accept は接続要求があるまで呼び出し側をブロックします。 -ソケットが非ブロッキングとマークされており、 +オリジナルのソケットが非ブロッキングとマークされており、 しかも待ち行列に接続要求が存在しない場合、 .Fn accept は後述のようにエラーを返します。 接続が成立したソケットは、それ以上の接続を受け入れるために 使用できません。 オリジナルのソケット .Fa s は開いたままです。 .Pp 引数 .Fa addr は結果の引数で、 通信レイヤに既知の接続エンティティのアドレスで埋められます。 .Fa addr 引数の正確な形式は通信が行われるドメインで決まります。 アドレス情報が要望されない場合には、 .Fa addr にヌルポインタを指定することができます。 この場合は .Fa addrlen は使用されず、これもヌルであるべきです。 そうでない場合には .Fa addrlen は、値と結果の引数です。 これは最初は .Fa addr が指す空間のサイズを含んでいなければなりません。 戻り時には、返されるアドレスの実際の長さ (バイト単位) を含むことになります。 この呼び出しは、コネクションをベースとしたソケットタイプ、 現在では .Dv SOCK_STREAM とともに使用されます。 .Pp 読取りでソケットを .Xr select 2 することによって、 .Fn accept するソケットを選ぶことができます。 .Pp .Tn ISO または .Tn DATAKIT のような明瞭な確認が必要な特定のプロトコルでは、 .Fn accept は単に次の接続要求を待ち行列から除くだけで、 確認は行わないと考えられます。 確認は、新しいファイル記述子についての 通常の読取りまたは書込みによって行うことができ、 拒絶は新しいソケットを閉じる事によって実現できます。 .Pp ある種のアプリケーションにおいては、内向きの接続を .Xr accept_filter 9 で前処理することにより、性能が向上するかもしれません。 .Sh 戻り値 システムコールはエラーがあった場合 \-1 を返します。 処理が正常に完了した場合、受け付けたソケットの 記述子である非負整数を返します。 .Sh エラー .Fn accept システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EBADF 記述子が有効ではありません。 .It Bq Er EINTR .Fn accept 操作が割り込まれました。 .It Bq Er EMFILE プロセスの記述子テーブルが満杯です。 .It Bq Er ENFILE システムファイルテーブルが満杯です。 .It Bq Er ENOTSOCK 記述子がファイルを参照しておりソケットではありません。 .It Bq Er EINVAL .Xr listen 2 がソケット記述子に対して呼び出されていません。 .It Bq Er EFAULT .Fa addr 引数がユーザアドレス空間の書込み可能な部分にありません。 .It Bq Er EWOULDBLOCK ソケットが非ブロッキングとマークされ、さらに 受け付けるべき接続要求が存在しません。 .It Bq Er ECONNABORTED 接続要求が到着しましたが、待ち行列で待機している 間に閉じてしまいました。 .El .Sh 関連項目 .Xr bind 2 , .Xr connect 2 , .Xr getpeername 2 , .Xr listen 2 , .Xr select 2 , .Xr socket 2 , .Xr accept_filter 9 .Sh 歴史 .Fn accept システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/aio_error.2 b/ja_JP.eucJP/man/man2/aio_error.2 index bcecf3e466..2ba2311228 100644 --- a/ja_JP.eucJP/man/man2/aio_error.2 +++ b/ja_JP.eucJP/man/man2/aio_error.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_error.2,v 1.18 2003/01/13 10:37:13 tjr Exp % +.\" %FreeBSD: src/lib/libc/sys/aio_error.2,v 1.19 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 2, 1999 .Dt AIO_ERROR 2 .Os .Sh 名称 .Nm aio_error .Nd 非同期入出力操作のエラー状態を取り出す (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .In aio.h .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 , .Xr aio 4 .Sh 規格 .Fn aio_error システムコールは .St -p1003.1 に適合しています。 .Sh 歴史 .Fn aio_error システムコールは .Fx 3.0 ではじめて登場しました。 .Sh 作者 このマニュアルページは .An Wes Peters Aq wes@softweyr.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_read.2 b/ja_JP.eucJP/man/man2/aio_read.2 index 871a2b82f3..1e52c24293 100644 --- a/ja_JP.eucJP/man/man2/aio_read.2 +++ b/ja_JP.eucJP/man/man2/aio_read.2 @@ -1,208 +1,208 @@ .\" Copyright (c) 1998 Terry Lambert .\" 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/aio_read.2,v 1.19 2003/01/14 02:37:06 tjr Exp % +.\" %FreeBSD: src/lib/libc/sys/aio_read.2,v 1.21 2004/07/03 22:30:09 ru Exp % .\" .\" $FreeBSD$ .Dd November 17, 1998 .Dt AIO_READ 2 .Os .Sh 名称 .Nm aio_read .Nd ファイルからの非同期読取り (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .In aio.h .Ft int .Fn aio_read "struct aiocb *iocb" .Sh 解説 .Fn aio_read システムコールは、呼び出しプロセスに 記述子 .Fa iocb->aio_fildes のオフセット .Fa iocb->aio_offset で始まる .Fa iocb->aio_nbytes を、 .Fa iocb->aio_buf が指すバッファに 読み取れるようにします。 呼び出しは、読取り要求が記述子に待ち行列として入れられ るとただちに戻ります。 呼び出しが戻った時点で読取りは完了していることもありますし、 完了していないこともあります。 .Pp _POSIX_PRIORITIZED_IO が定義されており、 しかも記述子がこれをサポートしている場合に 待ち行列に入れられている操作は、呼び出しプロセスの優先順位から .Fa iocb->aio_reqprio を減じたものに等しい優先順位で発行されます。 .Pp .Fa iocb->aio_lio_opcode 引数は .Fn aio_read システムコールによって無視されます。 .Pp .Fa iocb ポインタは、進行中に待ち行列に入れられた戻り状態または エラー状態を判定するために、 .Fn aio_return と .Fn aio_error の引数として後に使用される可能性があります。 .Pp 要求が待ち行列に入れられない場合 (一般には無効な引数のために)、 呼び出しは要求を待ち行列に入れずに戻ります。 .Pp 要求が正常に待ち行列に入れられると、コンテキストとして要求の間に .Fa iocb->aio_offset の値が修正される可能性があるので、 この値は要求が待ち行列に入れられた後は参照してはなりません。 .Sh 制限 .Fa iocb が指す非同期入出力制御ブロック構造体、およびその構造体の .Fa iocb->aio_buf メンバが参照するバッファは、操作が完了するまで有効である必要があります。 このため、これらのオブジェクトについての自動 (スタック) 変数の 使用は推奨されません。 .Pp カーネルへの正しくないコンテキスト情報の引き渡しを回避するために、 非同期入出力制御バッファ .Fa iocb は .Fn aio_read 呼び出しの前に 0 にする必要があります。 .Pp 要求が待ち行列に入れられた後、要求が完了するまでは 非同期入出力制御ブロック構造体またはバッファ内容の修正は許されていません。 .Pp .Fa iocb->aio_offset 内のファイルオフセットが、 .Fa iocb->aio_fildes の最大オフセットを越えている場合は入出力は行われません。 .Sh 戻り値 .Rv -std aio_read .Sh 診断 なし。 .Sh エラー .Fn aio_read システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EAGAIN システムリソースの限界のために要求は待ち行列に入れられませんでした。 .It Bq Er ENOSYS .Fn aio_read システムコールがサポートされていません。 .El .Pp 以降の条件は、 .Fn aio_read システムコールが行われたときに同期的に検出されることもありますし、 その後いつでも非同期的に検出されることもあります。 これらが呼び出し時に検出された場合、 .Fn aio_read システムコールは -1 を返し、 .Va errno を適切に設定します。 そうでない場合は、 .Fn aio_return 関数を呼び出し、-1 を返し、 .Va errno に返されている実際の値を判定するために .Fn aio_error を呼び出す必要があります。 .Pp .Bl -tag -width Er .It Bq Er EBADF .Ar iocb->aio_fildes 引数が無効です。 .It Bq Er EINVAL オフセット .Fa iocb->aio_offset が有効でないか、 .Fa iocb->aio_reqprio によって指定される優先順位が 有効な優先順位でないか、または .Fa iocb->aio_nbytes によって指定されるバイト数が有効でありません。 .It Bq Er EOVERFLOW ファイルは正規のファイルであり、 .Fa iocb->aio_nbytes は 0 より大きくて .Fa iocb->aio_offset 内の開始オフセットはファイルの末尾の前にあるものの、 .Fa iocb->aio_fildes オフセット最大にあるかまたはそれを越えています。 .El .Pp 要求が正常に待ち行列に入れられたものの、 後でキャンセルされるかエラーが発生した場合、 .Fn aio_return システムコールによって返された値が .Xr read 2 システムコールごとによるものであり、 .Fn aio_error システムコールによって返される値が .Xr read 2 システムコールから返されたエラーの 1 つであるか、または次の 1 つです。 .Bl -tag -width Er .It Bq Er EBADF .Fa iocb->aio_fildes 引数が読取りについては無効です。 .It Bq Er ECANCELED 要求は .Fn aio_cancel の呼び出しによって明示的にキャンセルされました。 .It Bq Er EINVAL オフセット .Fa iocb->aio_offset は無効です。 .El .Sh 関連項目 .Xr aio_cancel 2 , .Xr aio_error 2 , .Xr aio_return 2 , .Xr aio_suspend 2 , .Xr aio_waitcomplete 2 , .Xr aio_write 2 , .Xr aio 4 .Sh 規格 .Fn aio_read システムコールは .St -p1003.1 に適合しています。 .Sh 歴史 .Fn aio_read システムコールは .Fx 3.0 ではじめて登場しました。 .Sh 作者 このマニュアルページは .An Terry Lambert Aq terry@whistle.com が作成しました。 .Sh バグ .Fa iocb->_aiocb_private 内の無効な情報はカーネルを混乱させる可能性があります。 diff --git a/ja_JP.eucJP/man/man2/aio_suspend.2 b/ja_JP.eucJP/man/man2/aio_suspend.2 index fcdb7e3d2f..7ca5c217b2 100644 --- a/ja_JP.eucJP/man/man2/aio_suspend.2 +++ b/ja_JP.eucJP/man/man2/aio_suspend.2 @@ -1,104 +1,104 @@ .\" 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.19 2003/01/13 10:37:13 tjr Exp % +.\" %FreeBSD: src/lib/libc/sys/aio_suspend.2,v 1.20 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 2, 1999 .Dt AIO_SUSPEND 2 .Os .Sh 名称 .Nm aio_suspend .Nd 非同期入出力操作完了、またはタイムアウト経過まで延期する (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .In aio.h .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 が NULL ポインタでない場合、それは延期する時間の最大間隔を指定します。 .Fa timeout が NULL ポインタの場合、無期限に延期します。 ポーリングするためには .Fa timeout は値 0 の timespec 構造体を指しているべきです。 .Sh 戻り値 指定された 1 つ以上の非同期入出力要求が完了すると .Fn aio_suspend は 0 を返します。 そうでない場合は -1 を返し、後述するように .Va errno がエラー状態を示すためにセットされます。 .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 関連項目 .Xr aio_cancel 2 , .Xr aio_error 2 , .Xr aio_return 2 , .Xr aio_waitcomplete 2 , .Xr aio_write 2 , .Xr aio 4 .Sh 規格 .Fn aio_suspend システムコールは .St -p1003.1 標準に適合しています。 .Sh 歴史 .Fn aio_suspend システムコールは .Fx 3.0 ではじめて登場しました。 .Sh 作者 このマニュアルページは .An Wes Peters Aq wes@softweyr.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_write.2 b/ja_JP.eucJP/man/man2/aio_write.2 index 2edec4b58d..4af406b104 100644 --- a/ja_JP.eucJP/man/man2/aio_write.2 +++ b/ja_JP.eucJP/man/man2/aio_write.2 @@ -1,201 +1,201 @@ .\" 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_write.2,v 1.16 2003/01/13 10:37:11 tjr Exp % +.\" %FreeBSD: src/lib/libc/sys/aio_write.2,v 1.18 2004/07/03 22:30:09 ru Exp % .\" .\" $FreeBSD$ .Dd June 2, 1999 .Dt AIO_WRITE 2 .Os .Sh 名称 .Nm aio_write .Nd ファイルへの非同期書込み (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .In aio.h .Ft int .Fn aio_write "struct aiocb *iocb" .Sh 解説 .Fn aio_write システムコールによって、呼び出し元プロセスは .Fa iocb->aio_buf が指すバッファから記述子 .Fa iocb->aio_fildes に .Fa iocb->aio_nbytes を書き込めます。 書込み要求が記述子への待ち行列に入れられてしまうと、 ただちに呼び出しは戻ります。 呼び出しが戻った時点で書込みは完了している可能性も完了していない 可能性もあります。 無効な引数のためなどにより要求を待ち行列に入れられない場合は、 呼び出しは要求を待ち行列に入れずに戻ります。 .Pp .Fa iocb->aio_fildes 用に .Dv O_APPEND が設定されている場合、 .Fn aio_write 操作は呼び出しが行われたのと同じ順序で ファイルの末尾に追加されます。 .Dv O_APPEND がファイル記述子用に設定されていない場合、書込み操作はファイルの先頭に .Fa iocb->aio_offset を加えた絶対位置で行われます。 .Pp .Dv _POSIX_PRIORITIZED_IO が定義されており、かつ記述子がそれをサポートしている場合、 待ち行列に入れられた操作は呼び出しプロセスの優先順位から .Fa iocb->aio_reqprio を減算したのに等しい優先順位にされます。 .Pp .Fa iocb ポインタは待ち行列に入れられた操作の戻り値、またはエラー状態を 判定するために、 .Fn aio_return および .Fn aio_error への引数として使用できます。 .Pp 要求が正常に待ち行列に入れられると、コンテキストとして要求の間に .Fa iocb->aio_offset の値が修正できるので、 この値は要求が待ち行列に入れられた後に参照されてはなりません。 .Sh 制限 .Fa iocb が指す非同期入出力制御ブロック構造体、およびその構造体の .Fa iocb->aio_buf メンバが参照するバッファは、 操作が完了するまで有効なままでいる必要があります。 このため、これらのオブジェクトについて自動 (スタック) 変数 の使用は推奨されません。 .Pp 正しくないコンテキスト情報がカーネルに引き渡されるのを回避するために、 非同期入出力制御バッファ .Fa iocb は、 .Fn aio_write システムコールの前に 0 にする必要があります。 .Pp 要求が待ち行列に入れられた後、要求が完了するまでは 非同期入出力制御ブロック構造体、 またはバッファの内容を修正することは許されません。 .Pp .Fa iocb->aio_offset 内のファイルオフセットが .Fa iocb->aio_fildes 用のオフセット最大を越える場合は入出力は行われません。 .Sh 戻り値 .Rv -std aio_write .Sh エラー .Fn aio_write システムコールは次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EAGAIN システムリソースの制限のために要求は待ち行列に入れられませんでした。 .It Bq Er ENOSYS .Fn aio_write システムコールはサポートされていません。 .El .Pp 次の状態は .Fn aio_write システムコールが行われたときに同期的に検出でき、 その後いつでも非同期的に検出できます。 これらが呼び出し時に検出された場合に .Fn aio_write は -1 を返し .Va errno を適切に設定します。 そうでない場合は .Fn aio_return システムコールが戻り値 -1 で呼び出される必要があり、 .Va errno で返されている実際の値を判定するために .Fn aio_erro が呼び出される必要があります。 .Pp .Bl -tag -width Er .It Bq Er EBADF .Fa iocb->aio_fildes 引数が無効であるか、書込みにはオープンされていません。 .It Bq Er EINVAL オフセット .Fa iocb->aio_offset が有効でない、 .Fa iocb->aio_reqprio によって指定される優先順位が 有効な優先順位でない、または .Fa iocb->aio_nbytes によって指定されるバイト数が有効ではありません。 .El .Pp 要求が正常に待ち行列に入れられたものの、 後でキャンセルされるかエラーが発生した場合、 .Fn aio_return システムコールによって返された値は .Xr write 2 システムコールごとのものであり、 .Fn aio_error システムコールによって返された値は .Xr write 2 システムコールから返されたエラーの 1 つであるか、または次の 1 つです。 .Bl -tag -width Er .It Bq Er EBADF .Fa iocb->aio_fildes 引数は書込みについては無効です。 .It Bq Er ECANCELED 要求は .Fn aio_cancel の呼び出しによって明示的にキャンセルされました。 .It Bq Er EINVAL オフセット .Fa iocb->aio_offset は無効です。 .El .Sh 関連項目 .Xr aio_cancel 2 , .Xr aio_error 2 , .Xr aio_return 2 , .Xr aio_suspend 2 , .Xr aio_waitcomplete 2 , .Xr aio 4 .Sh 規格 .Fn aio_write システムコールは .St -p1003.1 標準に適合しています。 .Sh 歴史 .Fn aio_write システムコールは .Fx 3.0 ではじめて登場しました。 .Sh 作者 このマニュアルページは .An Wes Peters Aq wes@softweyr.com が作成しました。 .Sh バグ .Fa iocb->_aiocb_private 内の誤った情報はカーネルを混乱させる可能性があります。 diff --git a/ja_JP.eucJP/man/man2/chflags.2 b/ja_JP.eucJP/man/man2/chflags.2 index d5ba45b02a..a9f72e8065 100644 --- a/ja_JP.eucJP/man/man2/chflags.2 +++ b/ja_JP.eucJP/man/man2/chflags.2 @@ -1,180 +1,180 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)chflags.2 8.3 (Berkeley) 5/2/95 -.\" %FreeBSD: src/lib/libc/sys/chflags.2,v 1.24 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/chflags.2,v 1.25 2004/07/03 22:30:09 ru Exp % .\" .\" $FreeBSD$ .Dd May 5, 2002 .Dt CHFLAGS 2 .Os .Sh 名称 .Nm chflags , .Nm lchflags , .Nm fchflags .Nd ファイルフラグを設定する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/stat.h .In unistd.h .Ft int -.Fn chflags "const char *path" "u_long flags" +.Fn chflags "const char *path" "u_long flags" .Ft int .Fn lchflags "const char *path" "int flags" .Ft int .Fn fchflags "int fd" "u_long flags" .Sh 解説 名前が .Fa path によって指定されるファイル、または記述子 .Fa fd によって参照されるファイルのフラグが .Fa flags に変更されます。 .Pp .Fn lchflags システムコールは .Fn chflags と同じですが、指定されたファイルがシンボリックリンクだった場合の 動作が異なります。 この場合 .Fn lchflags は、リンクが指している先のファイルではなく、リンク自身のフラグを変更します。 .Pp 指定されたフラグは次の値の論理和 (or) を取ることで作成されます。 .Pp .Bl -tag -width "SF_IMMUTABLE" -compact -offset indent .It UF_NODUMP そのファイルを dump の対象外とします。 .It UF_IMMUTABLE そのファイルは変更禁止です。 .It UF_APPEND そのファイルは末尾への追加だけが可能です。 .It UF_NOUNLINK そのファイルは名前を変更したり削除できません。 .It UF_OPAQUE ユニオンファイルシステムのスタックを通じて見るとき、 このディレクトリは不透明です。 .It SF_ARCHIVED そのファイルはアーカイブ可能です。 .It SF_IMMUTABLE そのファイルは変更禁止です。 .It SF_APPEND そのファイルは末尾への追加だけが可能です。 .It SF_NOUNLINK そのファイルは名前を変更したり削除できません。 .El .Pp .Dq UF_IMMUTABLE , .Dq UF_APPEND , .Dq UF_NOUNLINK , .Dq UF_NODUMP , .Dq UF_OPAQUE フラグは、ファイルの所有者またはスーパユーザのどちらかによって 設定または設定解除できます。 .Dq SF_IMMUTABLE , .Dq SF_APPEND , .Dq SF_NOUNLINK , .Dq SF_ARCHIVED フラグは、スーパユーザだけが設定または設定解除できます。 スーパユーザのみが設定できるフラグを スーパユーザでないものが設定しようとしても 警告なしで無視されます。 これらのフラグはいつでも設定できますが、 通常は、システムがシングルユーザモードにあるときにだけ 設定解除するのが普通です (詳細については .Xr init 8 を参照してください)。 .Sh 戻り値 .Rv -std .Sh エラー .Fn chflags システムコールの処理は以下の場合に失敗します: .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EPERM 実効ユーザ ID がファイルの所有者と一致せず、かつ、実効ユーザ ID が スーパユーザでありません。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EFAULT .Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .It Bq Er EOPNOTSUPP ファイルシステムがファイルフラグをサポートしません。 .El .Pp .Fn fchflags システムコールの処理は以下の場合に失敗します: .Bl -tag -width Er .It Bq Er EBADF 記述子が有効ではありません。 .Pp .It Bq Er EINVAL .Fa fd 引数がファイルではなくソケットを参照しています。 .It Bq Er EPERM 実効ユーザ ID がファイルの所有者と一致せず、 実効ユーザ ID がスーパユーザではありません。 .It Bq Er EROFS ファイルが読取り専用システム上に存在しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .It Bq Er EOPNOTSUPP ファイルシステムがファイルフラグをサポートしません。 .El .Sh 関連項目 .Xr chflags 1 , .Xr fflagstostr 3 , .Xr strtofflags 3 , .Xr init 8 , .Xr mount_unionfs 8 .Sh 歴史 .Fn chflags システムコールと .Fn fchflags システムコールは .Bx 4.4 ではじめて登場しました。 .\" Amended by N.Kumagai, 2000-3-18 diff --git a/ja_JP.eucJP/man/man2/chmod.2 b/ja_JP.eucJP/man/man2/chmod.2 index b354bc4b60..04e16e8aa9 100644 --- a/ja_JP.eucJP/man/man2/chmod.2 +++ b/ja_JP.eucJP/man/man2/chmod.2 @@ -1,227 +1,227 @@ .\" 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. .\" .\" @(#)chmod.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/chmod.2,v 1.30 2003/09/08 19:57:16 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/chmod.2,v 1.31 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt CHMOD 2 .Os .Sh 名称 .Nm chmod , .Nm fchmod , .Nm lchmod .Nd ファイルのモードを変更する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/stat.h .Ft int .Fn chmod "const char *path" "mode_t mode" .Ft int .Fn fchmod "int fd" "mode_t mode" .Ft int .Fn lchmod "const char *path" "mode_t mode" .Sh 解説 .Fa path で指定されるか、またはファイル記述子 .Fa fd で参照されるファイルの ファイル許可ビットを .Fa mode に変更します。 .Fn chmod システムコールは、プロセス所有者 (ユーザ) が .Fa path (または .Fa fd ) で指定されたファイルを所有するか、またはスーパユーザで あるかのどちらかであることを確認します。 .Fn chmod システムコールは、シンボリックリンクをたどり、 リンク自体ではなくリンクのターゲットに作用します。 .Pp .Fn lchmod システムコールは .Fn chmod に類似していますが、シンボリックリンクをたどりません。 .Pp モードは .In sys/stat.h で定義された許可ビットマスクの論理和 .Pf ( Em or ) から作成されます: .Pp .Bd -literal -offset indent -compact #define S_IRWXU 0000700 /* 所有者用の RWX マスク */ #define S_IRUSR 0000400 /* 所有者用の R */ #define S_IWUSR 0000200 /* 所有者用の W */ #define S_IXUSR 0000100 /* 所有者用の X */ #define S_IRWXG 0000070 /* グループ用の RWX マスク */ #define S_IRGRP 0000040 /* グループ用の R */ #define S_IWGRP 0000020 /* グループ用の W */ #define S_IXGRP 0000010 /* グループ用の X */ #define S_IRWXO 0000007 /* その他用の RWX マスク */ #define S_IROTH 0000004 /* その他用の R */ #define S_IWOTH 0000002 /* その他用の W */ #define S_IXOTH 0000001 /* その他用の X */ #define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* スティッキビット */ #ifndef _POSIX_SOURCE #define S_ISTXT 0001000 #endif .Ed .Pp .Fx VM システムは、実行可能モジュールについてスティッキビット .Pq Dv ISVTX を完全に無視します。 UFS をベースとしたファイルシステム (FFS, LFS) では、 スティッキビットはディレクトリにだけ設定できます。 .Pp .Dv ISVTX (`スティッキビット') が設定されているディレクトリでは、 特権のないユーザは、そのディレクトリ内にある他ユーザのファイルの削除、 名前の変更ができません。 どのユーザでも、そのユーザが所有するか適切な許可のあるディレクトリについて スティッキビットを設定できます。 スティッキビットの性質の詳細については、 .Xr sticky 8 を参照してください。 .Pp あるディレクトリに ISUID (ユーザ ID 設定ビット) が設定されており、 かつファイルシステムをマウントする際に MNT_SUIDDIR オプションが 指定されていた場合、 このディレクトリ内に作成される新しいファイルとサブディレクトリの所有者は、 ディレクトリの所有者に設定されます。 この機能が有効であるとき、新しいディレクトリは親から ISUID ビットを継承します。 実行ビットはファイルから取り除かれ、ファイルは root の所有とはなりません。 この機能は、ファイルへの書込みがユーザに許可される条件を変更しません。 ファイルが作成された後の最終的な所有者の決定に影響するのみです。 グループは継承されません。 .Pp この機能は、ftp、SAMBA または netatalk 経由の PC ユーザへの ファイルサービスで使用されるよう設計されています。 これはシェルユーザにセキュリティホールを提供するので、 特に、ホームディレクトリでは使用してはなりません。 このオプションが機能するためには、 カーネル内に SUIDDIR オプションが必要です。 UFS ファイルシステムだけがこのオプションをサポートします。 suiddir マウントオプションの詳細については、 .Xr mount 8 を参照してください。 .Pp スーパユーザ以外のユーザによる、 ファイルの書込みまたはファイルの所有者の変更によってユーザ ID 設定ビットと グループ ID 設定ビットはオフに切り替えられます。 互換性は犠牲になりますが、 ユーザ ID 設定 (グループ ID 設定) ビットを残したまま ファイルが変更されるのを防ぐことで、 システムはいくらか安全になります。 .Sh 戻り値 .Rv -std .Sh エラー .Fn chmod システムコールは、次の場合に処理に失敗しファイルモードは変更されません: .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EPERM 実効ユーザ ID がファイルの所有者と一致せず、 実効ユーザ ID がスーパユーザではありません。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EFAULT .Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .It Bq Er EFTYPE 実行可能モジュール上でスティッキビットを設定しようとしました。 .El .Pp .Fn fchmod システムコールは、次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EBADF 記述子が有効ではありません。 .It Bq Er EINVAL .Fa fd 引数がファイルではなくソケットを参照しています。 .It Bq Er EROFS ファイルが読取り専用のファイルシステム上に置かれています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr chmod 1 , .Xr chown 2 , .Xr open 2 , .Xr stat 2 , .Xr sticky 8 .Sh 規格 .Fn chmod システムコールは .Er EFTYPE が返されることと .Dv S_ISTXT の使用法を除けば .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn chmod システムコールは .At v7 で登場しました。 .Fn fchmod システムコールは .Bx 4.2 で登場しました。 .Fn lchmod システムコールは .Fx 3.0 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/chroot.2 b/ja_JP.eucJP/man/man2/chroot.2 index e627f3ee99..2306d105dc 100644 --- a/ja_JP.eucJP/man/man2/chroot.2 +++ b/ja_JP.eucJP/man/man2/chroot.2 @@ -1,131 +1,131 @@ .\" 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. .\" .\" @(#)chroot.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/chroot.2,v 1.19 2003/01/31 21:19:22 rwatson Exp % +.\" %FreeBSD: src/lib/libc/sys/chroot.2,v 1.20 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt CHROOT 2 .Os .Sh 名称 .Nm chroot .Nd ルートディレクトリを変更する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn chroot "const char *dirname" .Sh 解説 .Fa dirname 引数は、ASCII のヌル文字で終了するディレクトリのパス名のアドレスです。 .Fn chroot システムコールは、 .Fa dirname をルートディレクトリ、すなわち、 .Ql / で開始するパス名のパス検索の 開始点にします。 .Pp ディレクトリがルートディレクトリになるためには、 プロセスにそのディレクトリへの実行 (検索) 許可がなければなりません。 .Pp .Fn chroot はプロセスの現在のディレクトリに影響しないことに注意する必要があります。 .Pp この関数を呼び出せるのはスーパユーザのみです。 .Pp ディレクトリを参照するオープンファイル記述子が存在する場合、 .Fn chroot 呼び出しは sysctl 変数 .Ql kern.chroot_allow_open_directories の設定に従い、次のように失敗します: .Pp .Ql kern.chroot_allow_open_directories が 0 に設定されている場合、ディレクトリがオープンされていれば .Fn chroot は常に .Er EPERM で失敗します。 .Pp .Ql kern.chroot_allow_open_directories が 1 に設定されている場合 (デフォルト)、 ディレクトリがオープンされていて、そのプロセスが .Fn chroot システムコールの影響を受ける時、 .Er EPERM で失敗します。 .Pp .Ql kern.chroot_allow_open_directories が他の値の場合、オープンディレクトリのチェックはされません。 .Pp 正常に完了すると、値 0 が返されます。 そうでない場合は、値 -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn chroot システムコールは、次の場合処理に失敗し、ルートディレクトリは変更されません: .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er EPERM 実効ユーザ ID がスーパユーザではありません。 またはディレクトリが 1 つ以上のファイル記述子によってオープンされています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定のディレクトリが存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EFAULT .Fa dirname 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr chdir 2 , .Xr jail 2 .Sh 歴史 .Fn chroot システムコールは .Bx 4.2 で登場しました。 .Sh バグ プロセスがその作業ディレクトリを目的のディレクトリに変更可能であるが、 (ディレクトリのオープンチェック、または MAC チェックのような) 他の アクセス制御チェックで失敗する場合には、そのプロセスの作業ディレクトリが 変更されたまま、このシステムコールがエラーを返すかもしれません。 diff --git a/ja_JP.eucJP/man/man2/clock_gettime.2 b/ja_JP.eucJP/man/man2/clock_gettime.2 index 694609a2e8..45f3ff2f4d 100644 --- a/ja_JP.eucJP/man/man2/clock_gettime.2 +++ b/ja_JP.eucJP/man/man2/clock_gettime.2 @@ -1,135 +1,130 @@ .\" $OpenBSD: clock_gettime.2,v 1.4 1997/05/08 20:21:16 kstailey 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. .\" -.\" %FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.17 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.20 2004/07/02 23:52:13 ru Exp % .\" $FreeBSD$ .\" -.Dd February 5, 2003 +.Dd June 17, 2004 .Dt CLOCK_GETTIME 2 .Os .Sh 名称 .Nm clock_gettime , .Nm clock_settime , .Nm clock_getres .Nd 日付と時刻の取得/設定/精度の取得をする .Sh ライブラリ .Lb libc .Sh 書式 .In sys/time.h .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 引数には、次の 4 つの値のうちの 1 つを指定します。 CLOCK_REALTIME は普通の時計のように進む時間、 CLOCK_MONOTONIC は SI 単位系の秒で進む時間、 CLOCK_VIRTUAL は呼び出しプロセスのために CPU がユーザモードで 実行されているときにだけ進む時間、 CLOCK_PROF は、CPU がユーザモードまたはカーネルモードで実行されている ときに進む時間です。 .Pp .Fa tp によって指される構造体は .In sys/time.h 内で次のように定義されています。 .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 ポインタ) +システムコールによって返されます。 +この値は、(非 NULL ポインタ) .Fa *tp 内に格納されます。 .Sh 戻り値 .Rv -std .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 , .Fn clock_settime および .Fn clock_getres システムコールは .St -p1003.1b-93 に適合しています。 -.Sh バグ -.Dv CLOCK_VIRTUAL -および -.Dv CLOCK_PROF -タイマは未だ実装されていません。 diff --git a/ja_JP.eucJP/man/man2/close.2 b/ja_JP.eucJP/man/man2/close.2 index d411cabc19..bf47bc8351 100644 --- a/ja_JP.eucJP/man/man2/close.2 +++ b/ja_JP.eucJP/man/man2/close.2 @@ -1,135 +1,135 @@ .\" 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.23 2003/06/13 22:41:12 trhodes Exp % +.\" %FreeBSD: src/lib/libc/sys/close.2,v 1.24 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd April 19, 1994 .Dt CLOSE 2 .Os .Sh 名称 .Nm close .Nd 記述子を削除する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .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, FD_CLOEXEC) 呼び出しが準備されています。 これは execve が成功した後で、記述子を閉じるように指示します。 .Dq Li fcntl(d, F_SETFD, 0) 呼び出しはこれをデフォルトに戻します。 デフォルトでは、記述子はクローズされません。 .Sh 戻り値 .Rv -std close .Sh エラー .Fn close システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EBADF .Fa d 引数がアクティブな記述子ではありません。 .It Bq Er EINTR 割り込みが受信されました。 .It Bq Er ENOSPC 下層のオブジェクトとサイズが合わず、キャッシュされたデータが失われました。 .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 164775e86a..ef7daeea63 100644 --- a/ja_JP.eucJP/man/man2/connect.2 +++ b/ja_JP.eucJP/man/man2/connect.2 @@ -1,157 +1,157 @@ .\" 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.25 2003/08/06 14:21:06 yar Exp % +.\" %FreeBSD: src/lib/libc/sys/connect.2,v 1.26 2004/07/02 19:07:30 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt CONNECT 2 .Os .Sh 名称 .Nm connect .Nd ソケット上で接続を開始する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .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 戻り値 .Rv -std connect .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 EHOSTUNREACH このホストからそのリモートホストに到達できません。 .It Bq Er EADDRINUSE アドレスが既に使用中です。 .It Bq Er EFAULT .Fa name 引数はプロセスアドレス空間の外側の領域を指定しています。 .It Bq Er EINPROGRESS 非ブロッキングのソケットで、接続がすぐには確立できませんでした。 ソケットへの書込みを .Xr select 2 で待つことによって、接続完了を待つことができます。 .It Bq Er EINTR 接続の試みは、シグナルの配信により割り込まれました。 その接続は .Er EINPROGRESS の場合と同じようにバックグラウンドで確立されます。 .It Bq Er EALREADY 前の接続の試みが未だ完了していません。 .It Bq Er EACCES ブロードキャストの機能を提供していないソケットを通して、 .Dv ( INADDR_BROADCAST 定数または .Dv INADDR_NONE 戻り値を通して獲得した) ブロードキャストアドレスに接続しようとしています。 .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 cbb7274839..48f3ec26b5 100644 --- a/ja_JP.eucJP/man/man2/dup.2 +++ b/ja_JP.eucJP/man/man2/dup.2 @@ -1,156 +1,156 @@ .\" 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.20 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/dup.2,v 1.21 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt DUP 2 .Os .Sh 名称 .Nm dup , .Nm dup2 .Nd 既存のファイル記述子を複製する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .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 \*(Ne .Fa newd であれば、まずその記述子は .Xr close 2 システムコールが使用されたかのように割り当て解除されます。 .Fa oldd が有効な記述子でなかった場合には、 .Fa newd はクローズされません。 .Fa oldd == .Fa newd であり、しかも .Fa oldd が有効な記述子の場合、 .Fn dup2 は正常に終了し、何もしません。 .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 96c3bf41c9..fa69606c63 100644 --- a/ja_JP.eucJP/man/man2/execve.2 +++ b/ja_JP.eucJP/man/man2/execve.2 @@ -1,308 +1,308 @@ .\" 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.36 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/execve.2,v 1.39 2004/07/04 20:55:48 ru Exp % .\" .\" $FreeBSD$ .Dd June 1, 1994 .Dt EXECVE 2 .Os .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 -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 .Fn execve が呼び出された時に標準の記述子 (0, 1 そして / または 2) がクローズされ、 ID 設定の結果、そのプロセスが特権を得た場合には、 それらの記述子は自動的にオープンされます。 特権を持っているかどうかに関わらず、どのプログラムも .Fn execve の呼び出しの前後で、これらの記述子が閉じたままとなると 仮定すべきではありません。 .Pp 呼び出しプロセスで無視するように設定されたシグナルは、 新しいプロセス内でも無視されるように設定されます。 呼び出しプロセスイメージ内で捕捉されるように設定されたシグナルは、 新しいプロセスイメージ内でデフォルトのアクションに 設定されます。 ブロックされたシグナルは、 シグナルアクションの変化とは無関係にブロックされたままになります。 シグナルスタックは未定義にリセットされます (詳細については .Xr sigaction 2 を参照してください)。 .Pp 新しいプロセスイメージファイルにユーザ ID 設定モードビット が設定されている場合 .Pf ( Xr chmod 2 を参照)、新しいプロセスイメージの実効ユーザ ID は、 新しいプロセスイメージファイルの所有者 ID に設定されます。 新しいプロセスイメージファイルにグループ ID 設定モードビットが 設定されている場合、新しいプロセスイメージの実効グループ ID は新しい プロセスイメージファイルのグループ ID に設定されます (実効グループ ID はグループリストの最初の要素です)。 新しいプロセスの実ユーザ ID、実グループ ID、およびその他の グループ ID は、呼び出しプロセスイメージと同じになります。 ユーザ ID 設定およびグループ ID 設定処理の後、実効ユーザ ID は 退避ユーザ ID として記録され、実効グループ ID は 退避グループ IDとして記録されます。 これらの値は、後で実効 ID を変更するのに使用できます .Pf ( Xr setuid 2 を参照)。 .Pp 該当するファイルシステムで .Cm nosuid オプションが有効な場合、または新しいプロセスファイルがインタプリタ ファイルの場合、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 戻り値 .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 ENAMETOOLONG インタプリトされるスクリプトを起動するときに、 インタプリタの名前が .Dv MAXSHELLCMDLEN 文字を越えています。 .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 fork 2 , .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 システムコールは、特定の状況において記述子 0, 1 そして/または 2 を 再度オープンする他は、 .St -p1003.1-2001 に適合しています。 将来規格が更新される際には、このような動作を要求することが期待されており、 権限を持たないプロセスに対しても、これがデフォルトとなるかもしれません。 .\" NB: update this caveat when TC1 is blessed. インタプリトされるプログラムの実行をサポートしているのは、拡張です。 .Sh 歴史 .Fn execve システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/extattr_get_file.2 b/ja_JP.eucJP/man/man2/extattr_get_file.2 index 4e7ad6fc0c..3bd23a8c12 100644 --- a/ja_JP.eucJP/man/man2/extattr_get_file.2 +++ b/ja_JP.eucJP/man/man2/extattr_get_file.2 @@ -1,256 +1,257 @@ .\" .\" Copyright (c) 2001 Dima Dorfman .\" Copyright (c) 2003 Robert Watson .\" 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/extattr_get_file.2,v 1.13 2003/06/04 04:00:26 rwatson Exp % +.\" %FreeBSD: src/lib/libc/sys/extattr_get_file.2,v 1.14 2004/07/05 17:12:52 ru Exp % .\" .\" $FreeBSD$ .Dd March 28, 2001 .Dt EXTATTR 2 .Os .Sh 名称 .Nm extattr_get_fd , .Nm extattr_set_fd , .Nm extattr_delete_fd , .Nm extattr_list_fd , .Nm extattr_get_file , .Nm extattr_set_file , -.Nm extattr_delete_file +.Nm extattr_delete_file , .Nm extattr_list_file , .Nm extattr_get_link , .Nm extattr_set_link , .Nm extattr_delete_link , .Nm extattr_list_link .Nd VFS 拡張属性を操作するためのシステムコール .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/extattr.h .In sys/uio.h .Ft ssize_t .Fn extattr_get_fd "int fd" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes" .Ft int .Fn extattr_set_fd "int fd" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes" .Ft int .Fn extattr_delete_fd "int fd" "int attrnamespace" "const char *attrname" .Ft ssize_t .Fn extattr_list_fd "int fd" "int attrnamespace" "void *data" "size_t nbytes" .Ft ssize_t .Fn extattr_get_file "const char *path" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes" .Ft int .Fn extattr_set_file "const char *path" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes" .Ft int .Fn extattr_delete_file "const char *path" "int attrnamespace" "const char *attrname" .Ft ssize_t .Fn extattr_list_file "const char *path" "int attrnamespace" "void *data" "size_t nbytes" .Ft ssize_t .Fn extattr_get_link "const char *path" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes" .Ft int .Fn extattr_set_link "const char *path" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes" .Ft int .Fn extattr_delete_link "const char *path" "int attrnamespace" "const char *attrname" .Ft ssize_t .Fn extattr_list_link "const char *path" "int attrnamespace" "void *data" "size_t nbytes" .Sh 解説 名前付き拡張属性は、ファイルまたはディレクトリを表現する vnode に 関連付けられたメタデータです。 これらは名前空間の集合の中に .Qq Li name=value .Qq ( 名前=値 ) のペアとして存在します。 .Pp .Fn extattr_get_file システムコールは、指定された拡張属性の値を大きさが .Fa nbytes の .Fa data によって指されるバッファに取り出します。 .Fn extattr_set_file システムコールは、指定された拡張属性の値を .Fa data に記述されたデータに設定します。 .Fn extattr_delete_file システムコールは、指定された拡張属性を削除します。 .Fn extattr_list_file は ASCII 0 (nul) 文字によって分離された、要求された名前空間の中に存在する 属性のリストを返します。 .Fn extattr_get_file および .Fn extattr_list_file 呼び出しは .Xr read 2 の形式で使用します。 .Fn extattr_get_file はこれらの引数を .Xr write 2 の形式で使用します。 .Pp .Fn extattr_get_file の呼び出しの中で .Fa data が .Dv NULL の場合には、読み込んだ量を返すのではなく、 定義された拡張属性データの大きさを返します。 これにより、 アプリケーションが読み込みを実行せずにデータの大きさを テストすることを可能にします。 .Fn extattr_delete_link , .Fn extattr_get_link , .Fn extattr_set_link システムコールは、シンボリックリンクを辿らないことを除いて、名前が .Qq Li _file のものと同じ動作をします。 .Pp .Fn extattr_get_fd , .Fn extattr_set_fd , .Fn extattr_delete_fd 呼び出しは、最初の引数を除いて、名前が .Qq Li _file のものと同じ動作をします。 .Qq Li _fd 関数がファイル記述子を取るのに対し、 .Qq Li _file 関数はパス名を取ります。 両方の引数は操作されるべき拡張属性に関連付けられたファイルを、記述します。 .Pp 以下に、全てのシステムコールに共通な引数を記述します: .Bl -tag -width attrnamespace .It Fa attrnamespace 拡張属性が属する名前空間です。 .Xr extattr 9 を参照してください。 .It Fa attrname 拡張属性の名前です。 .El .Pp 名前付き拡張属性のセマンティクスは、 この呼び出しを実装するファイルシステムに依存し、一様ではありません。 特定の属性に対しては、全ての操作がサポートされないかもしれません。 加えて、 .Fa data に入るデータのフォーマットは、属性に特有です。 .Pp 名前付き拡張属性についてのより多くの情報については、 .Xr extattr 9 を参照してください。 .Sh 警告 このインタフェースは活発に開発中ですので、 アプリケーションがこのインタフェースを使うようになるのに従って、 変わるでしょう。 開発者がこれの安定を当てにすることは推奨されません。 .Sh 戻り値 成功の場合には、 .Fn extattr_get_file および .Fn extattr_set_file の呼び出しは、各々 .Fa data -から読込んだまたは書込んだバイト数を返します。また、 +から読込んだまたは書込んだバイト数を返します。 +また、 .Fa data が .Dv NULL の場合には、 .Fn extattr_get_file は読込みに利用可能なバイト数を返します。 なにか呼び出しが失敗した場合には、値 \-1 が返され、グローバル変数 .Va errno がそのエラーを示すために設定されます。 .Pp .Rv -std extattr_delete_file .Sh エラー システムコール自身によって、以下のエラーが返されることがあります。 加えて、呼び出しを実装しているファイルシステムは、希望するその他の エラーを返すことがあります。 .Bl -tag -width Er .It Bq Er EFAULT .Fa attrnamespace および .Fa attrname 引数、または .Fa data および .Fa nbytes によって定義されるメモリ範囲が、 プロセスに割り当てられたアドレス空間の外を指しています。 .It Bq Er ENAMETOOLONG 属性の名前が .Dv EXTATTR_MAXNAMELEN より長くなっていました。 .El .Pp .Fn extattr_get_fd , .Fn extattr_set_fd , .Fn extattr_delete_fd システムコールは、次の場合に失敗することがあります: .Bl -tag -width Er .It Bq Er EBADF .Fa fd によって参照されるファイル記述子が無効です。 .El .Pp 加えて、 .Fn extattr_get_file , .Fn extattr_set_file , .Fn extattr_delete_file の呼び出しは以下のエラーのため、失敗することがあります: .Bl -tag -width Er .It Bq Er ENOTDIR パス名のプレフィックスの構成要素がディレクトリではありません。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を超えている、 またはパス名全体が 1023 文字を超えています。 .It Bq Er ENOENT 存在していなければならないパス名の構成要素が、存在していません。 .It Bq Er EACCES パス名のプレフィックスの構成要素の検索パーミッションがありません。 .\" XXX 何か抜けてる? .El .Sh 関連項目 .Xr extattr 3 , .Xr getextattr 8 , .Xr setextattr 8 , .Xr extattr 9 , .Xr VOP_GETEXTATTR 9 , .Xr VOP_SETEXTATTR 9 .Sh 歴史 拡張属性サポートは .Tn TrustedBSD プロジェクトの一部として開発され、 .Fx 5.0 で導入されました。 個々のファイルまたはディレクトリに関連付けられるための追加のラベルを 要求するセキュリティ拡張をサポートするために開発されました。 .Sh BUGS この API の初期のバージョンでは、属性名として空の文字列を .Fn extattr_get_fd , .Fn extattr_get_file または .Fn extattr_get_link に渡すことによって、目的のオブジェクトのために定義された属性のリストを 返しました。 明示的な list API を使用すべきなので、 このインタフェースは非推奨であり、使用されるべきではありません。 diff --git a/ja_JP.eucJP/man/man2/fcntl.2 b/ja_JP.eucJP/man/man2/fcntl.2 index f330a609a9..0e61c4df77 100644 --- a/ja_JP.eucJP/man/man2/fcntl.2 +++ b/ja_JP.eucJP/man/man2/fcntl.2 @@ -1,568 +1,583 @@ .\" 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.42 2003/02/05 13:36:13 charnier Exp % +.\" %FreeBSD: src/lib/libc/sys/fcntl.2,v 1.44 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd January 12, 1994 .Dt FCNTL 2 .Os .Sh 名称 .Nm fcntl .Nd ファイル制御 .Sh ライブラリ .Lb libc .Sh 書式 .In fcntl.h .Ft int .Fn fcntl "int fd" "int cmd" "..." .Sh 解説 .Fn fcntl システムコールは、記述子の制御機能を提供します。 引数 .Fa fd は、後述する .Fa cmd によって操作される記述子です。 .Fa cmd の値によっては、 .Fn fcntl は 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 フラグを、 .Dv FD_CLOEXEC として取得します。 返された値と .Dv FD_CLOEXEC の論理積が 0 の場合、ファイルは .Fn exec を実行してもオープンされたままになります。 そうでない場合、ファイルは .Fn exec の実行でクローズされます .Fa ( arg は無視されます)。 .It Dv F_SETFD .Fa fd に結び付けられた close-on-exec フラグを .Fa arg に設定します。 .Fa arg は 0 または前述の .Dv FD_CLOEXEC です。 .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_DIRECT 読み書きにおけるキャッシュ効果を最小化または無くします。 システムは、読み書きするデータのキャッシングを避けようとします。 データのキャッシングが避けられない場合、 データのキャッシュに対する影響を最小化します。 注意せずに使用すると、本フラグは劇的に性能を劣化させます。 .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 は、共有 (または読取り) ロック .Pq Dv F_RDLCK または排他的 (または書込み) ロック .Pq Dv F_WRLCK を確立、ならびにいずれかのタイプのロックを解除 .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_start は領域の終端を表しています。 .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 システムコールをお勧めします。 +.Pp +.Fn fcntl , .Xr flock 2 -と +および +.Xr lockf 3 +のロックは互換性があります。 +異なったロックのインタフェースを使用するプロセスは、 +同じファイルを安全に使用することができます。 +しかしながら、同じプロセスの内部では +これらのインタフェースのうちの 1 つのみが使用されるべきです。 .Fn fcntl -ロックは同時に安全に使用できます。 +を介してあるプロセスによってあるファイルがロックされている場合、 +.Xr flock 2 +または +.Xr lockf 3 +を使用している他のプロセスの視点からは、 +そのファイルの中のあらゆるレコードはロックされているかのように見えます。 +また、その逆も同様です。 ブロックするロックを保持しているプロセスがファイル記述子を以前に .Xr flock 2 でロックしていた場合、 .Fn fcntl F_GETLK は .Fa l_pid に \-1 を入れて戻ります。 .Pp プロセスの、あるファイルに結び付けられたすべてのロックは そのプロセスが終了するときに解除されます。 .Pp .Xr execve 2 の呼び出し前に取得されたすべてのロックは、 新規プログラムがそれらを解放するまで有効なままです。 新規プログラムがロックについて知らないならば、 プログラム終了まで解放されません。 .Pp あるロックした領域を制御しているプロセスが、 別のプロセスがロックした領域をロックしようとして 休眠状態にされる場合に、デッドロックが発生する可能性があります。 この実装では、ロックされた領域がアンロックされるまでの休眠が デッドロックを引き起こす可能性を検出すると、 .Er EDEADLK エラーで失敗します。 .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 であり、ロックのタイプ .Pq Fa l_type は共有ロック .Pq Dv F_RDLCK 、または 排他的ロック .Pq Dv F_WRLCK で、ロックされるはずのファイルの セグメントは既に別のプロセスによって排他的に ロックされています。 または、タイプが排他的なロックで、ロックされるファイルのセグメントの一部が 既に別のプロセスによって共有ロックまたは排他的ロックされています。 .It Bq Er EBADF .Fa fd 引数が有効なオープンファイル記述子ではありません。 .Pp 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW で、かつロックタイプ .Pq Fa l_type が共有ロック .Pq Dv F_RDLCK のとき、 .Fa fd は読取り用に開かれた有効なファイル記述子ではありません。 .Pp 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW で、かつロックタイプ .Pq Fa l_type が排他的ロック .Pq Dv F_WRLCK のとき、 .Fa fd は書込み用に開かれた有効なファイル記述子ではありません。 .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 が指すデータが有効でありません。 .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 EOPNOTSUPP 引数 .Fa cmd に .Dv F_GETLK , .Dv F_SETLK または .Dv F_SETLKW が指定されましたが、 .Fa fd はロックをサポートしていないファイルを参照しています。 .It Bq Er EOVERFLOW 引数 .Fa cmd に .Dv F_GETLK , .Dv F_SETLK または .Dv F_SETLKW が指定されましたが、 .Fa off_t の計算がオーバフローしました。 .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 lockf 3 , .Xr tcgetpgrp 3 , .Xr tcsetpgrp 3 .Sh 歴史 .Fn fcntl システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/flock.2 b/ja_JP.eucJP/man/man2/flock.2 index d131b6341f..d15186b24f 100644 --- a/ja_JP.eucJP/man/man2/flock.2 +++ b/ja_JP.eucJP/man/man2/flock.2 @@ -1,155 +1,175 @@ .\" 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.21 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/flock.2,v 1.23 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd December 11, 1993 .Dt FLOCK 2 .Os .Sh 名称 .Nm flock .Nd "開いたファイル上の問合せ型ロックを適用または除去する" .Sh ライブラリ .Lb libc .Sh 書式 .In sys/file.h .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 解説 .Fn 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 +.Fn flock , +.Xr fcntl 2 +および +.Xr lockf 3 +のロックは互換性があります。 +異なったロックのインタフェースを使用するプロセスは、 +同じファイルを安全に使用することができます。 +しかしながら、同じプロセスの内部では +これらのインタフェースのうちの 1 つのみが使用されるべきです。 +.Fn flock +を介してあるプロセスによってあるファイルがロックされている場合、 +.Xr fcntl 2 +または +.Xr lockf 3 +を使用している他のプロセスの視点からは、 +そのファイルの中のあらゆるレコードはロックされているかのように見えます。 +また、その逆も同様です。 +.Pp ロックを待ってブロックしているプロセスはシグナルで起こされるかもしれません。 .Sh 戻り値 .Rv -std flock .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 fcntl 2 , .Xr fork 2 , -.Xr open 2 +.Xr open 2 , +.Xr flock 3 .Sh 歴史 .Fn flock システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fork.2 b/ja_JP.eucJP/man/man2/fork.2 index 492b9714dd..eb4ce5b787 100644 --- a/ja_JP.eucJP/man/man2/fork.2 +++ b/ja_JP.eucJP/man/man2/fork.2 @@ -1,134 +1,134 @@ .\" 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. .\" .\" @(#)fork.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/fork.2,v 1.18 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/fork.2,v 1.19 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt FORK 2 .Os .Sh 名称 .Nm fork .Nd 新しいプロセスを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In unistd.h .Ft pid_t .Fn fork void .Sh 解説 .Fn fork システムコールによって新しいプロセスの作成が行われます。 新しいプロセス (子プロセス)は、 以下の項目を除いた呼び出しプロセス (親プロセス) の正確なコピーです。 .Bl -bullet -offset indent .It 子プロセスはユニークなプロセス ID を持ちます。 .It 子プロセスは異なる親プロセス ID を持ちます (すなわち、親プロセスのプロセス ID です)。 .It 子プロセスは、専用の、親の記述子のコピーを持ちます。 それらの記述子は下層の同じオブジェクトを参照します。 つまり子と親の間で、たとえばファイルオブジェクト内の ファイルポインタが共有されます。 そのため子プロセスの記述子への .Xr lseek 2 が、その後の親による .Xr read 2 または .Xr write 2 に影響を及ぼします。 この記述子コピーは、新しく作成されたプロセス用の標準入出力を確立するために、 およびパイプをセットアップするために、シェルによっても使用されます。 .It 子プロセスのリソース使用状況は 0 に設定されます。 .Xr setrlimit 2 を参照してください。 .It すべてのインターバルタイマがクリアされます。 .Xr setitimer 2 を参照してください。 .El .Sh 戻り値 正常に完了した場合、 .Fn fork は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに返します。 そうでない場合は -1 が親プロセスに返され、子プロセスは作成されずに、 エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー 次の場合に .Fn fork システムコールは処理に失敗し、子プロセスは作成されません: .Bl -tag -width Er .It Bq Er EAGAIN 実行中のプロセスの合計数がシステムの限界を超えます。 限界値は .Xr sysctl 3 の MIB 変数の .Dv KERN_MAXPROC によって指定されます (スーパユーザを除いて、 実際には限界はこれより 10 個少なくなります)。 .It Bq Er EAGAIN ユーザがスーパユーザでなく、 1 人のユーザによって実行中のプロセスの合計数が、システムの限界を越えます。 限界は .Xr sysctl 3 の MIB 変数の .Dv KERN_MAXPROCPERUID によって指定されます。 .It Bq Er EAGAIN ユーザがスーパユーザでなく、 .Fa resource 引数の .Dv RLIMIT_NPROC に対応するソフトリソース限界を越えます .Pf ( Xr getrlimit 2 を参照)。 .It Bq Er ENOMEM 新しいプロセス用のスワップ空間が不充分です。 .El .Sh 関連項目 .Xr execve 2 , .Xr rfork 2 , .Xr setitimer 2 , .Xr setrlimit 2 , .Xr vfork 2 , .Xr wait 2 .Sh 歴史 .Fn fork 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getdtablesize.2 b/ja_JP.eucJP/man/man2/getdtablesize.2 index fbe6f76478..ea231fc278 100644 --- a/ja_JP.eucJP/man/man2/getdtablesize.2 +++ b/ja_JP.eucJP/man/man2/getdtablesize.2 @@ -1,64 +1,64 @@ .\" 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. .\" .\" @(#)getdtablesize.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/getdtablesize.2,v 1.8 2002/12/18 09:22:30 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getdtablesize.2,v 1.9 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt GETDTABLESIZE 2 .Os .Sh 名称 .Nm getdtablesize .Nd 記述子テーブルのサイズを得る .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn getdtablesize void .Sh 解説 各プロセスには固定サイズの記述子テーブルがあり、 テーブルには最低 20 個のスロットがあることが保証されています。 記述子テーブル内のエントリは、 0 からはじまる小さな整数で番号付けられています。 .Fn getdtablesize システムコールはこのテーブルのサイズを返します。 .Sh 関連項目 .Xr close 2 , .Xr dup 2 , .Xr open 2 , .Xr select 2 .Sh 歴史 .Fn getdtablesize システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getfsstat.2 b/ja_JP.eucJP/man/man2/getfsstat.2 index bd2db61b48..f21c07a3e7 100644 --- a/ja_JP.eucJP/man/man2/getfsstat.2 +++ b/ja_JP.eucJP/man/man2/getfsstat.2 @@ -1,151 +1,121 @@ .\" 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. .\" .\" @(#)getfsstat.2 8.3 (Berkeley) 5/25/95 -.\" %FreeBSD: src/lib/libc/sys/getfsstat.2,v 1.16 2003/11/21 01:30:28 tjr Exp % +.\" %FreeBSD: src/lib/libc/sys/getfsstat.2,v 1.17 2004/07/16 01:18:13 alfred Exp % .\" .\" $FreeBSD$ .Dd November 20, 2003 .Dt GETFSSTAT 2 .Os .Sh 名称 .Nm getfsstat .Nd マウントされたすべてのファイルシステムのリストを得る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/ucred.h .In sys/mount.h .Ft int .Fn getfsstat "struct statfs *buf" "long bufsize" "int flags" .Sh 解説 .Fn getfsstat システムコールは、マウントされたすべてのファイルシステムに関する情報を 返します。 .Fa buf 引数は .Xr statfs 2 に記述された .Vt statfs 構造体へのポインタです。 .Pp -返される可能性のあるフラグには次のものが含まれます。 -.Bl -tag -width MNT_ASYNCHRONOUS -.It Dv MNT_RDONLY -ファイルシステムは読取り専用としてマウントされています。 -スーパユーザも書き込むことはできません。 -.It Dv MNT_NOEXEC -そのファイルシステム上のファイルを実行することはできません。 -.It Dv MNT_NOSUID -実行されるときに、ファイルの setuid ビットと setgid ビットが -効果を持ちません。 -.It Dv MNT_NODEV -ファイルシステム内の特殊ファイルは開けません。 -.It Dv MNT_SYNCHRONOUS -ファイルシステムへのすべての入出力が同期的に実行されます。 -.It Dv MNT_ASYNCHRONOUS -ファイルシステム入出力が同期的に実行されません。 -.It Dv MNT_LOCAL -ローカルにあるファイルシステムです。 -.It Dv MNT_QUOTA -ファイルシステム上でクォータが有効になっています。 -.It Dv MNT_ROOTFS -ルートファイルシステムであることを示します。 -.It Dv MNT_EXRDONLY -ファイルシステムは読取り専用でエクスポートされています。 -.It Dv MNT_EXPORTED -ファイルシステムは読取りと書込みの両方についてエクスポートされています。 -.It Dv MNT_DEFEXPORTED -ファイルシステムはどのインターネットホストへも読取りと書込みの両方について -エクスポートされています。 -.It Dv MNT_EXPORTANON -ファイルシステムはすべてのリモートアクセスを匿名ユーザへマップします。 -.It Dv MNT_EXKERB -ファイルシステムは Kerberos uid マッピングでエクスポートされています。 -.El -.Pp 特定のファイルシステムについて未定義となるフィールドは -1 に設定されます。 バッファは .Fa fsstat 構造体の配列で埋められます。 マウントされた各ファイルシステムについて 1 つずつ、最高 .Fa bufsize -で指定されたサイズまでです。 +で指定されたバイト数までです。 +.Fa bufsize +引数は、 +.Fa buf +が保持することができるバイト数であり、保持することができる statfs 構造体の +数ではないことに、注意して下さい。 .Pp .Fa buf として NULL が指定されている場合、 .Fn getfsstat はマウントされているファイルシステムの数のみを返します。 .Pp 通常、 .Fa flags には .Dv MNT_WAIT を指定するべきです。 .Fa flags として .Dv MNT_NOWAIT が指定されている場合、 .Fn getfsstat は各ファイルシステムからの更新を要求せずに利用できる情報を返します。 そのため、情報のうちには古くなっているものがあるでしょうが、 .Fn getfsstat は応答できないファイルシステムからの情報を 待機してブロックすることはありません。 .Sh 戻り値 正常に完了すると .Fa fsstat 構造体の数が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn getfsstat システムコールは以下の 1 つでも真の場合、処理に失敗します: .Bl -tag -width Er .It Bq Er EFAULT .Fa buf 引数が無効なアドレスを指しています。 .It Bq Er EIO ファイルシステムを読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .El .Sh 関連項目 .Xr statfs 2 , .Xr fstab 5 , .Xr mount 8 .Sh 歴史 .Fn getfsstat システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getitimer.2 b/ja_JP.eucJP/man/man2/getitimer.2 index cd9dd7933e..f310a64210 100644 --- a/ja_JP.eucJP/man/man2/getitimer.2 +++ b/ja_JP.eucJP/man/man2/getitimer.2 @@ -1,166 +1,166 @@ .\" 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. .\" .\" @(#)getitimer.2 8.3 (Berkeley) 5/16/95 -.\" %FreeBSD: src/lib/libc/sys/getitimer.2,v 1.19 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getitimer.2,v 1.20 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd May 16, 1995 .Dt GETITIMER 2 .Os .Sh 名称 .Nm getitimer , .Nm setitimer .Nd インターバルタイマの値を取得/設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/time.h .Fd "#define ITIMER_REAL 0" .Fd "#define ITIMER_VIRTUAL 1" .Fd "#define ITIMER_PROF 2" .Ft int .Fn getitimer "int which" "struct itimerval *value" .Ft int .Fn setitimer "int which" "const struct itimerval *value" "struct itimerval *ovalue" .Sh 解説 システムは、各プロセスに .In sys/time.h で定義された 3 つのインターバルタイマを提供しています。 .Fn getitimer システムコールは .Fa which で指定されたタイマの現在の値を .Fa value 構造体に返します。 .Fn setitimer システムコールはタイマを指定の .Fa value に設定します .Fa ( ovalue が nil でない場合、タイマの 以前の値が返されます)。 .Pp タイマの値は .Fa itimerval 構造体によって定義されます: .Bd -literal -offset indent struct itimerval { struct timeval it_interval; /* タイマインターバル */ struct timeval it_value; /* 現在の値 */ }; .Ed .Pp .Fa it_value が 0 でない場合、それは次にタイマが時間切れになるまでの時間を示します。 .Fa it_interval が 0 でない場合、それはタイマが時間切れになるときに .Fa it_value を再設定するのに使用される値を指定します。 .Fa it_value を 0 に設定すると、タイマは .Fa it_interval の値に関係なく無効になります。 .Fa it_interval を 0 に設定すると、次の時間切れの後でタイマは無効になります .Fa ( it_value が 0 でないと想定します)。 .Pp システムクロックの精度 (通常は 10 ミリ秒です) より小さい時間の値は この精度に切り上げられます。 .Pp .Dv ITIMER_REAL タイマはリアルタイムで減少していきます。 このタイマが時間切れになると .Dv SIGALRM シグナルが配信されます。 .Pp .Dv ITIMER_VIRTUAL タイマはプロセス仮想時間で減少します。 このタイマが減るのはプロセスが実行中のときだけです。 時間切れになるときに .Dv SIGVTALRM シグナルが配信されます。 .Pp .Dv ITIMER_PROF タイマは、プロセス仮想時間内およびシステムがプロセスのために 処理を行っているときの両方で減少します。 これは、インタプリタがプログラムの実行を統計的にプロファイルするときに 使用するように設計されています。 .Dv ITIMER_PROF タイマが時間切れになるたびに .Dv SIGPROF シグナルが配信されます。 このシグナルは進行中のシステムコールに割り込むかもしれないので、 このタイマを使用しているプログラムは割り込まれたシステムコールを 再実行する準備をしておかなければなりません。 .Pp .Fn setitimer で .Fa it_interval と .Fa it_value に許容される最大秒数は 100000000 です。 .Sh 注 時間の値を操作する 3 つのマクロは .In sys/time.h で定義されています。 .Fn timerclear マクロは時間の値を 0 に設定し、 .Fn timerisset は時間値が 0 でないかどうか検査し、 .Fn timercmp は 2 つの時間の値を比較します。 .Sh 戻り値 .Rv -std .Sh エラー .Fn getitimer と .Fn setitimer システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EFAULT .Fa value 引数が無効なアドレスを指定しました。 .It Bq Er EINVAL .Fa value 引数が、大きすぎて処理できない時間を指定しました。 .El .Sh 関連項目 .Xr gettimeofday 2 , .Xr select 2 , .Xr sigvec 2 , .Xr clocks 7 .Sh 歴史 .Fn getitimer システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getlogin.2 b/ja_JP.eucJP/man/man2/getlogin.2 index f0f4a3c1a5..277da13f13 100644 --- a/ja_JP.eucJP/man/man2/getlogin.2 +++ b/ja_JP.eucJP/man/man2/getlogin.2 @@ -1,190 +1,190 @@ .\" 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.26 2003/09/08 19:57:16 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getlogin.2,v 1.27 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 9, 1993 .Dt GETLOGIN 2 .Os .Sh 名称 .Nm getlogin , .Nm getlogin_r , .Nm setlogin .Nd ログイン名を取得 / 設定する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft char * .Fn getlogin void .In sys/param.h .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 つのログイン名しかありません。 .Pp プロセスが、確実に親のセッションから切り離されるような 適切なステップを取った後にのみ、 .Fn setlogin が呼び出されるようにすることは .Em 非常に 重要です。 .Fn setsid システムコールを行うのがこれをする .Em 唯一の 方法です。 .Xr daemon 3 関数は .Fn setsid を呼び出しますが、これは制御端末を切り離して フォークでバックグラウンドに入る理想的な方法です。 .Pp 特に、 .Fn ioctl ttyfd TIOCNOTTY ...\& または .Fn setpgrp ...\& では十分では .Em ありません。 .Pp 親プロセスがいったん .Fn setsid システムコールを行えば、セッションリーダでないそのプロセスの子が .Fn setlogin を行うことも受け入れられますが、親を含めてセッション内のすべての プロセスが同時にログイン名を変更されることに注意してください。 .Pp これは特権を継承する従来の UNIX の動作と同じではありません。 .Pp .Fn setlogin システムコールはスーパユーザに制限されているので、セキュリティ侵犯を 防止するために (他の特権のあるすべてのプログラムと同じように) プログラマが適切な注意を払うものだと仮定しています。 .Sh 戻り値 .Fn getlogin の呼び出しが成功すると、静的バッファ内のヌル文字で終わる文字列への ポインタが返されます。 名前が設定されていない場合は、 .Dv NULL が返されます。 .Fn getlogin_r 関数の呼び出しが成功すると、0 が返されます。 失敗するとエラー番号が返されます。 .Pp .Rv -std setlogin .Sh エラー これらの呼び出しによって以下のエラーが返される可能性があります: .Bl -tag -width Er .It Bq Er EFAULT .Fa name 引数が無効なアドレスを与えました。 .It Bq Er EINVAL .Fa name 引数が長すぎる文字列を指しています。 ログイン名は .In ( sys/param.h の) .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/getpriority.2 b/ja_JP.eucJP/man/man2/getpriority.2 index f30d5bdca2..999b0af542 100644 --- a/ja_JP.eucJP/man/man2/getpriority.2 +++ b/ja_JP.eucJP/man/man2/getpriority.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. .\" .\" @(#)getpriority.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/getpriority.2,v 1.11 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getpriority.2,v 1.12 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt GETPRIORITY 2 .Os .Sh 名称 .Nm getpriority , .Nm setpriority .Nd プログラムスケジュール優先順位を取得 / 設定する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/time.h .In sys/resource.h .Ft int .Fn getpriority "int which" "int who" .Ft int .Fn setpriority "int which" "int who" "int prio" .Sh 解説 .Fa which および .Fa who で指示されるプロセス、プロセスグループ、 またはユーザのスケジュール優先順位は .Fn getpriority システムコールで取得され、 .Fn setpriority システムコールで設定されます。 .Fa which 引数は、 .Dv PRIO_PROCESS , .Dv PRIO_PGRP または .Dv PRIO_USER のどれかであり、 .Fa who は .Fa which に関連して解釈されます .Dv ( PRIO_PROCESS の場合はプロセス識別子、 .Dv PRIO_PGRP の場合はプロセスグループ識別子、および .Dv PRIO_USER の場合はユーザ ID)。 .Fa who の値が 0 であるのは、 現在のプロセス、プロセスグループ、またはユーザを表します。 .Fa prio 引数は -20 から 20 の範囲の値です。 デフォルトの優先順位は 0 です。 優先順位が低いと、スケジュール調整にはより都合がよくなります。 .Pp .Fn getpriority システムコールは、指定のプロセスのいずれかが享受する最高の優先順位を 返してきます (最も小さい数値です)。 .Fn setpriority システムコールは、指定されたすべてのプロセスの優先順位を指定の値に設定します。 スーパユーザだけが優先順位を低くできます。 .Sh 戻り値 .Fn getpriority は処理を正しく完了しても値 -1 を返すことがあるので、 呼び出しの前に外部変数 .Va errno をクリアしてから、後にこれをチェックして -1 がエラーであるか、 または正当な値であるか判定する必要があります。 .Pp .Rv -std setpriority .Sh エラー .Fn getpriority と .Fn setpriority システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er ESRCH 指定された .Fa which と .Fa who の値を使用しているプロセスが見つかりませんでした。 .It Bq Er EINVAL .Fa which 引数が .Dv PRIO_PROCESS , .Dv PRIO_PGRP または .Dv PRIO_USER のどれでもありませんでした。 .El .Pp .Bl -tag -width Er 上記のエラーだけでなく、 .Fn setpriority は次の場合に失敗します: .It Bq Er EPERM プロセスは検出されたものの、その実効 ID も実ユーザ ID の どちらも、呼び出し側の実効ユーザ ID に一致しませんでした。 .It Bq Er EACCES スーパユーザでないものがプロセスの優先順位を下げようとしました。 .El .Sh 関連項目 .Xr nice 1 , .Xr fork 2 , .Xr renice 8 .Sh 歴史 .Fn getpriority システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getrlimit.2 b/ja_JP.eucJP/man/man2/getrlimit.2 index 5c5681a24e..0a0aef9003 100644 --- a/ja_JP.eucJP/man/man2/getrlimit.2 +++ b/ja_JP.eucJP/man/man2/getrlimit.2 @@ -1,189 +1,192 @@ .\" 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. .\" .\" @(#)getrlimit.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/getrlimit.2,v 1.20 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getrlimit.2,v 1.23 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ -.Dd June 4, 1993 +.Dd June 13, 2004 .Dt GETRLIMIT 2 .Os .Sh 名称 .Nm getrlimit , .Nm setrlimit .Nd 最大システムリソース消費を制御する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/time.h .In sys/resource.h .Ft int .Fn getrlimit "int resource" "struct rlimit *rlp" .Ft int .Fn setrlimit "int resource" "const struct rlimit *rlp" .Sh 解説 現在のプロセス、およびそれが作成する各プロセスによるシステムリソースの 消費限度は、 .Fn getrlimit システムコールで取得することができ、 .Fn setrlimit システムコールで設定できます。 .Pp .Fa resource 引数は次のうちの 1 つです: .Bl -tag -width RLIMIT_FSIZEAA -.It Li RLIMIT_CORE +.It Dv RLIMIT_AS +プロセスがマップすることを許可される仮想メモリ +の最大量 (バイト単位)。 +.It Dv RLIMIT_CORE 作成できる .Xr core 5 ファイルの最大サイズ (バイト単位)。 -.It Li RLIMIT_CPU +.It Dv RLIMIT_CPU 各プロセスが使用する CPU 時間の最大量 (秒単位)。 -.It Li RLIMIT_DATA +.It Dv RLIMIT_DATA プロセス用のデータセグメントの最大サイズ (バイト単位)。 これは、プログラムがそのブレークを .Xr sbrk 2 関数でどのくらい遠くまで延長できるかを定義します。 -.It Li RLIMIT_FSIZE +.It Dv RLIMIT_FSIZE 作成できるファイルの最大サイズ (バイト単位)。 -.It Li RLIMIT_MEMLOCK +.It Dv RLIMIT_MEMLOCK プロセスが .Xr mlock 2 システムコールを使用して、プロセスをメモリにロックできる 最大サイズ (バイト単位)。 -.It Li RLIMIT_NOFILE +.It Dv RLIMIT_NOFILE このプロセスが開けるファイルの最大数。 -.It Li RLIMIT_NPROC +.It Dv RLIMIT_NPROC このユーザ ID が同時に利用できるプロセスの最大数。 -.It Li RLIMIT_RSS +.It Dv RLIMIT_RSS 増加させて良いプロセスの常駐セットサイズの最大サイズ (バイト単位)。 これはプロセスに与えられる物理メモリの量に制限を課します。 メモリが逼迫してシステムがメモリを回収する際に、 宣言された常駐セットサイズを越えるプロセスを回収対象として選択します。 -.It Li RLIMIT_STACK -プロセスのスタックセグメントの最大サイズ (バイト数)。 -これによって、 -プログラムのスタックセグメントをどのくらい延長できるか定義できます。 -スタック延長はシステムによって自動的に実行されます。 -.It Li RLIMIT_SBSIZE +.It Dv RLIMIT_SBSIZE このユーザが使用できるソケットバッファの最大サイズ (バイト単位)。 このサイズは、ユーザがいつでも保持できるネットワークメモリ量を 制限します。 したがって mbuf の使用量も制限されます。 +.It Dv RLIMIT_STACK +プロセスのスタックセグメントの最大サイズ (バイト数)。 +これによって、 +プログラムのスタックセグメントをどのくらい延長できるか定義できます。 +スタック延長はシステムによって自動的に実行されます。 .El .Pp リソースリミットはソフトリミットおよびハードリミットとして指定されます。 ソフトリミットを越えた場合、プロセスはシグナルを受信する可能性があります (例えば、CPU 時間またはファイルサイズを越えた場合) が、 ハードリミットに到達する (またはリソースリミットを修正する) まで実行を継続することはできます。 .Vt rlimit 構造体を使用してリソースのハードリミットとソフトリミットを指定できます。 .Bd -literal -offset indent struct rlimit { rlim_t rlim_cur; /* 現在の (ソフト) リミット */ rlim_t rlim_max; /* rlim_cur の最大値 */ }; .Ed .Pp スーパユーザだけがリミットの最大値を大きくできます。 他のユーザは 0 から .Fa rlim_max の範囲内で .Fa rlim_cur を変更するか、または .Fa rlim_max を下げられるだけです (撤回はできません)。 .Pp リミットを .Dq 無制限 にする値は .Dv RLIM_INFINITY として定義されます。 .Pp この情報はプロセスごとの情報に保存されるので、 シェルが将来作成するすべてのプロセスに このシステムコールが影響を及ぼすためには、 このシステムコールをシェルが直接実行する必要があります。 このため .Ic limit は .Xr csh 1 の組み込みコマンドになっているのです。 .Pp システムは、通常の方法でリミットを超えようとするときに、 データまたはスタック空間を延長することを拒絶します。 データ空間リミットに到達すると .Xr brk 2 関数は処理に失敗します。 スタックリミットに到達すると、プロセスはセグメント例外 .Pq Dv SIGSEGV を受信します。 シグナルスタックを使用するハンドラによって このシグナルが捕捉されない場合、このシグナルはプロセスを抹消します。 .Pp プロセスのソフトリミットより大きなファイルを 作成するファイルの入出力操作をすると書込みは失敗し、シグナル .Dv SIGXFSZ が生成されます。 通常、これによってプロセスは終了しますが、捕捉することもできます。 CPU 時間のソフトリミットを越えたとき、シグナル .Dv SIGXCPU が障害を起こしているプロセスに送信されます。 .Sh 戻り値 .Rv -std .Sh エラー .Fn getrlimit および .Fn setrlimit システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EFAULT .Fa rlp で指定したアドレスが不正です。 .It Bq Er EPERM .Fn setrlimit に指定されたリミットがリミットの最大値を上昇させようとしましたが、 呼び出し側はスーパユーザではありません。 .El .Sh 関連項目 .Xr csh 1 , .Xr quota 1 , .Xr quotactl 2 , .Xr sigaltstack 2 , .Xr sigvec 2 , .Xr sysctl 3 , .Xr ulimit 3 .Sh 歴史 .Fn getrlimit システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getrusage.2 b/ja_JP.eucJP/man/man2/getrusage.2 index ce643e5be9..d9305bcbe8 100644 --- a/ja_JP.eucJP/man/man2/getrusage.2 +++ b/ja_JP.eucJP/man/man2/getrusage.2 @@ -1,172 +1,172 @@ .\" Copyright (c) 1985, 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. .\" .\" @(#)getrusage.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/getrusage.2,v 1.18 2002/12/19 09:40:24 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/getrusage.2,v 1.20 2004/08/06 14:49:11 roam Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt GETRUSAGE 2 .Os .Sh 名称 .Nm getrusage .Nd リソース利用についての情報を得る .Sh ライブラリ .Li libc .Sh 書式 .In sys/types.h .In sys/time.h .In sys/resource.h .Fd "#define RUSAGE_SELF 0" .Fd "#define RUSAGE_CHILDREN -1" .Ft int .Fn getrusage "int who" "struct rusage *rusage" .Sh 解説 .Fn getrusage システムコールは、現在のプロセス、またはそのプロセスが生成して、終了済みである すべての子プロセスが使用したリソースを詳しく説明する情報を返します。 .Fa who 引数は .Dv RUSAGE_SELF または .Dv RUSAGE_CHILDREN のどちらかです。 .Fa rusage が指すバッファには次の構造体が入れられます。 .Bd -literal struct rusage { struct timeval ru_utime; /* 使用されたユーザ時間 */ struct timeval ru_stime; /* 使用されたシステム時間 */ long ru_maxrss; /* 最大常駐セットのサイズ */ long ru_ixrss; /* 共有テキストメモリ総サイズ */ long ru_idrss; /* 非共有データ総サイズ */ long ru_isrss; /* 非共有スタック総サイズ */ long ru_minflt; /* ページ再生数 */ long ru_majflt; /* ページフォルト */ long ru_nswap; /* スワップ */ long ru_inblock; /* ブロック入力操作 */ long ru_oublock; /* ブロック出力操作 */ long ru_msgsnd; /* 送信済みメッセージ */ long ru_msgrcv; /* 受信済みメッセージ */ long ru_nsignals; /* 受信済みシグナル */ long ru_nvcsw; /* 自発的なコンテキストスイッチ */ long ru_nivcsw; /* 非自発的なコンテキストスイッチ */ }; .Ed .Pp フィールドは次のように解釈されます: .Bl -tag -width ru_minfltaa .It Fa ru_utime ユーザモードで処理を実行するのに費やした時間の合計。 .It Fa ru_stime (1 つ以上の) プロセスのためにシステムが処理を実行するのに 消費した時間の合計。 .It Fa ru_maxrss 使用された常駐セットサイズの最大値 (キロバイト単位)。 .It Fa ru_ixrss 他のプロセスとの間でも共有されていたテキストセグメント によって使用されたメモリ量の .Dq 合計 値。 この値は「キロバイト * 実行のチック数」の単位で表現されます。 チックは統計用のクロックチックです。 統計用クロックの周波数は -.Fn sysconf _SC_CLOCK_TCK +.Fn sysconf _SC_CLK_TCK チック / 秒です。 .It Fa ru_idrss プロセスのデータセグメントに常駐している非共有メモリ量の合計値 (「キロバイト * 実行のチック数」の単位で表現されます)。 .It Fa ru_isrss プロセスのスタックセグメントに常駐している非共有メモリ量の合計値 (「キロバイト * 実行のチック数」の単位で表現されます)。 .It Fa ru_minflt 入出力アクティビティなしにサービスを受けたページフォルトの数。 ここで、入出力アクティビティは、再割り当てを待っているページの リストからページフレームを .Dq 再生 することで回避されます。 .It Fa ru_majflt 入出力アクティビティを必要としたサービスを受けたページフォルトの数。 .It Fa ru_nswap プロセスがメインメモリから .Dq スワップ された回数。 .It Fa ru_inblock ファイルシステムが入力を実行する必要があった回数。 .It Fa ru_oublock ファイルシステムが出力を実行する必要があった回数。 .It Fa ru_msgsnd 送信された IPC メッセージの数。 .It Fa ru_msgrcv 受信した IPC メッセージの数。 .It Fa ru_nsignals 配信されたシグナルの数。 .It Fa ru_nvcsw タイムスライスが完了する前に、プロセスが自発的にプロセッサを 放棄した結果として発生したコンテキストスイッチの回数 (通常はリソースの取得待ちをするためです)。 .It Fa ru_nivcsw より高い優先順位プロセスが実行可能になったために、 または現在のプロセスがそのタイムスライスを超過したために、 結果として発生したコンテキストスイッチの回数。 .El .Sh 注 .Fa ru_inblock と .Fa ru_oublock の値は実際の入出力だけについてのものです。 キャッシュメカニズムによって提供されるデータは、データを読取りまたは 書込みを行う最初のプロセスについてのみカウントされます。 .Sh 戻り値 .Rv -std getrusage .Sh エラー .Fn getrusage システムコールは次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa who 引数が有効な値ではありません。 .It Bq Er EFAULT .Fa rusage 引数によって指定されるアドレスは、プロセスアドレス空間の 有効な部分内にありません。 .El .Sh 関連項目 .Xr gettimeofday 2 , .Xr wait 2 , .Xr clocks 7 .Sh バグ まだ終了していない子プロセスに関する情報を得る方法はありません。 .Sh 歴史 .Fn getrusage システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getsockname.2 b/ja_JP.eucJP/man/man2/getsockname.2 index 90a2d48fab..ac5837cf13 100644 --- a/ja_JP.eucJP/man/man2/getsockname.2 +++ b/ja_JP.eucJP/man/man2/getsockname.2 @@ -1,94 +1,94 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)getsockname.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/getsockname.2,v 1.23 2003/12/24 18:52:41 alfred Exp % +.\" %FreeBSD: src/lib/libc/sys/getsockname.2,v 1.24 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt GETSOCKNAME 2 .Os .Sh 名称 .Nm getsockname .Nd ソケットの名前を得る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int .Fn getsockname "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen" .Sh 解説 .Fn getsockname システムコールは指定のソケットについて現在の .Fa name を返します。 .Fa namelen 引数は、 .Fa name が指す空間の大きさを示すように初期化しておく必要があります。 戻る時には返された名前の実際のサイズ (バイト単位) が入ります。 .Sh 戻り値 .Rv -std getsockname .Sh エラー 呼び出しは、次の場合を除いて正常に完了します: .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ECONNRESET 接続が通信相手によってリセットされました。 .It Bq Er ENOTSOCK 引数 .Fa s はソケットではなくファイルです。 .It Bq Er ENOBUFS 操作を実行するためにシステム内で利用できるリソースが不足しています。 .It Bq Er EFAULT .Fa name 引数が、プロセスアドレス空間の有効な部分内でないメモリを 指しています。 .El .Sh 関連項目 .Xr bind 2 , .Xr getpeername 2 , .Xr socket 2 .Sh バグ UNIX ドメイン内のソケットにバインドされた名前にはアクセスできません。 この場合 .Fn getsockname は、長さが 0 の名前を返します。 .Sh 歴史 .Fn getsockname システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getsockopt.2 b/ja_JP.eucJP/man/man2/getsockopt.2 index fef7d4aa03..c563580010 100644 --- a/ja_JP.eucJP/man/man2/getsockopt.2 +++ b/ja_JP.eucJP/man/man2/getsockopt.2 @@ -1,400 +1,400 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95 -.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.30 2003/12/24 18:52:41 alfred Exp % +.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.31 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd May 2, 1995 .Dt GETSOCKOPT 2 .Os .Sh 名称 .Nm getsockopt , .Nm setsockopt .Nd ソケットのオプションの取得と設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int .Fn getsockopt "int s" "int level" "int optname" "void * restrict optval" "socklen_t * restrict optlen" .Ft int .Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen" .Sh 解説 .Fn getsockopt と .Fn setsockopt システムコールは、ソケットに対応する .Em オプション を操作します。 オプションは複数のプロトコルレベルに存在する可能性があります。 これらは必ず最上位の .Dq ソケット レベルに存在します。 .Pp ソケットオプションを操作する際は、オプションが常駐するレベル およびオプションの名前を指定する必要があります。 ソケットレベルでオプションを操作するには .Fa level を .Dv SOL_SOCKET として指定します。 他のレベルでオプションを操作するには、 オプションを制御している適切なプロトコルのプロトコル番号を指定します。 例えば、オプションが .Tn TCP プロトコルによって解釈されることを指示するには、 .Fa level を .Tn TCP のプロトコル番号に設定する必要があります。 .Xr getprotoent 3 を参照してください。 .Pp .Fa optval と .Fa optlen 引数は、 .Fn setsockopt がオプション値にアクセスするために使用されます。 .Fn getsockopt の場合、これらは要求されたオプションの値が返される バッファを識別します。 .Fn getsockopt の場合、 .Fa optlen は値と結果の引数であり、初期には .Fa optval の指すバッファのサイズが入っており、戻り時に修正されて 返された値の実際のサイズを示すようになります。 オプション値を指定しないか、またはオプション値が返されない場合、 .Fa optval に NULL を指定してもかまいません。 .Pp .Fa optname 引数および指定のオプションは、解釈されずに、 解釈用の該当プロトコルモジュールに渡されます。 インクルードファイル .In sys/socket.h には後述するソケットレベルオプション用の定義が入っています。 他のプロトコルレベルのオプションは形式と名称がさまざまです。 マニュアルのセクション 4 の該当するエントリを参照してください。 .Pp ほとんどのソケットレベルのオプションは .Fa optval 用に .Vt int 引数を使用します。 .Fn setsockopt の場合、ブール演算を有効にするためには引数は 0 でない必要があり、 オプションを無効にする場合は 0 である必要があります。 .Dv SO_LINGER は、 .In sys/socket.h で定義された .Vt "struct linger" 引数を使用します。 これは、目的の状態のオプションとリンガ間隔 (後述) を指定します。 .Dv SO_SNDTIMEO と .Dv SO_RCVTIMEO は、 .In sys/time.h で定義された .Vt "struct timeval" 引数を使用します。 .Pp 以降のオプションがソケットレベルで認識されます。 別記した場合を除いて、各オプションが .Fn getsockopt で調べられ、 .Fn setsockopt で設定されます。 .Bl -column SO_ACCEPTFILTER -offset indent .It Dv SO_DEBUG Ta "デバッグ情報の記録を有効にします" .It Dv SO_REUSEADDR Ta "ローカルアドレスの再使用を有効にします" .It Dv SO_REUSEPORT Ta "重複したアドレスとポートのバインドを有効にします" .It Dv SO_KEEPALIVE Ta "接続を保持することを有効にします" .It Dv SO_DONTROUTE Ta "発信メッセージについて経路設定バイパスを有効にします" .It Dv SO_LINGER Ta "データが存在する場合はクローズで遅延します" .It Dv SO_BROADCAST Ta "ブロードキャストメッセージを送信するパーミッションを有効にします" .It Dv SO_OOBINLINE Ta "バンド内でのバンド外データの受信を有効にします" .It Dv SO_SNDBUF Ta "出力用のバッファサイズを設定します" .It Dv SO_RCVBUF Ta "入力用のバッファサイズを設定します" .It Dv SO_SNDLOWAT Ta "出力用の最小カウントを設定します" .It Dv SO_RCVLOWAT Ta "入力用の最小カウントを設定します" .It Dv SO_SNDTIMEO Ta "出力についてのタイムアウト値を設定します" .It Dv SO_RCVTIMEO Ta "入力についてのタイムアウト値を設定します" .It Dv SO_ACCEPTFILTER Ta "待ち受けソケットでの accept フィルタを設定します" .It Dv SO_TYPE Ta "ソケットのタイプを取得します (取得のみ)" .It Dv SO_ERROR Ta "ソケットのエラーを取得してクリアします (取得のみ)" .El .Pp .Dv SO_DEBUG は下層のプロトコルモジュール内でデバッグを有効にします。 .Dv SO_REUSEADDR は、 .Xr bind 2 システムコールで指定されたアドレスを検証するのに使用する規則で、 ローカルアドレスの再利用が可能であることを示します。 .Dv SO_REUSEPORT は、ポートをバインドする前の複数のプロセスがすべて .Dv SO_REUSEPORT を設定している場合に、 複数のプロセスによる完全に重複したバインドが可能になるようにします。 このオプションは、プログラムの複数のインスタンスそれぞれが、 バインドされたポートを宛先とする UDP/IP マルチキャストまたは ブロードキャストのデータグラムを受信できるようにします。 .Dv SO_KEEPALIVE は接続されたソケット上でメッセージの周期的な送信を有効にします。 接続された一方がこれらのメッセージに応答できない場合は 接続が破壊されていると考えられ、ソケットを使用しているプロセスは データを送信しようとするときに .Dv SIGPIPE シグナルによって通知を受けます。 .Dv SO_DONTROUTE は発信メッセージが標準の経路設定機能をバイパスする必要があることを示します。 代わりに、メッセージは、宛先アドレスのネットワーク部分に従って 該当するネットワークインタフェースに転送されます。 .Pp .Dv SO_LINGER は送信されていないメッセージがソケットの待ち行列にあり、しかも .Xr close 2 が実行される時に行われる処置を制御します。 ソケットがデータの信頼できる配信を確約し、しかも .Dv SO_LINGER が設定されている場合、 データを送信できるまで または情報を配信できない (リンガ間隔と呼ばれるタイムアウト時間は、 .Dv SO_LINGER が要求されるときに .Fn setsockopt システムコール内で秒単位で指定されます) と判定するまで、システムはプロセスを .Xr close 2 上でブロックします。 .Dv SO_LINGER が無効の状態で .Xr close 2 が起動されると、システムは、プロセスが可能な限り迅速に処理を 継続できる方法でクローズ処理を行います。 .Pp オプション .Dv SO_BROADCAST は、ソケット上でブロードキャストデータグラムを送信するパーミッションを 要求します。 ブロードキャストは、システムの初期バージョンでは特権操作でした。 バンド外のデータをサポートするプロトコルで、 .Dv SO_OOBINLINE オプションは、バンド外のデータが受信された順番で通常の データ入力待ち行列に配置されることを要求します。 そして、これは .Dv MSG_OOB フラグなしに .Xr recv 2 呼び出しまたは .Xr read 2 呼び出しでアクセスできます。 常に このオプションが設定されているかのように動作する プロトコルもあります。 .Dv SO_SNDBUF と .Dv SO_RCVBUF は、それぞれ、出力および入力用に割り当てられる通常のバッファサイズを 調整するオプションです。 バッファのサイズは、高ボリューム接続のために増加することができますし、 着信データの可能なバックログを 制限するために減少させることもできます。 システムはこれらの値について 1 つの絶対最大値を設定します。 この最大値は .Xr sysctl 3 MIB 変数 .Dq Li kern.ipc.maxsockbuf によってアクセスできます。 .Pp .Dv SO_SNDLOWAT は出力操作に最小カウントを設定するオプションです。 ほとんどの出力操作は、送信用のプロトコルにデータを配信し、 フロー制御のためにブロックしながら呼び出しによって与えられた すべてのデータを処理します。 ノンブロッキング出力操作は、ブロックなしのフロー制御に従って 許容される限界までデータを処理しますが、フロー制御が 最低基準値または要求全体のいずれか小さい方を処理することを許容しない 場合はデータを処理しません。 ソケットへの書込み能力を試験する .Xr select 2 操作が真で返るのは、最低基準値を処理できる場合だけです。 .Dv SO_SNDLOWAT のデフォルト値はネットワーク効率性のために 適切なサイズ (多くの場合は 1024) に設定されます。 .Dv SO_RCVLOWAT は入力操作の最小カウントを設定するオプションです。 一般に、受信呼び出しは、いくらかの (0 でない) データが 受信されるまでブロックしてから、利用できる量または 要求された量のいずれか少ない方とともに戻ります。 .Dv SO_RCVLOWAT のデフォルト値は 1 です。 .Dv SO_RCVLOWAT にもっと大きな値が設定されている場合、 受信呼び出しのブロックは通常、最低基準値または 要求された量のいずれか小さい方が受信されるまで待機します。 受信呼び出しは、エラーが発生したり、シグナルが捕らえられたり、 または受信待ち行列内の次のデータのタイプが返されたものと異なる場合は、 最低基準値より小さい値でも戻ることがあります。 .Pp .Dv SO_SNDTIMEO は出力操作についてタイムアウト値を設定するオプションです。 これは、出力操作完了の待機を制限するために使用される秒数、 マイクロ秒数を .Vt "struct timeval" 引数で指定します。 送信操作が指定された時間以上ブロックされた場合、部分的なカウントで戻るか、 またはデータが送信されていない場合はエラー .Er EWOULDBLOCK で戻ります。 現在の実装では、このタイマは追加の各データがプロトコルに 配信されるたびに再起動され、これはサイズが出力用の最低基準値から 最高基準値の範囲に至る出力部分に適用されることを意味します。 .Dv SO_RCVTIMEO は入力操作についてタイムアウト値を設定するオプションです。 これは入力操作完了の待機を制限するために使用される秒数、マイクロ秒数を .Vt "struct timeval" 引数で指定します。 現在の実装では、このタイマは追加のデータがプロトコルによって 受信されるたびに再起動されるので、 制限は実際には休止期間のタイマとなります。 追加のデータを受信することなく受信操作がこれだけの時間について ブロックされた場合、短いカウントで戻るか、 またはデータが受信されていない場合はエラー .Er EWOULDBLOCK で戻ります。 .Pp .Dv SO_ACCEPTFILTER は、ソケット上に .Xr accept_filter 9 を置きます。 これにより、待ち受けしているストリームソケットに入ってくる接続が .Xr accept 2 に渡される前にフィルタされることになります。 念のため繰り返します。 フィルタをソケット上にインストールする前に、ソケットに対して .Xr listen 2 呼び出す必要があります。 そうしないと .Fn setsockopt システムコールが失敗します。 .Bd -literal struct accept_filter_arg { char af_name[16]; char af_arg[256-16]; }; .Ed .Pp .Fa optval 引数は .Fa struct accept_filter_arg を指さなくてはなりません。 この構造体が .Xr accept_filter 9 を選択、設定します。 .Fa af_name 引数は、アプリケーションが待ち受けソケット上に置きたいと思っている accept フィルタの名前で埋めなくてはなりません。 オプションの引数 .Fa af_arg は、 .Fa af_name で指定された accept フィルタに渡すことができるものです。 これにより、ソケットに置かれる時にさらなる設定オプションを 提供します。 NULL を .Fa optval 中で渡すと、フィルタが削除されます。 .Pp 最後に、 .Dv SO_TYPE と .Dv SO_ERROR は .Fn getsockopt でだけ使用されるオプションです。 .Dv SO_TYPE では .Dv SOCK_STREAM のようなソケットのタイプが返ります。 これはスタートアップ時にソケットを継承するようなサーバに便利です。 .Dv SO_ERROR はソケット上で延期中のエラーを返し、エラー状態をクリアします。 これは接続されたデータグラムソケット上の非同期的エラーをチェックしたり、 その他の非同期エラーをチェックするのに使用できます。 .Sh 戻り値 .Rv -std .Sh エラー 呼び出しは次の場合を除いて正常です: .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ENOTSOCK 引数 .Fa s がソケットではなくファイルです。 .It Bq Er ENOPROTOOPT 指示されたレベルでオプションは存在しません。 .It Bq Er EFAULT .Fa optval が指すアドレスがプロセスアドレス空間の有効な部分にありません。 .Fn getsockopt では、 .Fa optlen がプロセスアドレス空間の有効な部分でない場合も、 このエラーが返される可能性があります。 .It Bq Er EINVAL 待ち受けていないソケットに対して .Xr accept_filter 9 のインストールを試みました。 .El .Sh 関連項目 .Xr ioctl 2 , .Xr socket 2 , .Xr getprotoent 3 , .Xr sysctl 3 , .Xr protocols 5 , .Xr sysctl 8 , .Xr accept_filter 9 .Sh バグ ソケットオプションのいくつかはシステムの低いレベルで処理される必要があります。 .Sh 歴史 .Fn getsockopt システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/gettimeofday.2 b/ja_JP.eucJP/man/man2/gettimeofday.2 index b418b098a5..a9304f2b90 100644 --- a/ja_JP.eucJP/man/man2/gettimeofday.2 +++ b/ja_JP.eucJP/man/man2/gettimeofday.2 @@ -1,132 +1,132 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)gettimeofday.2 8.2 (Berkeley) 5/26/95 -.\" %FreeBSD: src/lib/libc/sys/gettimeofday.2,v 1.24 2004/01/19 12:41:39 phk Exp % +.\" %FreeBSD: src/lib/libc/sys/gettimeofday.2,v 1.25 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd May 26, 1995 .Dt GETTIMEOFDAY 2 .Os .Sh 名称 .Nm gettimeofday , .Nm settimeofday .Nd 日付と時刻の取得 / 設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/time.h .Ft int .Fn gettimeofday "struct timeval *tp" "struct timezone *tzp" .Ft int .Fn settimeofday "const struct timeval *tp" "const struct timezone *tzp" .Sh 解説 .Bf -symbolic 注記: timezone はもはや使用されません。 この情報はカーネルの外側に保持されます。 .Ef .Pp システムが保持している現在のグリニッジ時刻と現在の時間帯は .Fn gettimeofday システムコールから得られ、 .Fn settimeofday システムコールで設定されます。 時刻は 1970 年 1 月 1 日の深夜 (0 時) からの秒数とマイクロ秒数で表現されます。 システムクロックの分解能はハードウェアで決まり、 時刻は継続的または .Dq チック 単位で更新されます。 .Fa tp または .Fa tzp が NULL の場合、対応する時刻情報は返されず、また設定されません。 .Pp .Fa tp と .Fa tzp の指す構造体は .In sys/time.h 内に次のように定義されています: .Pp .Bd -literal struct timeval { long tv_sec; /* 1970 年 1 月 1 日からの秒数 */ long tv_usec; /* およびマイクロ秒数 */ }; struct timezone { int tz_minuteswest; /* グリニッジから西方向への偏差 */ int tz_dsttime; /* 夏時間補正のタイプ */ }; .Ed .Pp .Vt timezone 構造体は、ローカル時間帯 (グリニッジから西向きに分単位で測定) と フラグを含みます。 フラグが 0 でない場合は、1 年の適切な時期に 夏時間がその地域に適用されることを示します。 .Pp スーパユーザだけが時刻または時間帯を設定できます。 システムが securelevel >= 2 .Pf ( Xr init 8 を参照) で実行される場合は、 最大 1 秒のみ時刻を進めるか遅らせることしかできません。 この制限が課されるのは、悪意のあるスーパユーザがファイルに任意の タイムスタンプを設定するのを防止するためです。 システム時刻は、システムが安全モードにあっても .Xr adjtime 2 システムコールを使用して制限なしに後方に調整できます。 .Sh 戻り値 .Rv -std .Sh エラー 次のエラーコードが .Va errno に設定されます: .Bl -tag -width Er .It Bq Er EFAULT 引数アドレスが無効なメモリを参照しました。 .It Bq Er EPERM スーパユーザ以外のユーザが時刻を設定しようとしました。 .El .Sh 関連項目 .Xr date 1 , .Xr adjtime 2 , .Xr clock_gettime 2 , .Xr ctime 3 , .Xr timeradd 3 , .Xr clocks 7 , .Xr timed 8 .Sh 歴史 .Fn gettimeofday システムコールは .Bx 4.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/i386_get_ioperm.2 b/ja_JP.eucJP/man/man2/i386_get_ioperm.2 index ef175d0631..e39c4387ee 100644 --- a/ja_JP.eucJP/man/man2/i386_get_ioperm.2 +++ b/ja_JP.eucJP/man/man2/i386_get_ioperm.2 @@ -1,83 +1,83 @@ .\" Copyright (c) 1998 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 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/i386/sys/i386_get_ioperm.2,v 1.10 2002/12/18 12:39:25 ru Exp % +.\" %FreeBSD: src/lib/libc/i386/sys/i386_get_ioperm.2,v 1.11 2004/07/02 23:52:11 ru Exp % .\" .\" $FreeBSD$ .Dd July 27, 1998 .Os .Dt I386_GET_IOPERM 2 .Sh 名称 .Nm i386_get_ioperm , .Nm i386_set_ioperm .Nd i386 入出力ポート空間へのプロセスごとのアクセスを管理する .Sh ライブラリ .Lb libc .Sh 書式 .In machine/sysarch.h .Ft int .Fn i386_get_ioperm "unsigned int start" "unsigned int *length" "int *enable" .Ft int .Fn i386_set_ioperm "unsigned int start" "unsigned int length" "int enable" .Sh 解説 .Fn i386_get_ioperm システムコールは、プロセスの入出力ポート空間についてのパーミッションを .Fa *enable 引数内に返します。 ポートの範囲は .Fa start で開始し、連続エントリの数が .Fa *length 内に返されます。 .Pp .Fn i386_set_ioperm システムコールは、 .Fa start 引数と .Fa length 引数によって記述された入出力ポートの範囲へのアクセスを .Fa enable 引数で指定された状態に設定します。 .Sh 戻り値 .Rv -std .Sh エラー .Fn i386_get_ioperm と .Fn i386_set_ioperm システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa start または .Fa length 引数に無効な範囲が指定されました。 .It Bq Er EPERM i386_set_ioperm の呼び出し側がスーパユーザではありませんでした。 .El .Sh 関連項目 .Xr io 4 .Sh 作者 このマニュアルページは .An Jonathan Lemon が作成しました。 diff --git a/ja_JP.eucJP/man/man2/i386_get_ldt.2 b/ja_JP.eucJP/man/man2/i386_get_ldt.2 index 6656308329..10930b413c 100644 --- a/ja_JP.eucJP/man/man2/i386_get_ldt.2 +++ b/ja_JP.eucJP/man/man2/i386_get_ldt.2 @@ -1,131 +1,131 @@ .\" Copyright (c) 1980, 1991 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: @(#)fork.2 6.5 (Berkeley) 3/10/91 -.\" %FreeBSD: src/lib/libc/i386/sys/i386_get_ldt.2,v 1.20 2003/09/08 19:57:14 ru Exp % +.\" %FreeBSD: src/lib/libc/i386/sys/i386_get_ldt.2,v 1.21 2004/07/02 19:07:30 ru Exp % .\" .\" $FreeBSD$ .Dd September 20, 1993 .Dt I386_GET_LDT 2 .Os .Sh 名称 .Nm i386_get_ldt , .Nm i386_set_ldt .Nd i386 プロセスごとのローカル記述子テーブルエントリを管理する .Sh ライブラリ .Lb libc .Sh 書式 .In machine/segments.h .In machine/sysarch.h .Ft int .Fn i386_get_ldt "int start_sel" "union descriptor *descs" "int num_sels" .Ft int .Fn i386_set_ldt "int start_sel" "union descriptor *descs" "int num_sels" .Sh 解説 .Fn i386_get_ldt システムコールはプロセスの LDT の中にある i386 記述子のリストを返します。 .Fn i386_set_ldt システムコールは現在のプロセスのための i386 記述子のリストを、 そのプロセスの LDT に設定します。 両方のルーチンは、開始するセレクタ番号の .Fa start_sel と、設定する記述子の入った、または記述子が返されるメモリの配列の .Fa descs および設定または返されるエントリ数の .Fa num_sels を受け取ります。 .Pp 引数 .Fa descs は、 .In i386/segments.h で定義されている segment_descriptor または gate_descriptor であることができます。 これらの構成要素は、アーキテクチャに対応して ばらばらになったビットフィールドとして定義されているので、 それらを組み立てる際には注意を払う必要があります。 .Pp .Fa start_sel が .Em LDT_AUTO_ALLOC で、 .Fa num_sels が 1 で、 .Fa descs によって指される記述子が正当である場合には、 .Fn i386_set_ldt は記述子を割り当てて、そのセレクタ番号を返します。 .Pp .Fa num_descs が 1 で、 .Fa start_sels が有効で、 .Fa descs が NULL の場合には、 .Fn i386_set_ldt はその記述子を開放します (後でまた再割り当てできるようにします)。 .Pp .Fa num_descs が 0 で、 .Fa start_sels が 0 で、 .Fa descs が NULL の場合には特別な場合として、 .Fn i386_set_ldt は全ての記述子を開放します。 .Sh 戻り値 正常に完了した場合、 .Fn i386_get_ldt は現在 LDT 内にある記述子の数を返します。 .Fn i386_set_ldt システムコールは最初のセレクタセットを返します。 記述子がカーネルによって割り当てられた場合には、その数が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn i386_get_ldt と .Fn i386_set_ldt システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa start_sel または .Fa num_sels について不適切な値が使用されました。 .It Bq Er EACCES 呼び出し側が保護機構を欺くかまたは障害を起こす記述子を使おうとしました。 .El .Sh 関連項目 i386 Microprocessor Programmer's Reference Manual, Intel .Sh 警告 これを使用してプロセスをまったくダメにすることができます。 diff --git a/ja_JP.eucJP/man/man2/intro.2 b/ja_JP.eucJP/man/man2/intro.2 index e0d561124e..37ad611380 100644 --- a/ja_JP.eucJP/man/man2/intro.2 +++ b/ja_JP.eucJP/man/man2/intro.2 @@ -1,776 +1,783 @@ .\" Copyright (c) 1980, 1983, 1986, 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. .\" .\" @(#)intro.2 8.5 (Berkeley) 2/27/95 -.\" %FreeBSD: src/lib/libc/sys/intro.2,v 1.39 2003/09/08 19:57:16 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/intro.2,v 1.42 2004/07/08 20:27:38 wollman Exp % .\" .\" $FreeBSD$ .Dd February 27, 1995 .Dt INTRO 2 .Os .Sh 名称 .Nm intro .Nd システムコールとエラー番号の紹介 .Sh ライブラリ .Lb libc .Sh 書式 .In errno.h .Sh 解説 このセクションでは、システムコール、エラー戻り、 その他の共通な定義およびコンセプトの概要について説明します。 .\".Pp .\".Sy System call restart .\".Pp .\" .Sh 戻り値 ほとんどすべてのシステムコールが外部識別子 errno によって参照される エラー番号を備えています。 .In sys/errno.h 内でこの識別子は次のように定義されています。 .Pp .Dl extern int * __error(); .Dl #define errno (* __error()) .Pp .Va __error() 関数は、初期スレッド以外のスレッドについては、スレッドに固有な構造体の フィールドを指すポインタを返します。 初期スレッドと非スレッドプロセスの場合、 .Va __error() は、以前の定義と互換性のあるグローバル変数 .Va errno を指すポインタを返します。 .Pp システムコールは、エラーを検出すると、障害を示す整数値 (通常は -1) を返し、 それに応じて変数 .Va errno を設定します。 <これにより、-1 を受け取ったときに障害を解釈し、 それに応じた行動をとることを可能にします。> 呼び出しが正常に完了した場合は .Va errno が設定されることはありません。 いったん設定されると、別のエラーが起きるまでそのままです。 これはエラーの後でだけ調べるべきです。 多くのシステムコールがこれらのエラー番号の意味を過重にしており、 意味は呼び出しのタイプと状況に従って解釈する必要があることに注意してください。 .Pp 以降に示すのはエラーの完全なリストであり、これらの名前は .In sys/errno.h に記載されています。 .Bl -hang -width Ds .It Er 0 Em "Undefined error: 0" . 「未定義のエラー: 0」 未使用。 .It Er 1 EPERM Em "Operation not permitted" . 「操作が許されません」 適切な特権をもつプロセスに限定された操作、 またはファイルその他のリソースの所有者に 限定された操作を実行しようとしました。 .It Er 2 ENOENT Em "No such file or directory" . 「そのようなファイルまたはディレクトリはありません」 指定のパス名の構成要素が存在しないか、またはパス名が空の文字列でした。 .It Er 3 ESRCH Em "No such process" . 「そのようなプロセスはありません」 指定のプロセス ID に対応するプロセスが見つかりませんでした。 .It Er 4 EINTR Em "Interrupted system call" . 「関数呼び出しが割り込まれました」 割り込み可能な関数の実行中に、非同期シグナル (たとえば、 .Dv SIGINT または .Dv SIGQUIT ) がプロセスによって捕らえられました。 シグナルハンドラが正常に戻ると、 割り込みされたシステムコールがエラー状態を返したように見えます。 .It Er 5 EIO Em "Input/output error" . 「入出力エラーです」 何らかの物理的な入力エラーまたは出力エラーが起きました。 このエラーは、同じファイル記述子に対する操作が次に行われるまで報告されず、 後続のエラーによって失われる (上書きされる) 可能性があります。 .It Er 6 ENXIO Em "Device not configured" . 「デバイスが準備されていません」 存在しないデバイスを参照している特殊ファイルへの入出力が行われたか、 またはデバイスの制限を越えた要求が行われました。 このエラーは、テープドライブがオンラインでない場合や、 またはディスクパックがドライブにロードされていない場合などにも 発生する可能性があります。 .It Er 7 E2BIG Em "Argument list too long" . 「引数のリストが長すぎます」 新しいプロセスの引数リストと環境変数リストに使用されるバイト数が、 現在の限界である 65536 バイト .In ( sys/param.h 内の .Dv NCARGS ) を越えました。 .It Er 8 ENOEXEC Em "Exec format error" . 「実行形式エラーです」 実行を要求されたファイルのパーミッションは適切でしたが、 実行可能ファイルとして要求される形式ではありませんでした。 .It Er 9 EBADF Em "Bad file descripter" . 「ファイル記述子が不良です」 ファイル記述子引数が範囲外であったか、 開いていないファイルを参照していたか、 または書込み (読取り) 専用に開かれたファイルに 読取り (書込み) 要求が行われました。 .It Er 10 ECHILD Em "\&No child processes" . 「子プロセスがありません」 .Xr wait 2 または .Xr waitpid 2 関数が、子プロセスが存在しないか、待機されたことのない 子プロセスを持たないプロセスによって実行されました。 .It Er 11 EDEADLK Em "Resource deadlock avoided" . 「リソースデッドロックを回避しました」 デッドロック状況になる可能性のあるシステムリソースをロックしようとしました。 .It Er 12 ENOMEM Em "Cannot allocate memory" . 「メモリの割り当てができません」 新しいプロセスイメージが、ハードウェアまたはシステムが課する メモリ管理制約によって許容されるより多くのメモリを要求しました。 スワップ空間の不足は通常、一時的です。 しかし、コアの不足は一時的ではありません。 ソフト限界を対応するハード限界まで増加させることはできます。 .It Er 13 EACCES Em "Permission denied" . 「パーミッションが拒絶されました」 ファイルアクセスパーミッションで禁止されている方法で ファイルにアクセスしようとしました。 .It Er 14 EFAULT Em "Bad address" . 「不正なアドレスです」 呼び出しで渡された引数を使おうとしているときに、 システムが無効なアドレスを検出しました。 .It Er 15 ENOTBLK Em "Block device required" . 「ブロックデバイスが要求されています」 ブロックデバイス操作が、非ブロックデバイスまたはファイルについて 試みられました。 .It Er 16 EBUSY Em "Device busy" . 「デバイスがビジー状態です」 その時点で使用されているシステムリソースを、 その要求と干渉するであろう方法で使おうとしました。 .It Er 17 EEXIST Em "File exists" . 「ファイルが存在します」 すでに存在するファイルが不適切なコンテキストで指定されました。 たとえば、 .Xr link 2 システムコールにおける新しいリンク名としてです。 .It 18 Er EXDEV Em "Cross-device link" . 「デバイスをまたぐリンクです」 別のファイルシステム上のファイルへのハードリンクが 試みられました。 .It Er 19 ENODEV Em "Operation not supported" . 「操作がデバイスによってサポートされていません」 あるデバイスに不適切な関数を適用しようしました。 たとえば、プリンタのような書込み専用デバイスを読み取ろうとしました。 .It Er 20 ENOTDIR Em "Not a directory" . 「ディレクトリではありません」 指定のパス名の構成要素は確かに存在しましたが、 ディレクトリが求められているにもかかわらず、 それがディレクトリではありませんでした。 .It Er 21 EISDIR Em "Is a directory" . 「ディレクトリです」 書込みモードを指定してディレクトリをオープンしようとしました。 .It Er 22 EINVAL Em "Invalid argument" . 「無効な引数です」 無効な引数が指定されました (たとえば、 .Xr signal 3 システムコールまたは .Xr kill 2 システムコールに未定義のシグナルを指定する場合)。 .It Er 23 ENFILE Em "Too many open files in system" . 「システム内でオープンされているファイルが多すぎます」 システムが許容するファイル記述子の数の最大数に到達しており、少なくとも 1 つがクローズされるまで、オープンしようとする要求は満たされません。 .It Er 24 EMFILE Em "Too many open files" . 「オープンしているファイルが多すぎます」 <現在のリリースでは、 プロセス1個につきオープンできるファイル数の上限は 64 です。> .Xr getdtablesize 2 システムコールで現在の限界を取得できます。 .It Er 25 ENOTTY Em "Inappropriate ioctl for device" . 「デバイスに不適切な ioctl です」 ファイルまたは特殊デバイスに不適切な操作を要求する制御関数 ( .Xr ioctl 2 を参照) を試みました。 .It Er 26 ETXTBSY Em "Text file busy" . 「テキストファイルがビジーです」 別のプロセスによって書込み用にオープンされた 純粋プロシージャ (共有テキスト) ファイルから新しいプロセスを作ろうとしたか、 または純粋プロシージャファイルが実行されている間に、書込みアクセスを要求する .Xr open 2 呼び出しが実行されました。 .It Er 27 EFBIG Em "File too large" . 「ファイルが大きすぎます」 ファイルのサイズが最大値を超過しました (約 .if t 2\u\s-231\s+2\d .if n 2.1E9 バイト)。 .It Er 28 ENOSPC Em "No space left on device" . 「デバイスの空き領域不足です」 該当するファイルシステムで新たなディスクブロックが利用できないために、 通常ファイルへの .Xr write 2 処理、ディレクトリの作成、シンボリックリンクの作成、 ディレクトリエントリの作成が失敗しました。 または、該当するファイルシステムで新たな inode が利用できないために、 新しく作成するファイルに対する inode の割り当てが失敗しました。 .It Er 29 ESPIPE Em "Illegal seek" . 「不正なシークです」 .Xr lseek 2 システムコールがソケット、パイプ、または .Tn FIFO に対して実行されました。 .It Er 30 EROFS Em "Read-only file system" . 「読取り専用ファイルシステムです」 ファイルまたはディレクトリを変更しようとする試みが、 その時点で読取り専用であるファイルシステムに対して行われました。 .It Er 31 EMLINK Em "Too many links" . 「リンクが多すぎます」 1 つのファイルについて許容されるハードリンクの最大数を超過しました (1 ファイルにつきハードリンク数の限界は 32767 です)。 .It Er 32 EPIPE Em "Broken pipe" . 「パイプが破壊されてました」 データを読み取るプロセスのないパイプ、ソケット、または .Tn FIFO に対しての書込みです。 .It Er 33 EDOM Em "Numerical argument out of domain" . 「数値引数が領域外です」 数値入力引数が、数学関数の定義域の外側にありました。 .It Er 34 ERANGE Em "Result too large" . 「結果が大き過ぎます」 関数の数値結果が大きすぎて、利用できる場所に入りません (おそらく精度を超過したのでしょう)。 .It Er 35 EAGAIN Em "Resource temporary unavailable" . 「リソースが一時的に利用できません」 これは一時的な状況であり、後で同じルーチンを呼び出した時に 正常に完了する可能性があります。 .It Er 36 EINPROGRESS Em "Operation now in progress" . 「操作が現在進行中です」 完了するのに時間のかかる操作 ( .Xr connect 2 など) をノンブロッキングオブジェクトに対し試みました ( .Xr fcntl 2 を参照)。 .It Er 37 EALREADY Em "Operation already in progress" . 「操作は既に進行中です」 既に操作が進行中のノンブロッキングオブジェクトに対してさらに操作を試みました。 .It Er 38 ENOTSOCK Em "Socket operation on non-socket" . 「ソケットでないものについてソケット操作を行いました」 ここに書いてあるとおりです。 .It Er 39 EDESTADDRREQ Em "Destination address required" . 「宛先アドレスが要求されています」 ソケットに関する操作に際し、必要なアドレスが抜けています。 .It Er 40 EMSGSIZE Em "Message too long" . 「メッセージが長すぎます」 内部メッセージバッファ、または何らかのネットワーク上の制限より 大きなメッセージがソケットで送信されました。 .It Er 41 EPROTOTYPE Em "Protocol wrong type for socket" . 「ソケットに対するプロトコルのタイプが間違っています」 要求されたソケットタイプではサポートされないプロトコルが指定されました。 たとえば、タイプ .Dv SOCK_STREAM では、 .Tn ARPA インターネット .Tn UDP プロトコルを使用できません。 .It Er 42 ENOPROTOOPT Em "Protocol not available" . 「プロトコルが利用できません」 .Xr getsockopt 2 呼び出しまたは .Xr setsockopt 2 呼び出しで、間違ったオプションまたはレベルが指定されました。 .It Er 43 EPROTONOSUPPORT Em "Protocol not supported" . 「プロトコルがサポートされていません」 指定したプロトコルがシステム内に組み込まれていないか、 またはそのプロトコルの実装が存在しません。 .It Er 44 ESOCKTNOSUPPORT Em "Socket type not supported" . 「ソケットタイプがサポートされていません」 指定したソケットタイプがシステム内に組み込まれてないか、 またはそのソケットタイプの実装が存在しません。 .It Er 45 EOPNOTSUPP Em "Operation not supported" . 「操作がサポートされていません」 引数が指すオブジェクトのタイプは、指定した操作をサポートしていません。 このエラーが起きるのは、通常は、ファイル記述子がこの操作を サポートできないファイルまたはソケットを参照しているときです。 たとえば、データグラムソケット上で接続を .Em accept しようしたときです。 .It Er 46 EPFNOSUPPORT Em "Protocol family not supported" . 「プロトコルファミリがサポートされていません」 指定したプロトコルファミリがシステムに組み込まれていないか、 またはそのプロトコルファミリの実装が存在していません。 .It Er 47 EAFNOSUPPORT Em "Address family not supported by protocol family" . 「アドレスファミリがプロトコルファミリによってサポートされていません」 要求したプロトコルと互換性のないアドレスが使用されました。 たとえば、 .Tn ARPA インターネットプロトコルで .Tn NS アドレスを使用できるとは必ずしも期待すべきではないでしょう。 .It Er 48 EADDRINUSE Em "Address already in use" . 「アドレスが既に使用中です」 各アドレスごとに、一度に 1 つだけを利用できます。 .It Er 49 EADDRNOTAVAIL Em "Cannot assing requested address" . 「要求されたアドレスを割り当てできません」 通常は、このマシン上にないアドレスでソケットを作成しようとした結果です。 .It Er 50 ENETDOWN Em "Network is down" . 「ネットワークがダウンしています」 ソケット操作の結果、動作していないネットワークに遭遇しました。 .It Er 51 ENETUNREACH Em "Network is unreachable" . 「ネットワークに到達できません」 到達できないネットワークに向けてソケット操作を試みました。 .It Er 52 ENETRESET Em "Network dropped connection on reset" . 「リセットによりネットワークの接続が失われました」 接続していたホストがクラッシュして再起動されました。 .It Er 53 ECONNABORTED Em "Software caused connection abort" . 「ソフトウェアによる接続中断が生じました」 自マシン側の原因により接続中断が発生しました。 .It Er 54 ECONNRESET Em "Connection reset by peer" . 「接続が通信相手によってリセットされました」 接続が通信相手 (peer) によって強制的にクローズされました。 これはタイムアウトまたは再起動によって、 リモート側のソケットで接続が失われた結果であるのが普通です。 .It Er 55 ENOBUFS Em "\&No buffer space available" . 「バッファの空きがありません」 システムに十分なバッファがないか、待ち行列が一杯になったために、 ソケットまたはパイプについての操作が行われませんでした。 .It Er 56 EISCONN Em "Socket is already connected" . 「ソケットは既に接続されています」 既に接続されたソケットに対して .Xr connect 2 要求を行いました。 または、接続済みのソケットに対する .Xr sendto 2 や .Xr sendmsg 2 要求に際し、既に接続されているのに宛先を指定しました。 .It Er 57 ENOTCONN Em "Socket is not connected" . 「ソケットは接続されていません」 ソケットが接続されておらず、しかも (データグラムソケットを送信するときに) アドレスが指定されていなかったために、データを送信または 受信する要求が許可されませんでした。 .It Er 58 ESHUTDOWN Em "Cannot send after socket shutdown" . 「ソケットのシャットダウンの後で送信ができません」 以前に .Xr shutdown 2 を呼び出して既にシャットダウンさせてしまったために、 ソケットに対しデータを送信する要求が許可されませんでした。 .It Er 60 ETIMEDOUT Em "Operation timed out" . 「操作がタイムアウトしました」 ある時間が経過するまでに接続相手が適切に応答しなかったために、 .Xr connect 2 要求または .Xr send 2 要求の処理に失敗しました (タイムアウトの期間は通信プロトコルに左右されます)。 .It Er 61 ECONNREFUSED Em "Connection refused" . 「接続が拒絶されました」 接続相手のマシンが接続を自ら拒否したので、接続を確立できませんでした。 これは、通常、相手ホストで有効でないサービスに接続しようとした結果です。 .It Er 62 ELOOP Em "Too many levels of symbolic links" . 「シンボリックリンクのレベルが多すぎます」 パス名の探索に、32 .Pq Dv MAXSYMLINKS を越えるシンボリックリンクが含まれていました。 .It Er 63 ENAMETOOLONG Em "File name too long" . 「ファイル名が長すぎます」 -パス名の構成要素が 255 -.Pq Dv MAXNAMELEN -文字を越えているか、またはパス名全体が 1023 -.Pq Dv MAXPATHLEN Ns -1 -文字を越えています。 +パス名の構成要素が +.Brq Dv NAME_MAX +文字を越えているか、またはパス名全体が +.Brq Dv PATH_MAX +文字を越えています +.Xr ( pathconf 2 +の中の +.Dv _PC_NO_TRUNC +の解説も参照して下さい)。 .It Er 64 EHOSTDOWN Em "Host is down" . 「ホストがダウンしています」 宛先ホストがダウンしているためにソケット操作が失敗しました。 .It Er 65 EHOSTUNREACH Em "No route to host" . 「ホストへの経路はありません」 到達不可能なホストにソケット操作をしようとしました。 .It Er 66 ENOTEMPTY Em "Directory not empty" . 「ディレクトリが空ではありません」 ディレクトリ削除または名前変更の呼び出しに対し、 .Ql .\& と .Ql ..\& 以外のエントリを含むディレクトリが指定されました。 .It Er 67 EPROCLIM Em "Too many processes" . 「プロセスが多すぎます」 .It Er 68 EUSERS Em "Too many users" . 「ユーザが多すぎます」 クォータシステムがテーブルエントリを使い切りました。 .It Er 69 EDQUOT Em "Disc quota exceeded" . 「ディスククォータが超過しました」 ユーザのディスクブロッククォータを使い尽くしたために、通常のファイルへの .Xr write 2 、ディレクトリの作成、シンボリックリンクの作成、 ディレクトリエントリの作成が失敗しました。 もしくは、ユーザの inode クォータを使い尽くしたために、 新しく作成されたファイルのための inode の割り当てに失敗しました。 .It Er 70 ESTALE Em "Stale NFS file handle" . 「失効した NFS ファイルハンドルです」 オープンされている ( .Tn NFS ファイルシステム上の ) ファイルに対してアクセスしようとしましたが、 指定したファイル記述子が参照するファイルは現在利用できません。 これは .Tn NFS サーバ上でファイルが削除されたか、 または他の破滅的な何かが起きたことを示していると思われます。 .It Er 72 EBADRPC Em "RPC struct is bad" . 「RPC 構造体が不良です」 .Tn RPC 情報の交換が不成功でした。 .It Er 73 ERPCMISMATCH Em "RPC varsion wrong" . 「RPC バージョンが間違っています」 通信相手の .Tn RPC のバージョンが、こちらのバージョンと互換性がありません。 .It Er 74 EPROGUNAVAIL Em "RPC prog. not avail" . 「RPC プログラムが利用できません」 要求したプログラムがリモートホストに登録されていません。 .It Er 75 EPROGMISMATCH Em "Program version wrong" . 「プログラムバージョンが間違っています」 要求したバージョンのプログラムが、リモートホスト .Pq Tn RPC 上で利用できません。 .It Er 76 EPROCUNAVAIL Em "Bad procedure for program" . 「プログラムにとって間違った手続きです」 リモートプログラム内に存在しない手続きに対し .Tn RPC 呼び出しが試みられました。 .It Er 77 ENOLCK Em "No locks available" . 「ロックが利用できません」 システムが課した、同時ファイルロック数の制限に達しました。 .It Er 78 ENOSYS Em "Function not implemented" . 「関数が実装されていません」 このシステムで利用できないシステムコールを実行しようとしました。 .It Er 79 EFTYPE Em "Inappropriate file type or format" . 「ファイルの型または形式が不適切です」 操作が誤った型のファイルに行われたか、またはデータファイルの 形式が誤っています。 .It Er 80 EAUTH Em "Authentication error" . 「認証エラーです」 .Tn NFS ファイルシステムをマウントするために不正な 認証チケットを使おうとしました。 .It Er 81 ENEEDAUTH Em "Need authenticator" . 「認証物が必要です」 指定した .Tn NFS ファイルシステムをマウントするために認証チケットが必要です。 .It Er 82 EIDRM Em "Identifier removed" . 「識別子は削除されました」 IPC の識別子は、現在のプロセスがそれで待っている間に削除されました。 .It Er 83 ENOMSG Em "No message of desired type" . 「要求された型のメッセージがありません」 要求した型のメッセージが IPC メッセージキューにありません。 または、メッセージカタログは要求したメッセージを含んでいません。 .It Er 84 EOVERFLOW Em "Value too large to be stored in data type" . 「データタイプに格納するには大きすぎる値です」 関数からの数値の戻り値が、呼び出し側で用意した場所に格納するには大きすぎます。 .It Er 85 ECANCELED Em "Operation canceled" . 「処理はキャンセルされました」 予定されていた処理はキャンセルされました。 .It Er 86 EILSEQ Em "Illegal byte sequence" . 「不正なバイト列です」 多バイト文字をデコードしている際に、関数は不正または不完全なバイト列 もしくは不正なワイド文字に遭遇しました。 .It Er 87 ENOATTR Em "Attribute not found" . 指定された拡張属性は存在しません。 .It Er 88 EDOOFUS Em "Programming error" . 関数や API を、実行時にしか検知されない方法で誤用しました。 .El .Sh 定義 .Bl -tag -width Ds .It "プロセス ID (Process ID)" システム内のアクティブな各プロセスは、プロセス ID と呼ばれる 負でない整数によって一意に識別されます。 この ID の範囲は 0 から 99999 までです。 .It "親プロセス ID (Parent process ID)" 新しいプロセスは、現在のアクティブなプロセスから作成されます ( .Xr fork 2 を参照)。 プロセスの親プロセス ID は、 最初はそれを作成したプロセスのプロセス ID となっています。 そのプロセスを作成したプロセスが exit した場合、 それぞれの子プロセスの親プロセス ID は、システムプロセス .Xr init 8 の ID に設定されます。 .It "プロセスグループ (Process Group)" アクティブなプロセスはそれぞれがあるプロセスグループのメンバであり、 プロセスグループはプロセスグループ ID と呼ばれる 負でない整数によって識別されます。 プロセスグループ ID はそのグループのリーダのプロセス ID です。 このグループ化によって、 関連づけられたプロセスの集団にシグナルを送る ( .Xr termios 4 を参照) ことや、 .Xr csh 1 のジョブ制御機構を可能にします。 .It "セッション (Session)" セッションは 1 つ以上のプロセスグループの集合です。 セッションは .Xr setsid 2 の呼び出しが成功すると作成されます。 これによって、呼び出したプロセスは、新規のセッションが 1 つだけ持つプロセスグループの唯一のメンバになります。 .It "セッションリーダ (Session leader)" .Xr setsid 2 の呼び出しの成功によって、新しいセッションを作成したプロセスは、 セッションリーダとして知られます。 端末を自分が制御する端末 ( .Xr termios 4 を参照) として取得できるのは、セッションリーダだけです。 .It "制御プロセス (Controlling process)" 制御端末を持つセッションリーダが制御プロセスです。 .It "制御端末 (Controlling terminal)" セッションに関連づけられている端末は、そのセッションとそのメンバに対する 制御端末として知られます。 .It "端末プロセスグループ ID (Terminal Process Group ID)" 端末は、セッションリーダによって制御端末として取得されます。 ひとたび端末がセッションに関連づけられると、 端末プロセスグループ ID をプロセスグループの ID に設定することによって、 そのセッション内のどのプロセスグループでも、 フォアグラウンドに置くことができるようになります。 この機能は、同じ端末をめぐり競合している複数のジョブの間で 調停を行うために用いられます ( .Xr csh 1 と .Xr tty 4 を参照)。 .It "親のないプロセスグループ (Orphaned Process Group)" プロセスグループは、ジョブ制御を行うシェルの制御下にない場合、 .Em 親なしになった とみなされます。 より正確に言うと、そのプロセスグループのメンバはどれも、 そのグループと同じセッションに属す親プロセスを持たず、かつ、 親プロセスが別のプロセスグループに属す場合、 そのプロセスグループは親なしになります。 なお、プロセスが終了するとき、その子プロセスの親プロセスは .Xr init 8 となるように変更されます。 そしてこれは別個のセッションになります。 親のないプロセスグループのメンバの全てが、必ずしも 親のないプロセス (プロセスを作成したプロセスが終了した) というわけではありません。 この定義により、セッションリーダのプロセスグループは親なしになります。 .It "実ユーザ ID と実グループID (Real User ID and Real Group ID) " システム上の各ユーザは、実ユーザ ID と呼ばれる正の整数によって識別されます。 .Pp 各ユーザは、1 つまたは複数のグループのメンバでもあります。 これらのグループの 1 つは他のものから区別され、 アカウンティング機能を実現するのに使用されます。 この区別されたグループに対応する正の整数は、実グループ ID と呼ばれます。 .Pp すべてのプロセスは実ユーザ ID と実グループ ID を持っています。 これらは、そのプロセスを作成したプロセスと等価な属性値を 使って初期化されます。 .It "実効ユーザ ID、実効グループ ID、グループアクセスリスト (Effective User Id, Effective Group Id, and Group Access List)" システムリソースへのアクセスは、実効ユーザ ID とグループアクセスリストという 2 つの値を使って決定されます。 グループアクセスリストの最初のメンバは、実効グループ ID としても知られています (POSIX.1 では、グループアクセスリストは、補助グループ ID の セットとして知られ、実効グループ ID がリストのメンバで あるかどうかは未規定です)。 .Pp 実効ユーザ ID と実効グループ ID は、最初はそれぞれ、 プロセスの実ユーザ ID と実グループ ID です。 いずれも (おそらくその先祖のいずれかが) ユーザ ID 設定ファイルまたは グループ ID 設定ファイルを実行することにより変更することができます ( .Xr execve 2 を参照してください)。 慣習で、実効グループ ID (グループアクセスリストの最初のメンバ) は複製されるので、 グループ ID 設定プログラムの実行の結果、もともと持っていた (実) グループ ID が失われることはありません。 .Pp グループアクセスリストは、リソースへのアクセスが可能かどうかを 決定するためにだけ使用されるグループ ID の集合です。 アクセスチェックは、以降の ``ファイルアクセスパーミッション'' で説明するように行われます。 .It "保存されたセットユーザ ID と保存されたセットグループ ID (Saved Set User ID and Saved Set Group ID)" プロセスが新しいファイルを実行するとき、ファイルがユーザ ID 設定であれば、 実効ユーザ ID はそのファイルの所有者に設定され、 ファイルがグループ ID 設定であれば、 実効グループ ID (グループアクセスリストの最初の要素) は ファイルのグループに設定されます。 それからプロセスの実効ユーザ ID は退避ユーザ ID として記録され、 プロセスの実効ユーザ ID は退避グループ ID として記録されます。 これらの記録された値は、実 ID ( .Xr setuid 2 を参照) に戻った後で、実効ユーザ ID または実効グループ ID をこれらの 値に回復するために利用できます。 (POSIX.1 では、退避ユーザ ID と退避グループ ID はオプションであり、 setuid および setgid の内部で使用されますが、 これはスーパユーザについて意図どおりには機能しません)。 .It "スーパユーザ (super-user)" 実効ユーザ ID が 0 の場合、そのプロセスは .Em スーパユーザ プロセスとして認識され、特別な権利が認められます。 .It "記述子 (Descriptor)" .Xr open 2 , .Xr dup 2 によってファイルが参照されるとき、または .Xr pipe 2 , .Xr socket 2 , .Xr socketpair 2 によってソケットが作成されるときにシステムによって割り当てられる整数です。 この整数は、指定のプロセスやその子プロセスから、 そのファイルやソケットへのアクセスパスを一意に識別します。 .It "ファイル名 (File Name)" -最高 255 -.Pq Dv MAXNAMELEN +最高 +.Brq Dv NAME_MAX 文字からなる名前であって、通常ファイル、特殊ファイル、 ディレクトリに名前を付けるのに使用されます。 .Pp -これらの文字は、0 (NUL) および +これらの文字は、NUL +.Po Tn ASCII +.No 0 Pc +および .Ql \&/ -(スラッシュ) の -.Tn ASCII -コードを除きすべての +文字 (スラッシュ、 .Tn ASCII -文字の集合から選択できます。 +47) を除く、 +任意の 8 ビット値から選択できます。 .Pp なお、一般に、ファイル名の一部として .Ql \&* , .Ql \&? , .Ql \&[ , .Ql \&] を使用するのは賢明ではありません。 シェルによってこれらの文字には特殊な意味がつけられるからです。 .It "パス名 (Path Name)" パス名は、 .Tn NUL で終端された文字列です。 スラッシュ .Ql \&/ (省略可能) で始まり、スラッシュで区切られた 0 個以上のディレクトリ名が続き、 ファイル名 (省略可能) が続きます。 -パス名の長さの合計は 1024 -.Pq Dv MAXPATHLEN -文字未満である必要があります。 +パス名の長さの合計は +.Brq Dv PATH_MAX +文字未満である必要があります +(あるシステム上では、この制限は無制限かもしれません)。 .Pp パス名がスラッシュで始まる場合、パス検索はルートディレクトリから 開始します。 そうでない場合、検索は現在の作業ディレクトリから開始します。 スラッシュだけの場合、ルートディレクトリを指定します。 空のパス名は現在のディレクトリを指します。 .It "ディレクトリ (Directory)" ディレクトリは特殊なタイプのファイルであり、他のファイルを参照する エントリを含んでいます。 ディレクトリエントリをリンクと呼びます。 伝統的に、ディレクトリには少なくとも 2 つのリンク、 .Ql .\& と .Ql \&.. を含みます。 これらはそれぞれ .Em ドット および .Em ドット-ドット と呼ばれます。 ドットは、そのディレクトリ自体を指し、 ドット-ドットはその親ディレクトリを指します。 .It "ルートディレクトリと現在の作業ディレクトリ (Root Directory and Current Working Directory)" 各プロセスは、ルートディレクトリと現在の作業ディレクトリという 概念を持つとされてきました。 これらの概念はパス名検索を解決する際に用いられます。 プロセスのルートディレクトリは、 ルートファイルシステムのルートディレクトリである必要はありません。 .It "ファイルアクセスパーミッション (File Access Permission)" ファイルシステム内の各ファイルはアクセスパーミッションの 集合を持っています。 これらのパーミッションは、プロセスがファイルについて要求された操作 (たとえば、書込み用にファイルをオープンする) を行ってもよいかどうかを 判定するのに使用されます。 アクセスパーミッションはファイルが作成されたときに設定されます。 アクセスパーミッションは .Xr chmod 2 呼び出しを用いて後から変更することもできます。 .Pp ファイルアクセスでは、ファイルが読取りが許されているかどうか、 書込みが許されているかどうか、実行が許されているかどうか、によって 分類されます。 ディレクトリファイルでは、ディレクトリを検索してもよいかどうかを 制御するのに実行パーミッションを使用します。 .Pp システムがファイルアクセスパーミッションを解釈するにあたり、 ユーザの 3 つの異なるクラス (ファイルの所有者、 ファイルのグループ内のユーザ、その他) のどれに適用するかによって解釈します。 各ファイルは、これらの各クラスについて、 独立したアクセスパーミッションの集合を持っています。 アクセスチェックが行われると、システムは、 呼び出し側に適用できるアクセス情報をチェックすることによって、 パーミッションが認可されるかどうかを判定します。 .Pp ファイルについての読取り、書込み、実行 / 検索の 各パーミッションは、次の場合にプロセスに認可されます。 .Pp プロセスの実効ユーザ ID がスーパユーザである場合 (注: スーパユーザであっても、実行可能でないファイルを実行する ことはできません)。 .Pp プロセスの実効ユーザ ID がファイルの所有者のユーザ ID に一致し、 所有者のパーミッションがアクセスを許可している場合。 .Pp プロセスの実効ユーザ ID がファイルの所有者のユーザ ID と一致せずに、 プロセスの実効グループ ID がファイルのグループ ID と一致するか またはファイルのグループ ID がプロセスのグループアクセスリスト内に あるかのどちらかであり、グループパーミッションがアクセスを許容している場合。 .Pp プロセスの実効ユーザ ID も実効グループ ID もグループアクセスリストも、 ファイルの対応するユーザ ID およびグループ ID と一致しないが、 ``その他のユーザ'' のパーミッションがアクセスを許容する場合。 .Pp 上記のいずれにも該当しない場合、パーミッションは拒絶されます。 .It "ソケットとアドレスファミリ (Sockets and Address Families)" ソケットはプロセス間の通信の端点です。 各ソケットには、データ送信用および受信用の待ち行列があります。 .Pp ソケットには、通信の性質によったタイプがあります。 これらの性質には、ソケットで送受信されるメッセージに 相手の名前が必要かどうか、通信に信頼性があるかどうか、 メッセージ受信者を名付ける際に使用される形式などが含まれます。 .Pp 実際のシステムはそれぞれ、いくつかのソケットタイプの集合をサポートしています。 利用できるタイプおよびそれらのプロパティの詳細については、 .Xr socket 2 を参照してください。 .Pp 実際のシステムはそれぞれ、いくつかの通信プロトコルの集合を サポートしています。 プロトコルの集合はそれぞれある特定の形式のアドレスをサポートします。 アドレスファミリは、あるプロトコルのグループに対応するアドレスの集合です。 ソケットはそれぞれ、ソケットが作成されたアドレス ファミリから選択したアドレスを持ちます。 .El .Sh 関連項目 .Xr intro 3 , .Xr perror 3 diff --git a/ja_JP.eucJP/man/man2/ioctl.2 b/ja_JP.eucJP/man/man2/ioctl.2 index 42f3e02f15..294251256f 100644 --- a/ja_JP.eucJP/man/man2/ioctl.2 +++ b/ja_JP.eucJP/man/man2/ioctl.2 @@ -1,125 +1,125 @@ .\" 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.24 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/ioctl.2,v 1.26 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd December 11, 1993 .Dt IOCTL 2 .Os .Sh 名称 .Nm ioctl .Nd デバイスを制御する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/ioctl.h .Ft int .Fn ioctl "int d" "unsigned long request" ... .Sh 解説 .Fn ioctl システムコールは特殊ファイルの下層となっているデバイスのパラメータを 操作します。 特に、キャラクタ型特殊ファイル (たとえば、端末) の多数の操作属性は .Fn ioctl で制御できます。 引数 .Fa d は開いているファイル記述子である必要があります。 .Pp .Fn ioctl への 3 番めの引数は従来から .Vt "char *argp" と名前付けられています。 しかし、 .Fx 3.0 での .Fn ioctl のほとんどの使用法では、3 番めの引数が .Vt caddr_t または .Vt int である必要があります。 .Pp .Fn ioctl の .Fa request は、引数が .Dq in 引数なのか .Dq out 引数なのかということと、引数 .Fa argp のサイズ (バイト単位) をエンコードします。 ioctl の .Fa request を指定するのに使用されるマクロと定義はファイル .In sys/ioctl.h の中にあります。 .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 引数が有効ではありません。 .It Bq Er EFAULT .Fa argp 引数がプロセッサが割り当てたアドレス範囲外を指しています。 .El .Sh 関連項目 .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/issetugid.2 b/ja_JP.eucJP/man/man2/issetugid.2 index 1bc86680bb..1e67a57db4 100644 --- a/ja_JP.eucJP/man/man2/issetugid.2 +++ b/ja_JP.eucJP/man/man2/issetugid.2 @@ -1,105 +1,105 @@ .\" $OpenBSD: issetugid.2,v 1.7 1997/02/18 00:16:09 deraadt 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. .\" -.\" %FreeBSD: src/lib/libc/sys/issetugid.2,v 1.12 2002/12/18 09:22:30 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/issetugid.2,v 1.13 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .\" .Dd August 25, 1996 .Dt ISSETUGID 2 .Os .Sh 名称 .Nm issetugid .Nd 現在のプロセスの uid または gid の変化による汚染状況 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn issetugid void .Sh 解説 .Fn issetugid システムコールは、プロセスの環境またはメモリアドレス空間が .Dq 汚染されている と見なされる場合 1 を返し、そうでない場合は 0 を返します。 .Pp setuid または setgid ビットのどちらかが設定されたプロセスを .Xr execve 2 システムコールで実行した (そして結果として追加の特権が与えられた) 場合、 あるいはプロセスの実ユーザ ID、実効ユーザ ID、退避ユーザ ID、 もしくは実グループ ID、実効グループ ID、退避グループ ID のいずれかが 実行後に変更された場合、そのプロセスは汚染されていると見なされます。 .Pp このシステムコールは、ユーザから得られた情報を使用するのが 安全かどうかをライブラリルーチン (たとえば libc や libtermcap) が 信頼性を持って判定できるようにするために存在します。 特に .Xr getenv 3 からの結果を、オペレーションの制御のために使用する場合には 疑いを持って見る必要があります。 .Pp .Dq 汚染された 状態は、 .Xr fork 2 システムコール (あるいは .Xr popen 3 のような fork を呼び出す他のライブラリコード) の結果として、 子プロセスに継承されます。 .Pp 別のプログラムを実行する準備をするときにすべての特権を クリアするプログラムは、環境もリセットすると想定されます。 したがって .Dq 汚染された 状態は引き渡されません。 setuid を開始するけれども汚染されていないプロセスを作成できる必要のある .Xr su 1 のようなプログラムにはこれは重要です。 .Sh エラー .Fn issetugid システムコールは必ず正常に完了するので、エラーを示すための戻り値はありません。 .Sh 関連項目 .Xr execve 2 , .Xr fork 2 , .Xr setegid 2 , .Xr seteuid 2 , .Xr setgid 2 , .Xr setregid 2 , .Xr setreuid 2 , .Xr setuid 2 .Sh 歴史 .Fn issetugid システムコールは .Ox 2.0 ではじめて登場し、 .Fx 3.0 でも実装されました。 diff --git a/ja_JP.eucJP/man/man2/jail.2 b/ja_JP.eucJP/man/man2/jail.2 index 19be1e0859..741d59fecb 100644 --- a/ja_JP.eucJP/man/man2/jail.2 +++ b/ja_JP.eucJP/man/man2/jail.2 @@ -1,134 +1,134 @@ .\" .\"---------------------------------------------------------------------------- .\""THE BEER-WARE LICENSE" (Revision 42): .\" wrote this file. As long as you retain this notice you .\"can do whatever you want with this stuff. If we meet some day, and you think .\"this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\"---------------------------------------------------------------------------- -.\"%FreeBSD: src/lib/libc/sys/jail.2,v 1.26 2003/11/11 18:31:36 kensmith Exp % +.\"%FreeBSD: src/lib/libc/sys/jail.2,v 1.27 2004/06/21 18:57:32 mpp Exp % .\" .\" $FreeBSD$ .Dd April 8, 2003 .Dt JAIL 2 .Os .Sh 名称 .Nm jail , jail_attach .Nd 現在のプロセスとその将来の子孫を閉じ込める .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/jail.h .Ft int .Fn jail "struct jail *jail" .Ft int .Fn jail_attach "int jid" .Sh 解説 .Fn jail システムコールは牢屋をつくり、現在のプロセスをその中に閉じ込めます。 .Pp 引数は牢屋を記述する構造体へのポインタです。 .Bd -literal -offset indent struct jail { u_int32_t version; char *path; char *hostname; u_int32_t ip_number; }; .Ed .Pp .Dq Li version には使用する API のバージョンを定義します。 今のところ 0 に設定します。 .Pp .Dq Li path ポインタには牢屋のルートになるディレクトリを設定します。 .Pp .Dq Li hostname ポインタには牢屋のホスト名を設定します。 これは牢屋の中から変更できます。 .Pp .Dq Li ip_number は牢屋に割り当てる IP 番号を設定します。 .Pp .Fn jail_attach システムコールは、 .Fa jid によって識別される既存の jail を現在のプロセスにアタッチします。 .Sh 戻り値 成功の場合には、 .Fn jail は jail 識別子 (JID) と呼ばれる負ではない整数を返します。 失敗の場合には \-1 を返し、そのエラーを示すために .Va errno を設定します。 .Pp .Rv -std jail_attach .Sh 牢屋? プロセスは一度牢屋に入れられると、それ自身とその子孫は牢屋から 逃れることはできません。 .Pp 牢屋の中では .Dq スーパユーザ の概念はとても弱まっています。 一般に全体が牢屋の中にあるわけではないものを牢屋の中から台無しにすることは できないと考えられます。 例えば .Dq Li path の下のディレクトリツリーは .Dq Li "rm -rf /*" も含めて、root が普通にできるように操作できますが、 デバイス型特殊ノードは共有されたリソース (カーネルの中のデバイスドライバ) を 参照するので、新しく作ることはできません。 プロセスにとっての実際の .Dq セキュアレベル は、グローバルな .Dq セキュアレベル と、jail 毎の .Dq セキュアレベル (存在する場合) の大きい方です。 .Pp IP 活動はすべて指定された IP 番号に制限されます。 指定された IP 番号はネットワークインタフェースのうちの 1 つの別名で あるべきです。 .Pp .Dq Li /proc//status を調べることで閉じ込められたプロセスを識別することができます。 行末のフィールドが、閉じ込められていないプロセスではハイフン 1 つ、 閉じ込められたプロセスでは現在牢屋に設定されているホスト名になります。 .Sh エラー .Fn jail システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL 引数のバージョン番号が正しくありません。 .El .Pp さらに .Fn jail は内部で .Xr chroot 2 を呼ぶので、全く同じ理由で失敗する可能性があります。 詳しくは .Xr chroot 2 のマニュアルページを参照して下さい。 .Sh 関連項目 .Xr chdir 2 , .Xr chroot 2 .Sh 歴史 .Fn jail システムコールは .Fx 4.0 で登場しました。 .Fn jail_attach システムコールは .Fx 5.1 で登場しました。 .Sh 作者 jail の機能は .An Poul-Henning Kamp によって R&D Associates .Dq Li http://www.rndassociates.com/ のために書かれ、 .Fx に寄贈されました。 diff --git a/ja_JP.eucJP/man/man2/kldnext.2 b/ja_JP.eucJP/man/man2/kldnext.2 index 315ec8b3f0..c1329a9d4d 100644 --- a/ja_JP.eucJP/man/man2/kldnext.2 +++ b/ja_JP.eucJP/man/man2/kldnext.2 @@ -1,82 +1,82 @@ .\" .\" 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/kldnext.2,v 1.14 2002/12/18 09:22:30 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/kldnext.2,v 1.15 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd March 3, 1999 .Dt KLDNEXT 2 .Os .Sh 名称 .Nm kldnext .Nd 次の kld ファイルのファイル ID を返す .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/linker.h .Ft int .Fn kldnext "int fileid" .Sh 解説 .Fn kldnext システムコールは、次の kld ファイル (すなわち、 .Va fileid の後のファイル) のファイル ID を返します。 または .Va fileid が最後にロードされたファイルの場合は 0 を返します。 .Sh 戻り値 .Fn kldnext システムコールは、次の kld ファイルのファイル ID または 0 を 返します (解説を参照)。 エラーが発生した場合は、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn kldnext によって設定されるエラーは .Er ENOENT だけです。 これが設定されるのは、 .Va fileid が存在していない (ロードされていない) kld ファイルを参照しているときです。 .Sh 関連項目 .Xr kldfind 2 , .Xr kldfirstmod 2 , .Xr kldload 2 , .Xr kldstat 2 , .Xr kldsym 2 , .Xr kldunload 2 , .Xr modfind 2 , .Xr modfnext 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/kldstat.2 b/ja_JP.eucJP/man/man2/kldstat.2 index fc9b2b05d5..f3f13489ce 100644 --- a/ja_JP.eucJP/man/man2/kldstat.2 +++ b/ja_JP.eucJP/man/man2/kldstat.2 @@ -1,122 +1,122 @@ .\" .\" 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.19 2002/12/18 09:22:30 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/kldstat.2,v 1.20 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd March 3, 1999 .Dt KLDSTAT 2 .Os .Sh 名称 .Nm kldstat .Nd kld ファイルの状態を得る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/linker.h .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 戻り値 .Rv -std kldstat .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 .Xr copyout 9 関数で、フィールドを .Fa stat にコピーする際に問題がありました。 .El .Sh 関連項目 .Xr kldfind 2 , .Xr kldfirstmod 2 , .Xr kldload 2 , .Xr kldnext 2 , .Xr kldsym 2 , .Xr kldunload 2 , .Xr modfind 2 , .Xr modfnext 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 e9a99cd73b..561b297f49 100644 --- a/ja_JP.eucJP/man/man2/kqueue.2 +++ b/ja_JP.eucJP/man/man2/kqueue.2 @@ -1,533 +1,534 @@ .\" 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.37 2004/04/20 21:07:43 cperciva Exp % +.\" %FreeBSD: src/lib/libc/sys/kqueue.2,v 1.40 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd April 14, 2000 .Dt KQUEUE 2 .Os .Sh 名称 .Nm kqueue , .Nm kevent .Nd カーネルイベント通知メカニズム .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/event.h .In sys/time.h .Ft int .Fn kqueue "void" .Ft int .Fn kevent "int kq" "const struct kevent *changelist" "int nchanges" "struct kevent *eventlist" "int nevents" "const struct timespec *timeout" .Fn EV_SET "&kev" ident filter flags fflags data udata .Sh 解説 .Fn kqueue システムコールは、フィルタと呼ばれる小さなカーネルコードの実行結果に基づき、 イベントの発生やある状態の成立をユーザに通知する一般的な方法を提供します。 kevent は (ident, filter) のペアによって識別されます。 ここで、ident は識別子、filter はフィルタを表します。 1 つの kqueue には、同じ kevent が複数存在することはできません。 .Pp フィルタは、kevent の初期登録時に 以前から存在した状態を検出するために実行されます。 また、あるイベントが評価のためにフィルタに渡されるたびに実行されます。 状態を報告すべきとフィルタが決定した場合には、 その kevent はユーザが回収できるように kqueue に置かれます。 .Pp ユーザが kqueue から kevent を回収しようとしたときにも、 フィルタが実行されます。 フィルタの実行により、そのイベントをトリガした状態が成立していないこと が示された場合には、その kevent は kqueue から削除され、 ユーザに渡されません。 .Pp フィルタをトリガするイベントが複数ある場合でも、 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 構造体の配列へのポインタです。 この構造体は .In sys/event.h で定義されています。 保留中のイベントをキューから読み取る前に、 .Fa changelist に含まれている全ての変更を適用します。 .Fa nchanges 引数は .Fa changelist の大きさを与えます。 .Fa eventlist 引数は kevent 構造体の配列へのポインタです。 .Fa nevents 引数は .Fa eventlist の大きさを決定します。 .Fa nevents が 0 の時には、 -.Xr select 2 +.Xr select 2 とは違って、たとえ .Fa timeout がある場合でも .Fn kevent はすぐに戻ります。 .Fa timeout が NULL でないポインタの場合には、timespec 構造体であると解釈されて、 イベントを待つ最大待ち時間を指定します。 .Fa timeout が NULL ポインタの場合には、 .Fn kevent は無期限に待ちます。 ポーリングの効果を得るためには、 .Fa timeout 引数に、0 を示す .Va timespec 構造体を指す非 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 状態であることを示すために、 フィルタがこのフラグをセットすることがあります。 .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) の大きさが入っています。 .Pp その他のソケット記述子の場合、ソケットバッファの .Dv SO_RCVLOWAT の値を基準にして、読み取るデータがあるときに戻ります。 フィルタを追加するときに、 .Va fflags に NOTE_LOWAT を設定し .Va data に新しい最低基準値を指定することにより、 この値を、 フィルタごとの最低基準値で上書きすることが可能です。 戻るときには、 .Va data には読取り可能なプロトコルデータのバイト数が入っています。 .Pp ソケットの読取り側が切断された場合には、フィルタは .Va flags に EV_EOF も設定します。 ここでエラーが起きた場合には、 .Va fflags にソケットエラーを返します。 ソケットバッファの中に保留中のデータが残っていても、 (接続が切れたことを示す) EOF が返されることがあります。 .It vnode ファイルポインタがファイルの最後 (EOF) でないときに戻ります。 .Va data は現在位置からファイルの最後 (EOF) までのオフセットが入っています。 この値は負であるかもしれません。 .It FIFO とパイプ 読み取るべきデータがあるときに戻ります。 .Va data には有効なバイト数が入っています。 .Pp 最後の書込み側が切断したときに、フィルタは .Va flags に EV_EOF をセットします。 EV_CLEAR を渡すことで、このフラグをクリアすることができ、 フィルタはデータが読み取るようになるのを戻らずに再び待ちます。 .It "BPF デバイス" BPF バッファが一杯になったとき、BPF タイムアウトが満了したとき、 または BPF の .Dq 直接モード -が有効で読み込むべきデータがあるときに、戻ります。このときの +が有効で読み込むべきデータがあるときに、戻ります。 +このときの .Va data には利用可能なバイト数が入ります。 .El .It EVFILT_WRITE 識別子に記述子を引数として取ります。 その記述子が書込み可能になるたびに戻ります。 ソケット、パイプおよび FIFO では、 .Va data には書込みバッファの残り領域の大きさが入っています。 読取り側が切断したときに、フィルタは EV_EOF をセットします。 FIFO の場合、EV_CLEAR を使いこれをクリアすることができます。 このフィルタは vnode または BPF デバイスをサポートしていないことに 注意してください。 .Pp ソケットの場合、最低基準値およびソケットエラーの取り扱いは EVFULT_READ の場合と同じです。 .It EVFILT_AIO 非同期入出力要求の sigevent 部分の、 .Va sigev_notify_kqueue にはイベントを付加する kqueue の記述子を入れ、 .Va sigev_value には udata の値を入れ、 .Va sigev_notify には SIGEV_KEVENT を入れて、非同期入出力要求を埋めます。 .Fn 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 つ以上発生したときに戻ります。 監視するイベントを以下に示します: .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 を識別子に、監視するイベントを .Va fflags に引数として取ります。 要求されたイベントを 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 kevent を最後に呼び出してからのシグナル発生の回数が返ります。 このフィルタは内部で自動的に EV_CLEAR フラグをセットします。 .It EVFILT_TIMER .Va ident で識別される、任意のタイマを設定します。 タイマを追加する場合、 .Va data はタイムアウトをミリ秒単位で指定します。 EV_ONESHOT を指定しない限り、タイマは周期的です。 .Va data には、 .Fn kevent を最後に呼び出してからのタイムアウトの回数が返ります。 このフィルタは内部で自動的に EV_CLEAR フラグをセットします。 .It Dv EVFILT_NETDEV 識別子としてネットワークインタフェースの記述子を取り、 監視するイベントを .Va fflags に取ります。 記述子上に要求されたイベントが 1 つ以上発生したとき、戻ります。 監視可能なイベントは次の通りです: .Bl -tag -width XXNOTE_LINKDOWN .It Dv NOTE_LINKUP リンクがアップ。 .It Dv NOTE_LINKDOWN リンクがダウン。 .It Dv NOTE_LINKINV リンク状態が無効。 .El .Pp 戻るとき、フィルタをトリガしたイベントが .Va fflags に格納されます。 .El .Sh 戻り値 .Fn kqueue システムコールは新規のカーネルイベントキューを生成し、 ファイル記述子を返します。 カーネルイベントキューの生成時にエラーがあった場合には、 値 -1 が返されて errno がセットされます。 .Pp .Fn kevent システムコールは .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 ファイルシステムに属さない .Xr vnode 9 を監視することができません。 .Pp .Dv EVFILT_NETDEV フィルタが現在実装されているのは、LINKUP と LINKDOWN の操作に .Xr miibus 4 ドライバを使用しているデバイスに対してのみです。 そのため、非イーサネットデバイスに対しては動作しません。 .Pp .Fa timeout の値は 24 時間に制限されています。 より長いタイムアウトは暗黙のうちに 24 時間として再解釈されます。 diff --git a/ja_JP.eucJP/man/man2/link.2 b/ja_JP.eucJP/man/man2/link.2 index d84fe81ac6..ffeb5abd42 100644 --- a/ja_JP.eucJP/man/man2/link.2 +++ b/ja_JP.eucJP/man/man2/link.2 @@ -1,155 +1,155 @@ .\" 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. .\" .\" @(#)link.2 8.3 (Berkeley) 1/12/94 -.\" %FreeBSD: src/lib/libc/sys/link.2,v 1.24 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/link.2,v 1.25 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd March 5, 1999 .Dt LINK 2 .Os .Sh 名称 .Nm link .Nd ハードファイルリンクを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn link "const char *name1" "const char *name2" .Sh 解説 .Fn link システムコールは、 .Fa name1 が指す下層オブジェクトの属性を持つ、指定のディレクトリエントリ (ハードリンク) .Fa name2 を不可分に作成します。 リンクが正常に完了すると下層オブジェクトのリンクカウントが増加します。 .Fa name1 と .Fa name2 は、下層オブジェクトへのアクセスとアクセス権を等しく共有します。 .Pp .Fa name1 を削除してもファイル .Fa name2 は削除されず、下層オブジェクトのリンクカウントが減少します。 .Pp .Fa name1 引数によって指されるオブジェクト はハードリンクが成功するために存在している必要があり、 .Fa name1 と .Fa name2 の両方が同じファイルシステム上に存在している必要があります。 .Fa name1 引数はディレクトリであってはなりません。 .Sh 戻り値 .Rv -std link .Sh エラー .Fn link システムコールは次の場合に処理に失敗し、リンクは作成されません: .Bl -tag -width Er .It Bq Er ENOTDIR いずれかの前置パス名の構成要素がディレクトリではありません。 .It Bq Er ENAMETOOLONG いずれかのパス名の構成要素が 255 文字を越えているか、 またはいずれかのパス名全体の長さが 1023 文字を越えています。 .It Bq Er ENOENT いずれかの前置パス名の構成要素が存在しません。 .It Bq Er EOPNOTSUPP .Fa name1 によって指定されたファイルが入っているファイルシステムが リンクをサポートしていません。 .It Bq Er EMLINK .Fa name1 で指定されたファイルのリンクカウントが 32767 を越えます。 .It Bq Er EACCES いずれかの前置パス名の構成要素について検索許可が拒否されています。 .It Bq Er EACCES 要求されたリンクは、書込み許可を拒否するモードのディレクトリに 書き込むことを要求しています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENOENT .Fa name1 によって指定されたファイルが存在しません。 .It Bq Er EEXIST .Fa name2 によって指定されたリンクが存在します。 .It Bq Er EPERM .Fa name1 によって指定されたファイルはディレクトリであるか、 変更禁止もしくは追加のみ可能であるとフラグが付けられています ( .Xr chflags 2 参照)。 .It Bq Er EXDEV .Fa name2 によって指定されたリンクと .Fa name1 によって指定されたファイルが異なるファイルシステム上にあります。 .It Bq Er ENOSPC ディレクトリを格納しているファイルシステムに容量が残っていないため、 新しいリンクを入れるエントリを置くディレクトリを拡張できません。 .It Bq Er EDQUOT ディレクトリを格納しているファイルシステムでユーザのディスクブロックに 関するクォータが枯渇したため、 新しいリンクを入れるエントリを置くディレクトリを拡張できません。 .It Bq Er EIO ディレクトリエントリを作成するためファイルシステムに 読み書きしている間に入出力エラーが発生しました。 .It Bq Er EROFS 要求されたリンクは、読取り専用ファイルシステム上のディレクトリに 書込みすることを要求しています。 .It Bq Er EFAULT 指定されたパス名の 1 つが、プロセスに割り当てられた アドレス空間の範囲外を指しています。 .El .Sh 関連項目 .Xr readlink 2 , .Xr symlink 2 , .Xr unlink 2 .Sh 規格 .Fn link システムコールは .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn link 関数は .At v7 で登場しました。 .Pp 従来、スーパユーザは .Fn link システムコールによってディレクトリをリンクでき、 これはファイルシステムの一貫性を破壊するものでした。 この実装では、このような操作はもはや許されません。 diff --git a/ja_JP.eucJP/man/man2/lseek.2 b/ja_JP.eucJP/man/man2/lseek.2 index 8cec907bf7..6e7cb4ae7a 100644 --- a/ja_JP.eucJP/man/man2/lseek.2 +++ b/ja_JP.eucJP/man/man2/lseek.2 @@ -1,139 +1,139 @@ .\" 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.20 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/lseek.2,v 1.21 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd April 19, 1994 .Dt LSEEK 2 .Os .Sh 名称 .Nm lseek .Nd 読取り / 書込みファイルオフセット位置を変更する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .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 EINVAL .Fa whence 引数が正しい値ではないか、計算結果のファイルオフセットが キャラクタ型ではない特殊ファイルに使う負の値となりました。 .It Bq Er EOVERFLOW 計算結果のファイルオフセットが、 .Fa off_t 型のオブジェクトでは正しく表現できない値となりました。 .It Bq Er ESPIPE .Em fildes 引数はパイプ、ソケット、または FIFO と対応づけられています。 .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 45c1b43e0e..ebb7be038b 100644 --- a/ja_JP.eucJP/man/man2/madvise.2 +++ b/ja_JP.eucJP/man/man2/madvise.2 @@ -1,180 +1,180 @@ .\" 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.30 2003/08/09 03:23:24 bms Exp % +.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.31 2004/07/02 23:52:13 ru Exp % .\" .\" WORD: revert 書き戻す(dirty なページをファイルシステムに書き込む)[madvise.2] .\" WORD: physically backing store 物理的バッキングストア .\" (仮想記憶の裏にあるディスク領域、swap やファイルシステム?!) .\" .\" $FreeBSD$ .Dd July 19, 1996 .Dt MADVISE 2 .Os .Sh 名称 .Nm madvise , posix_madvise .Nd メモリの使用法について助言を与える .Sh ライブラリ .Lb libc .Sh 書式 .In sys/mman.h .Ft int .Fn madvise "void *addr" "size_t len" "int behav" .Ft int .Fn posix_madvise "void *addr" "size_t len" "int behav" .Sh 解説 .Fn madvise システムコールによって、自身のメモリ利用の習性の知識があるプロセスは、それを システムに説明できます。 .Fn posix_madvise インタフェースは同等で規格に適合するために提供されます。 .Pp 知られた習性は以下のとおりです: .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 がアドレス空間内の任意の位置のページを解放できるようにする効率的な方法です。 ページが次に参照される時には、そのページは要求時 0 クリアの対象に なっている可能性もありますし、または .Dv MADV_FREE 呼び出しの前にそこにあったデータが残っているかもしれません。 ページが再び修正されるまで、そのアドレス空間範囲に対する参照だけでは、 VM システムはバッキングストアから情報をページに読み取る動作を行わなくなります。 .\" 訳追加 .It Dv MADV_NOSYNC このマップに関連づけられているデータを 物理的バッキングストアにフラッシュしないようにシステムに要求します。 通常、これにより、ファイルシステムアップデートデーモンが VM システムが汚したページを特に理由もないのに 物理ディスクに書き込む不要な動作を防止します。 VM とファイルシステムの一貫性は常に維持されることに注意してください。 この機能は、マップされたデータが必要なときだけ、 (通常、システムページャにより) フラッシュされることを 保証しているに過ぎません。 .Pp この機能を使用する典型的な場合とは、 ファイルを裏に持つ共有メモリ領域をプロセス (IPC) 間通信で使いたいとき、 特に、その領域に格納されるデータを物理的ディスクに書き込む必要がない場合です。 この機能は、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 コアファイルの領域を含みます。 .It Dv MADV_PROTECT スワップ空間を使い果たした時に、 このプロセスは終了させられるべきではないことを、VM システムに通知します。 プロセスはスーパユーザの特権を持っていなければなりません。 これは、システムが適切に機能するために実行され続けなければならない プロセス群で、思慮分別を持って使用されるべきです。 .El .Pp .Fn posix_madvise インタフェースを呼び出す移植可能なプログラムは、上記のフラグではなく別名の .Dv POSIX_MADV_NORMAL , POSIX_MADV_SEQUENTIAL , .Dv POSIX_MADV_RANDOM , POSIX_MADV_WILLNEED および .Dv POSIX_MADV_DONTNEED を使用するべきです。 .Sh 戻り値 .Rv -std madvise .Sh エラー .Fn madvise システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa behav 引数が有効ではありません。 .It Bq Er ENOMEM .Fa addr 引数と .Fa len 引数で指定された仮想アドレス範囲が有効ではありません。 .It Bq Er EPERM .Dv MADV_PROTECT が指定され、プロセスがスーパユーザの特権を持っていません。 .El .Sh 関連項目 .Xr mincore 2 , .Xr mprotect 2 , .Xr msync 2 , .Xr munmap 2 .Sh 規格 .Fn posix_madvise インタフェースは .St -p1003.1-2001 に適合しています。 .Sh 歴史 .Fn madvise システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mlock.2 b/ja_JP.eucJP/man/man2/mlock.2 index 472de217d0..b2186d5718 100644 --- a/ja_JP.eucJP/man/man2/mlock.2 +++ b/ja_JP.eucJP/man/man2/mlock.2 @@ -1,166 +1,160 @@ .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mlock.2 8.2 (Berkeley) 12/11/93 -.\" %FreeBSD: src/lib/libc/sys/mlock.2,v 1.14 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/mlock.2,v 1.18 2004/08/10 16:38:19 green Exp % .\" .\" $FreeBSD$ -.Dd June 2, 1993 +.Dd August 10, 2004 .Dt MLOCK 2 .Os .Sh 名称 .Nm mlock , .Nm munlock .Nd 物理ページをメモリ内でロック (アンロック) する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/mman.h .Ft int .Fn mlock "const void *addr" "size_t len" .Ft int .Fn munlock "const void *addr" "size_t len" .Sh 解説 .Fn mlock システムコールは、 .Fa addr から開始する .Fa len バイトの仮想アドレス範囲に対応する物理ページをメモリにロックします。 .Fn munlock システムコールは、1 つ以上の .Fn mlock 呼び出しによってロックされていたページをアンロックします。 これらの両方において、 .Fa addr 引数はページサイズの整数倍でなければいけません。 .Fa len 引数がページサイズの整数倍でない場合、切り上げられます。 範囲全体が確保されている必要があります。 .Pp .Fn mlock システムコールの後、指示されたページは、アンロックされるまで 非常駐ページフォルトもアドレス変換フォルトも起こしません。 しかし、TLB の管理をソフトウェアで実装しているアーキテクチャでは、 保護違反フォルト、または TLB ミスフォルトを起こす可能性はあります。 ページに関するすべてのロックされたマッピングが削除されるまで 物理ページはメモリに留まります。 複数のプロセスが、それぞれの仮想アドレスマッピングから 同じ物理ページをロックする可能性があります。 同様に、1 つのプロセスが同じページに対する異なる複数の 仮想マッピングによって、または同じアドレス範囲へのネストした .Fn mlock 呼び出しによって、ページを多重にロックする可能性があります。 アンロックは、 .Fn munlock によって明示的に、または .Fn munmap によって暗黙的に行われます。 .Fn munmap はマップされていないアドレス範囲の割り当てを解除します。 ロックされたマッピングは .Xr fork 2 による子プロセスには継承されません。 .Pp 物理メモリは潜在的に乏しいリソースなので、プロセスは どのくらいロックできるかの制限を受けます。 1 つのプロセスは、システム全体に共通の ``固定されたページ'' 限界、 またはプロセスごとの .Li RLIMIT_MEMLOCK リソース限界のいずれか小さい方の値まで .Fn mlock できます。 .Pp これらの呼び出しが利用できるのはスーパユーザだけです。 .Sh 戻り値 .Rv -std .Pp 呼び出しが成功すると、範囲内のすべてのページがロック (アンロック) されます。 失敗した場合は、範囲内のすべてのページのロック状態は変更されません。 .Sh エラー .Fn mlock システムコールは次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EPERM 呼び出し側がスーパユーザではありません。 .It Bq Er EINVAL 指定されたアドレスがページ境界に整列されていないか、または長さが負です。 .It Bq Er EAGAIN 指示された範囲のロックによって、ロックされたメモリについての システム限界またはプロセスごとの限界を超過してしまいます。 .It Bq Er ENOMEM 指示されたアドレス範囲の一部が割り当てられていません。 ページのフォルト / マッピングでエラーがありました。 .El .Fn munlock システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EPERM 呼び出し側がスーパユーザではありません。 .It Bq Er EINVAL 指定されたアドレスがページ境界に整列していないか、または長さが負です。 .It Bq Er ENOMEM 指示されたアドレス範囲の一部が割り当てられていません。 -指示されたアドレス範囲の一部がロックされていません。 .El .Sh 関連項目 +.Xr mlockall 2 , +.Xr munlockall 2 , .Xr fork 2 , .Xr mincore 2 , .Xr minherit 2 , .Xr mmap 2 , .Xr munmap 2 , .Xr setrlimit 2 , .Xr getpagesize 3 .Sh バグ -Sun の実装と異なり、同じアドレス範囲に関する複数の -.Fn mlock -呼び出しに対して、実際にページをアンロックするために対応する数の -.Fn munlock -呼び出しが必要です。 -つまり -.Fn mlock -のネストです。 -これは実装上の結果であって仕様ではないと考える必要があります。 +固定されたメモリを多く割り当て過ぎることは、そこから回復するために +リブートを要求するメモリ割り当てのデッドロックにつながる可能性があります。 .Pp プロセスごとのリソースの限界はロックされた仮想メモリの量への制限で、 システム全体に共通の制限はロックされた物理ページの数についてのものです。 このように、2 つの別々のマッピングから同じ物理ページを ロックするとプロセスごとの制限に対しては 2 ページとしてカウントされ、 システム制限では 1 ページだけとしてカウントされます。 .Pp プロセスごとのリソース制限は現時点ではサポートされていません。 .Sh 歴史 .Fn mlock システムコールと .Fn munlock システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mlockall.2 b/ja_JP.eucJP/man/man2/mlockall.2 index 672f0f9f13..87aeb990ee 100644 --- a/ja_JP.eucJP/man/man2/mlockall.2 +++ b/ja_JP.eucJP/man/man2/mlockall.2 @@ -1,141 +1,141 @@ .\" $NetBSD: mlockall.2,v 1.11 2003/04/16 13:34:54 wiz Exp $ .\" .\" Copyright (c) 1999 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Jason R. Thorpe of the Numerical Aerospace Simulation 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. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the NetBSD .\" Foundation, Inc. and its contributors. .\" 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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/mlockall.2,v 1.1 2003/08/11 07:16:21 bms Exp % +.\" %FreeBSD: src/lib/libc/sys/mlockall.2,v 1.2 2004/07/03 23:14:34 ru Exp % .\" .\" $FreeBSD$ .Dd June 12, 1999 .Dt MLOCKALL 2 .Os .Sh 名称 .Nm mlockall , .Nm munlockall .Nd プロセスのアドレス空間のロック (アンロック) .Sh ライブラリ .Lb libc .Sh 書式 .In sys/mman.h .Ft int .Fn mlockall "int flags" .Ft int .Fn munlockall "void" .Sh 解説 -.Nm mlockall +.Fn mlockall システムコールはプロセスのアドレス空間に関連付けられた物理ページを、 そのアドレス空間がアンロックされるまで、またはプロセスが終了するまで、 または他のプログラムイメージを exec するまでの間、メモリ内にロックします。 .Pp 以下のフラグは -.Nm mlockall +.Fn mlockall の振舞いに影響します: -.Bl -tag -width MCL_CURRENT +.Bl -tag -width ".Dv MCL_CURRENT" .It Dv MCL_CURRENT プロセスのアドレス空間に現在マップされている全てのページをロックします。 .It Dv MCL_FUTURE 将来プロセスのアドレス空間にマップされる全てのページを、 マッピングが確立する時点でロックします。 これらのマッピングがリソースの制限の超過を引き起こす場合には、 将来のマッピングの失敗を引き起こすかもしれないことに、注意してください。 .El .Pp 物理メモリは潜在的に欠乏しているリソースであるため、プロセスは どのくらいの量をロックできるのかを制限されています。 1 つのプロセスは最低でもシステム全体に渡る .Dq wired pages リミットをロック可能で、プロセス当たりの -.Li RLIMIT_MEMLOCK +.Dv RLIMIT_MEMLOCK リソース制限をロック可能です。 .Pp -.Nm munlockall +.Fn munlockall 呼び出しはプロセスのアドレス空間の中の全てのロックされたメモリ領域を アンロックします。 -.Nm munlockall +.Fn munlockall 呼び出し後にマップされる全ての領域は、ロックされません。 .Sh 戻り値 戻り値 0 は、呼び出しが成功し、その範囲内の全てのページが ロックまたはアンロックされたことを示します。 -戻り値 -1 は、エラーが発生し、その範囲内の全てのページのロック状態が +戻り値 \-1 は、エラーが発生し、その範囲内の全てのページのロック状態が 変更されないまま残されていることを示します。 この場合、グローバル変数 .Va errno がそのエラーを示すために設定されます。 .Sh エラー .Fn mlockall は以下の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL -.Ar flags +.Fa flags 引数が 0 であるか、または実装されていないフラグを含んでいます。 .It Bq Er ENOMEM 指定された範囲のロックが、システムまたはプロセス当たりのロック可能な メモリの制限を越えます。 .It Bq Er EAGAIN プロセスのアドレス空間にマップされたメモリの一部または全てが、 呼び出しが実行された時にロックできませんでした。 .It Bq Er EPERM 呼び出し側のプログラムが、要求された操作を行なうための適切な 権限を持っていません。 .El .Sh 関連項目 .Xr mincore 2 , .Xr mlock 2 , .Xr mmap 2 , .Xr munmap 2 , .Xr setrlimit 2 .Sh 規格 .Fn mlockall および .Fn munlockall 関数は .St -p1003.1-2001 に適合していると思われます。 .Sh 歴史 .Fn mlockall および .Fn munlockall 関数は .Fx 5.1 ではじめて登場しました。 .Fx 5.1 . .Sh バグ プロセス当たりのリソースの制限は、ロックされた仮想メモリの量について 制限されます。 その一方、システム全体での制限はロックされた物理ページの 数についての制限です。 そのために、同一の物理ページに対する 2 つの別個のロックされた マッピングを持つプロセスは、プロセス当たりの制限に対しては 2 ページとして カウントし、システム制限ではただ 1 つのページとしてカウントします。 diff --git a/ja_JP.eucJP/man/man2/mmap.2 b/ja_JP.eucJP/man/man2/mmap.2 index d7cdecbed3..6444dd92aa 100644 --- a/ja_JP.eucJP/man/man2/mmap.2 +++ b/ja_JP.eucJP/man/man2/mmap.2 @@ -1,355 +1,355 @@ .\" 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.49 2004/04/18 23:36:45 cperciva Exp % +.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.50 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd May 11, 1995 .Dt MMAP 2 .Os .Sh 名称 .Nm mmap .Nd メモリの割り当て、またはファイルまたはデバイスのメモリへのマップ .Sh ライブラリ .Lb libc .Sh 書式 .In sys/mman.h .Ft void * .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 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 引数に指定します: .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 は処理に失敗します。 .Dv MAP_FIXED が指定されている場合、 .Fa addr はページサイズの倍数である必要があります。 このオプションの使用はお勧めできません。 .It Dv MAP_HASSEMAPHORE 領域にセマフォが含まれている可能性があること、特殊な処理が必要な可能性が あることをカーネルに通知します。 .It Dv MAP_INHERIT このフラグは正式に公表されたものとして扱われたことはなく、 もはやサポートされていません。 さらなる情報は .Xr minherit 2 を参照してください。 .It Dv MAP_NOCORE 領域はコアファイルに含まれません。 .It Dv MAP_NOSYNC はこの VM マップを経由して汚されたデータを、無闇にではなく (通常はページャによって) 必要な時のみ物理的なメディアに フラッシュするようにします。 普通、このオプションにより、更新デーモンはこのマップで 汚されたページをフラッシュしないようになります。 これにより、ファイルバックアップされた共有メモリのマッピングを使用して 無関係なプロセスの間でメモリアクセスを効率的に共有することが できるようになります。 このオプションがないと、汚された VM ページは頻繁 (通常 30-60 秒毎) に ディスクにフラッシュされるかも知れず、そのような動作を必要としない場合 (例えば IPC のためにファイルを用いた共有 mmap 領域を用いている場合) パフォーマンスに問題が出ることがあります。 .Dv MAP_NOSYNC を使っているかにかかわらず、 VM/ ファイルシステムの一貫性は保たれることに注意してください。 このオプションは .Ux プラットフォーム間で (まだ) 移植性はありませんが、 いくつかのプラットフォームではデフォルトで同じ動作をするように 実装されているかも知れません。 .Pp .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 sync 2 システムコールは、汚染された NOSYNC VM のデータを通常フラッシュしません。 .Xr msync 2 システムコールは .Bx で整合性のあるファイルシステムのバッファキャッシュが実装されたので 廃止されました。 しかしながら、汚れた VM ページとファイルシステムを結びつけ、 物理的媒体にすぐに (後程ではなく) フラッシュさせる用途に 使われることもあります。 .It Dv MAP_PRIVATE 修正はプロセス固有に行われます。 .It Dv MAP_SHARED 修正は共有されます。 .It Dv MAP_STACK .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 は、マップされた領域を指すポインタを返します。 そうでない場合は 値 .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 引数が与えられていません。 .Dv MAP_ANON が指定されて利用できるメモリが不充分でした。 sysctl 値 .Va vm.nax_proc_mmap で指定されたプロセス毎の mmap 限界に達しました。 .El .Sh 関連項目 .Xr madvise 2 , .Xr mincore 2 , .Xr minherit 2 , .Xr mlock 2 , .Xr mprotect 2 , .Xr msync 2 , .Xr munlock 2 , .Xr munmap 2 , .Xr getpagesize 3 , .Xr make.conf 5 .Sh バグ .Fa len 引数は 2GB に限定されます。 2GB をわずかに上回るマッピングは機能しませんが、 2GB, 4GB, 6GB および 8GB よりわずかに少ないファイルサイズについて (ファイルサイズ % 2GB) のサイズのウィンドウをマップできます。 .Pp 制約は多彩な理由から生じています。 そのほとんどは、パフォーマンス上の著しいペナルティのため、 .Fx では VM システム内で 64 ビットのオフセットを使用したくないことと 関係しています。 したがって .Fx は 32 ビットのページインデックスを使用しており、これによって .Fx では最高で 8TB までのファイルサイズを利用できます。 実際にはさらに制約が課されて使用可能サイズは 1TB までですが、 これは、ファイルシステムコード内のバグによるものです (ブロック番号計算を行っているときの桁落ち)。 .Pp 2GB 制限のもうひとつの理由は、ファイルシステムメタデータが負のオフセットに 存在できるということです。 .Pp 0 バイトを .Fn mmap しようとしても何の効果もなく、単に成功します。 一方、0 バイトを .Fn munmap しようとすると .Bq Er EINVAL が返されることに注意してください。 diff --git a/ja_JP.eucJP/man/man2/modnext.2 b/ja_JP.eucJP/man/man2/modnext.2 index 6e28e6020c..f689213d57 100644 --- a/ja_JP.eucJP/man/man2/modnext.2 +++ b/ja_JP.eucJP/man/man2/modnext.2 @@ -1,92 +1,92 @@ .\" .\" 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/modnext.2,v 1.7 2002/12/18 09:22:31 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/modnext.2,v 1.8 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd September 28, 2000 .Dt MODNEXT 2 .Os .Sh 名称 .Nm modnext .Nd 次のカーネルモジュールの modid を返す .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/module.h .Ft int .Fn modnext "int modid" .Ft int .Fn modfnext "int modid" .Sh 解説 .Fn modnext システムコールは次のカーネルモジュール (つまり、 .Va modid のひとつ後ろ) の modid を返します。 .Va modid がリスト内の最後のモジュールだったときは 0 を返します。 .Pp .Va modid の値が 0 の場合、 .Fn modnext は最初のモジュールの modid を返します。 常に有効な modid を .Fn modfnext システムコールに渡す必要があります。 .Sh 戻り値 .Fn modnext システムコールは次のモジュール .Sx ( 解説 参照) の modid または 0 を返します。 エラーが起きたときは、そのエラーを示すために .Va errno が設定されます。 .Sh エラー .Fn modnext によるエラーは .Er ENOENT のみです。 これは .Va modid が、存在しない (読み取られていない) カーネルモジュールを指していることを 示します。 .Sh 関連項目 .Xr kldfind 2 , .Xr kldfirstmod 2 , .Xr kldload 2 , .Xr kldnext 2 , .Xr kldstat 2 , .Xr kldsym 2 , .Xr kldunload 2 , .Xr modfind 2 , .Xr modstat 2 , .Xr kld 4 , .Xr kldstat 8 .Sh 歴史 .Nm kld インタフェースは .Fx 3.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/modstat.2 b/ja_JP.eucJP/man/man2/modstat.2 index 7cc15133a7..b69b7977fc 100644 --- a/ja_JP.eucJP/man/man2/modstat.2 +++ b/ja_JP.eucJP/man/man2/modstat.2 @@ -1,125 +1,125 @@ .\" .\" 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/modstat.2,v 1.9 2002/12/18 09:22:31 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/modstat.2,v 1.10 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd September 28, 2000 .Dt MODSTAT 2 .Os .Sh 名称 .Nm modstat .Nd カーネルモジュールの状態を取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/module.h .Ft int .Fn modstat "int modid" "struct module_stat *stat" .Sh 解説 .Fn modstat システムコールは .Fa modid で参照されているカーネルモジュールに関する情報を .Fa stat に格納します。 .Bd -literal struct module_stat { int version; /* set to sizeof(module_stat) */ char name[MAXPATHLEN]; int refs; int id; modspecific_t data; }; typedef union modspecific { int intval; u_int u_intval; long longval; u_long u_longval; } modspecific_t; .Ed .Pp .Bl -tag -width XXXaddress .It version このフィールドには、 .Fn modstat 自体ではなく .Fn modstat を呼び出したコードによって、上記の構造体のサイズが設定されます。 .It name .Fa modid で参照されているモジュールの名前。 .It refs .Fa modid で参照されているモジュールの数。 .It id .Fa modid で指定されているモジュールの id。 .It data モジュール特有のデータ。 .El .Sh 戻り値 .Rv -std modstat .Sh エラー 以下のようなエラーが発生しない限り、 .Fa modid によって参照されているモジュールに関する情報が .Fa stat が指している構造体に代入されます: .Bl -tag -width Er .It Bq Er ENOENT モジュールが見つかりません (おそらくロードされていません)。 .It Bq Er EINVAL .Fa version フィールドで指定されているバージョンが適切ではありません。 適切なバージョンを .Fa version フィールドで指定しているにも関わらずこのエラーが起こるときは、 OS 全体か、カーネルまたはプログラム自身を作り直す必要があるかもしれません。 .It Bq Er EFAULT .Xr copyout 9 関数の中で、ひとつまたは複数あるいはすべてのフィールドを .Fa stat にコピー中に問題が発生しました。 .El .Sh 関連項目 .Xr kldfind 2 , .Xr kldfirstmod 2 , .Xr kldload 2 , .Xr kldnext 2 , .Xr kldstat 2 , .Xr kldsym 2 , .Xr kldunload 2 , .Xr modfind 2 , .Xr modfnext 2 , .Xr modnext 2 , .Xr kld 4 , .Xr kldstat 8 .Sh 歴史 .Nm kld インタフェースは .Fx 3.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mount.2 b/ja_JP.eucJP/man/man2/mount.2 index 11499fb311..6280a89ace 100644 --- a/ja_JP.eucJP/man/man2/mount.2 +++ b/ja_JP.eucJP/man/man2/mount.2 @@ -1,354 +1,361 @@ .\" Copyright (c) 1980, 1989, 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. .\" .\" @(#)mount.2 8.3 (Berkeley) 5/24/95 -.\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.38 2004/03/16 09:45:38 tjr Exp % +.\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.40 2004/08/13 14:33:03 roam Exp % .\" .\" $FreeBSD$ -.Dd March 16, 2004 +.Dd August 13, 2004 .Dt MOUNT 2 .Os .Sh 名称 .Nm mount , .Nm nmount , .Nm unmount .Nd ファイルシステムをマウントまたはマウント解除する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/mount.h .Ft int .Fn mount "const char *type" "const char *dir" "int flags" "void *data" .Ft int .Fn unmount "const char *dir" "int flags" .In sys/uio.h .Ft int .Fn nmount "struct iovec *iov" "u_int niov" "int flags" .Sh 解説 .Fn mount システムコールは、ファイルシステムオブジェクトをシステムファイルツリーの マウントポイント .Fa dir に付けます。 引数 .Fa data はマウントされるファイルシステムオブジェクトを記述します。 引数 .Fa type は .Fa data をどのように解釈するかをカーネルに通知します (後述の .Fa type を参照)。 ファイルシステムの内容は、新しいマウントポイント .Fa dir を通して利用できるようになります。 マウントが成功すると .Fa dir にあるすべてのファイルが覆い隠された状態になり、 ファイルシステムがマウント解除されるまで利用できなくなります。 .Pp .Fn nmount システムコールは、マウントオプション (ファイルシステムタイプ名称、 マウントされるデバイス、マウントポイントなど) が、 .Fa niov 個の要素を持つ .Fa iov 配列によって名前と値の組の配列として渡されることを除いては、 .Fn mount と同様に動作します。 以下のオプションは全てのファイルシステムで要求されます: .Bl -item -offset indent -compact .It .Li fstype Ta ファイルシステムタイプ名称 (例えば Dq Li procfs ) .It .Li fspath Ta マウントポイントのパス名 (例えば Dq Li /proc ) .El .Pp ファイルシステムタイプに依存して、その他のオプションが認識あるいは要求 されます。 例えば、殆どのディスクベースのファイルシステムは、上記のオプションに加えて スペシャルデバイスのパス名を格納する .Dq Li from オプションを要求します。 .Pp デフォルトではスーパユーザのみが .Fn mount システムコールを呼び出すことができます。 この制約は .Xr sysctl 8 の .Em vfs.usermount 変数を 0 ではない値に設定することで解除することが可能です。 .Pp 次の .Fa flags は、ファイルシステムアクセスに影響のあるデフォルト値を抑制するように 指定できます。 .Bl -tag -width MNT_SYNCHRONOUS .It Dv MNT_RDONLY ファイルシステムを読取り専用として取り扱います。 スーパユーザでさえこれに書き込むことはできません。 このオプションなしに MNT_UPDATE を指定すると、 読取り専用ファイルシステムが読取り / 書込みにアップグレードされます。 .It Dv MNT_NOEXEC そのファイルシステムからファイルを実行できないようにします。 .It Dv MNT_NOSUID 実行するときに、ファイルについての setuid ビットまたは setgid ビットを 尊重しません。 このフラグは、呼び出し側がスーパユーザでないときに、自動的に設定されます。 .It Dv MNT_NOATIME ファイルアクセス時刻の更新を行いません。 .It Dv MNT_NODEV ファイルシステム上の特殊ファイルを解釈しません。 このフラグは、呼び出し側がスーパユーザでないときに、自動的に設定されます。 +.It Dv MNT_SNAPSHOT +ファイルシステムのスナップショットを作成します。 +これは現状では UFS2 ファイルシステムのみをサポートします。 +詳細については +.Xr mksnap_ffs 8 +を参照して下さい。 .It Dv MNT_SUIDDIR SUID ビットが設定されたディレクトリは、新しいファイルの所有者を ディレクトリと同じに設定します。 このフラグに効果を持たせるためには、カーネルが SUIDDIR オプションを 付けてコンパイルされていることが必要です。 より多くの情報のため .Xr mount 8 および .Xr chmod 2 のマニュアルページを参照してください。 .It Dv MNT_SYNCHRONOUS ファイルシステムへの入出力はすべて同期的に行われます。 .It Dv MNT_ASYNC ファイルシステムへの入出力はすべて非同期的に行われます。 .It Dv MNT_FORCE ファイルシステムがクリーンでないように見えても、読み書き可でマウントを 強行します。 危険です。 .Dv MNT_UPDATE および .Dv MNT_RDONLY と一緒に指定することで、たとえ幾つかのファイルが書込みのためにオープンされて いたとしても、ファイルシステムは強制的に読込み専用にダウングレードされます。 .It Dv MNT_NOCLUSTERR クラスタ読取りを無効にします。 .It Dv MNT_NOCLUSTERW クラスタ書込みを無効にします。 .El .Pp フラグ .Dv MNT_UPDATE は、マウントコマンドがすでにマウントされたファイルシステムに 適用されていることを示します。 これによって、ファイルシステムをマウント解除および再マウントする必要なしに、 マウントフラグを変更できます。 ファイルシステムによっては、すべてのフラグの変更を許容しない場合もあります。 たとえば多くのファイルシステムが、 読み書き可から読取り専用への変更を許容しません。 .Pp vfs サブシステムは、フラグ .Dv MNT_RELOAD によってすでにマウントされているファイルシステムに 関係するデータ構造体を更新します。 .Pp .Fa type 引数でファイルシステムを指定します。 システム上で既知なファイルシステムのタイプは .Xr lsvfs 1 で得ることができます。 .Pp .Fa data 引数は、マウントするタイプに固有の引数が入った構造体を指すポインタです。 これらの引数構造体についての形式は各ファイルシステムに ついてのマニュアルページに記載されています。 慣習によりファイルシステムのマニュアルページは、 .Xr lsvfs 1 によって返されたファイルシステム名に ``mount_'' の接頭辞を付けて 命名されます。 それゆえ、 .Tn NFS ファイルシステムは .Xr mount_nfs 8 マニュアルページに記述されています。 .Pp .Fn unmount システムコールは、ファイルシステムを指定のマウントポイント .Fa dir から対応付け解除します。 .Pp .Fa flags 引数が .Dv MNT_FORCE を含むことで、ファイルがアクティブであっても、 ファイルシステムが強制的にマウント解除される必要があることを示します。 アクティブな特殊デバイスは機能し続けますが、 他のアクティブなファイルへのそれ以降のアクセスは、 たとえファイルシステムが後に再マウントされたとしてもエラーを引き起こします。 .Pp .Dv MNT_BYFSID フラグが指定されている場合には、 .Fa dir は .Dq Li FSID : Ns Ar val0 : Ns Ar val1 としてエンコードされたファイルシステム ID に置き換えられるべきです。 ここで .Ar val0 および .Ar val1 は .Vt fsid_t .Va val[] 配列の内容の 10 進数表現です。 明示されたファイルシステム ID を持っているファイルシステムは、 マウント解除されます。 .Sh 戻り値 .Rv -std .Sh エラー .Fn mount および .Fn nmount システムコールは、次のうちの 1 つでも起きたときには処理を失敗します: .Bl -tag -width Er .It Bq Er EPERM 呼び出し側がスーパユーザでも .Fa dir の所有者でもありません。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENOENT .Fa dir の構成要素が存在しません。 .It Bq Er ENOTDIR .Fa name の構成要素がディレクトリでないか、または .Fa special のパスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er EBUSY 別のプロセスが現時点で .Fa dir 引数への参照を保持しています。 .It Bq Er EFAULT .Fa dir はプロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp 次のエラーは、 .Em ufs ファイルシステムのマウントについて発生する可能性があります。 .Bl -tag -width Er .It Bq Er ENODEV ufs_args の構成要素 .Ar fspec が存在しません。 .It Bq Er ENOTBLK .Fa fspec 引数はブロックデバイスではありません。 .It Bq Er ENXIO .Fa fspec のメジャーデバイス番号が範囲外です (これはハードウェアに 対応するデバイスドライバが存在しないことを示します)。 .It Bq Er EBUSY .Fa fspec は既にマウントされています。 .It Bq Er EMFILE マウントテーブル空間が枯渇しました。 .It Bq Er EINVAL ファイルシステムのスーパブロックに 不都合なマジック番号または範囲外のブロックサイズがありました。 .It Bq Er ENOMEM ファイルシステムについてのシリンダグループ情報を読み取るのに十分な メモリがありませんでした。 .It Bq Er EIO スーパブロックまたはシリンダグループの情報を読み取る間に 入出力エラーが発生しました。 .It Bq Er EFAULT .Fa fspec がプロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp 次のエラーは .Em nfs ファイルシステムマウントについて起きる可能性があります: .Bl -tag -width Er .It Bq Er ETIMEDOUT .Em nfs がサーバと接触しようとして時間切れになりました。 .It Bq Er EFAULT nfs_args によって記述された情報の一部が、 プロセスに割り当てられたアドレス空間の範囲外を指しています .El .Pp .Fn unmount システムコールは、次のエラーの 1 つでも起きたときには処理を失敗します: .Bl -tag -width Er .It Bq Er EPERM 呼び出し側がスーパユーザでも該当する .Fn mount の呼び出しを実行したユーザでもありません。 .It Bq Er ENAMETOOLONG パス名の長さが 1023 文字を越えていました。 .It Bq Er EINVAL 指定されたディレクトリがマウントテーブル内にありません。 .It Bq Er ENOENT .Dv MNT_BYFSID を使用して指定されたファイルシステム ID がマウントテーブルの中に 見つかりませんでした。 .It Bq Er EINVAL .Dv MNT_BYFSID を使用して指定されたファイルシステム ID がデコードされることが できませんでした。 .It Bq Er EINVAL 指定されたファイルシステムがルートファイルシステムではありません。 .It Bq Er EBUSY プロセスがファイルシステム上にあるファイルへの参照を保持しています。 .It Bq Er EIO キャッシュされたファイルシステム情報を書き込んでいる間に 入出力エラーが起きました。 .It Bq Er EFAULT .Fa dir 引数がプロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp .Em ufs マウントは、最大数のファイルシステムが現時点でマウントされている場合にも 処理を失敗します。 .Sh 関連項目 .Xr lsvfs 1 , +.Xr mksnap_ffs 8 , .Xr mount 8 , .Xr umount 8 .Sh バグ エラーコードには、明瞭なメッセージにするために変更が必要なものがあります。 .Sh 歴史 .Fn mount 関数と .Fn unmount 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/msync.2 b/ja_JP.eucJP/man/man2/msync.2 index a5bbba4942..59bdb1d5e9 100644 --- a/ja_JP.eucJP/man/man2/msync.2 +++ b/ja_JP.eucJP/man/man2/msync.2 @@ -1,99 +1,104 @@ .\" 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. .\" .\" @(#)msync.2 8.2 (Berkeley) 6/21/94 -.\" %FreeBSD: src/lib/libc/sys/msync.2,v 1.26 2003/11/14 07:18:12 alc Exp % +.\" %FreeBSD: src/lib/libc/sys/msync.2,v 1.27 2004/06/30 20:09:10 ru Exp % .\" .\" $FreeBSD$ .Dd June 21, 1994 .Dt MSYNC 2 .Os .Sh 名称 .Nm msync .Nd マップされた領域を同期化する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/mman.h .Ft int .Fn msync "void *addr" "size_t len" "int flags" .Sh 解説 .Fn msync システムコールは、修正されたページをファイルシステムに書き込んで ファイル修正時刻を更新します。 .Fa len が 0 の場合、 .Fa addr を含むリージョン内のすべての修正済みページがフラッシュされます。 .Fa len が 0 でない場合、 .Fa addr から .Fa len-1 の範囲を含むページだけが調べられます。 .Fa flags 引数は次のように指定できます: -.Bd -literal -MS_ASYNC ただちに戻ります -MS_SYNC 同期書込みを実行します -MS_INVALIDATE キャッシュされたデータをすべて無効にします -.Ed +.Pp +.Bl -tag -width ".Dv MS_INVALIDATE" -compact +.It Dv MS_ASYNC +ただちに戻ります +.It Dv MS_SYNC +同期書込みを実行します +.It Dv MS_INVALIDATE +キャッシュされたデータをすべて無効にします +.El .Sh 戻り値 .Rv -std msync .Sh エラー .Fn msync システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EBUSY 指定された領域の一部またはすべてのページがロックされており、 -MS_INVALIDATE が指定されました。 +.Dv MS_INVALIDATE +が指定されました。 .It Bq Er EINVAL .Fa addr 引数はハードウェアページサイズの倍数ではありません。 .It Bq Er EINVAL .Fa len 引数が大きすぎるか、または負です。 .It Bq Er EINVAL .Fa flags 引数に MS_ASYNC と MS_INVALIDATE の両方が指定されました。 これらのフラグは同時に指定することはできません。 .El .Sh 関連項目 .Xr madvise 2 , .Xr mincore 2 , .Xr mlock 2 , .Xr mprotect 2 , .Xr munmap 2 .Sh 歴史 .Fn msync システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/nanosleep.2 b/ja_JP.eucJP/man/man2/nanosleep.2 index 6b3a8e4ae0..8457e72ede 100644 --- a/ja_JP.eucJP/man/man2/nanosleep.2 +++ b/ja_JP.eucJP/man/man2/nanosleep.2 @@ -1,103 +1,103 @@ .\" .\" $OpenBSD: nanosleep.2,v 1.1 1997/04/20 20:56:20 tholo Exp $ .\" %NetBSD: nanosleep.2,v 1.1 1997/04/17 18:12:02 jtc Exp % .\" .\" Copyright (c) 1986, 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. .\" .\" @(#)sleep.3 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/nanosleep.2,v 1.16 2002/12/19 21:48:43 ceri Exp % +.\" %FreeBSD: src/lib/libc/sys/nanosleep.2,v 1.17 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd April 17, 1997 .Dt NANOSLEEP 2 .Os .Sh 名称 .Nm nanosleep .Nd ナノ秒単位の間隔でプロセス実行を中断する .Sh ライブラリ .Lb libc .Sh 書式 .In time.h .Ft int .Fn nanosleep "const struct timespec *rqtp" "struct timespec *rmtp" .Sh 解説 .Fn nanosleep システムコールによってプロセスは指定の時間だけ休眠状態になります。 シグナルによる割り込み時の .Dv SA_RESTART 値に無関係に、マスクされていないシグナルがあると プロセスの休眠状態は早めに終了します。 .Sh 戻り値 要求された時間が経過したために .Fn nanosleep システムコールが戻った場合、返される値は 0 になります。 .Pp シグナルが配信されたために .Fn nanosleep システムコールから戻った場合に返される値は -1 になり、割り込みを示すために グローバル変数 .Va errno が設定されます。 .Fa rmtp が .Dv NULL でない場合、それが参照する timespec 構造体は非休眠時間で更新されます (要求時間から、実際に休眠状態にあった時間を減算したものです)。 .Sh エラー .Fn nanosleep システムコールは、次の場合に失敗します: .Bl -tag -width Er .It Bq Er EFAULT .Fa rqtp または .Fa rmtp のどちらかが、 プロセスに割り当てられたアドレス空間の範囲外のメモリを指しています。 .It Bq Er EINTR .Fn nanosleep システムコールはシグナルの配信によって割り込まれました。 .It Bq Er EINVAL .Fa rqtp 引数に 0 未満か、10 億ナノ秒以上の値を指定しました。 .It Bq Er ENOSYS .Fn nanosleep システムコールはこのシステムではサポートされていません。 .El .Sh 関連項目 .Xr sigsuspend 2 , .Xr sleep 3 .Sh 規格 .Fn nanosleep システムコールは .St -p1003.1b-93 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/nfssvc.2 b/ja_JP.eucJP/man/man2/nfssvc.2 index c19f7dd6ac..424991c231 100644 --- a/ja_JP.eucJP/man/man2/nfssvc.2 +++ b/ja_JP.eucJP/man/man2/nfssvc.2 @@ -1,260 +1,260 @@ .\" 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. .\" .\" @(#)nfssvc.2 8.1 (Berkeley) 6/9/93 -.\" %FreeBSD: src/lib/libc/sys/nfssvc.2,v 1.16 2003/02/05 13:36:13 chamier Exp % +.\" %FreeBSD: src/lib/libc/sys/nfssvc.2,v 1.17 2004/05/12 20:45:51 josef Exp % .\" .\" WORD: principal 主体名 .\" $FreeBSD$ .Dd June 9, 1993 .Dt NFSSVC 2 .Os .Sh 名称 .Nm nfssvc .Nd NFS nfssvc - NFS サービス .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/time.h .In nfs/rpcv2.h .In nfs/nfs.h .In unistd.h .Ft int .Fn nfssvc "int flags" "void *argstructp" .Sh 解説 .Fn nfssvc システムコールは、NFS デーモンが、情報をカーネルの中に渡したり カーネルから外に渡したりするのに使用され、また、 NFS デーモンがサーバデーモンとしてカーネルに入るのにも 使用されます。 .Fa flags 引数は、カーネル内でどのような処理を実行するかを示す いくつかのビットで構成されており、 .Fa argstructp は、flags 引数でどのビットが設定されたかに従って 3 つある構造体のうちの 1 つを指します。 .Pp クライアント側では、 .Xr nfsiod 8 は .Fa flags 引数を .Dv NFSSVC_BIOD に設定し、 .Fa argstructp を .Dv NULL に設定して .Fn nfssvc を呼び出し、ブロック入出力サーバデーモンとしてカーネルに入ります。 .Tn NQNFS の場合、 .Xr mount_nfs 8 は .Dv NFSSVC_MNTD フラグを、また、オプションで .Dv NFSSVC_GOTAUTH と .Dv NFSSVC_AUTHINFAIL の論理和 (or) を取ったものを設定し、 次の構造体を指すポインタとともに .Fn nfssvc を呼び出します。 .Bd -literal struct nfsd_cargs { char *ncd_dirp; /* マウントディレクトリパス */ uid_t ncd_authuid; /* 実効 uid */ int ncd_authtype; /* 認証のタイプ */ int ncd_authlen; /* 認証文字列の長さ */ u_char *ncd_authstr; /* 認証文字列 */ int ncd_verflen; /* および検証機能 */ u_char *ncd_verfstr; NFSKERBKEY_T ncd_key; /* セッションキー */ }; .Ed .Pp 最初の呼び出しでは、マウントポイントに対するサービスを指定する .Dv NFSSVC_MNTD フラグだけが設定されています。 マウントポイントが Kerberos を使用している場合、 クライアント側がユーザ用の ``rcmd'' 認証チケットを要求するたびに、 .Xr mount_nfs 8 ユーティリティは、 .Va errno == .Er ENEEDAUTH で .Fn nfssvc から戻ります。 .Xr mount_nfs 8 ユーティリティは、Kerberos チケットを取得しようとし、成功すると、 nfsd_cargs 構造体の ncd_authstr フィールドにチケットを入れ、 ncd_authlen フィールドと ncd_authtype フィールドを 設定した後で、フラグ .Dv NFSSVC_MNTD および .Dv NFSSVC_GOTAUTH を指定して .Fn nfssvc を呼び出します。 .Xr mount_nfs 8 がチケットを取得するのに失敗した場合、 .Fn nfssvc は、フラグ .Dv NFSSVC_MNTD , .Dv NFSSVC_GOTAUTH および .Dv NFSSVC_AUTHINFAIL を指定して呼び出されて、認証の試みが 失敗したことを示します。 .Pp サーバ側では、 .Fn nfssvc がフラグ .Dv NFSSVC_NFSD と次の構造体を指すポインタとともに呼び出されて、 .Xr nfsd 8 デーモンとしてカーネルに入ります。 .Bd -literal struct nfsd_srvargs { struct nfsd *nsd_nfsd; /* カーネル内の nfsd 構造体へのポインタ */ uid_t nsd_uid; /* cred にマップされる実効 uid*/ u_int32t nsd_haddr; /* クライアントの IP アドレス */ struct ucred nsd_cr; /* cred。uid のマップ宛先 */ int nsd_authlen; /* 認証文字列の長さ (戻り) */ u_char *nsd_authstr; /* 認証文字列 (戻り) */ int nsd_verflen; /* および検証機能 */ u_char *nsd_verfstr; struct timeval nsd_timestamp; /* 検証機能からのタイムスタンプ */ u_int32t nsd_ttl; /* 証書の持続時間 (秒) */ NFSKERBKEY_T nsd_key; /* セッションキー */ }; .Ed .Pp .Xr nfsd 8 ユーティリティは、Kerberos 認証チケットを受信するたびに、 .Fn nfssvc から .Va errno == .Er ENEEDAUTH で戻ります。 .Xr nfsd 8 は、チケットを認証し、フィールド nsd_uid で指定された ``user id'' 用の一連の証書をサーバ上で生成しようとします。 これを行うには、最初に Kerberos チケットを認証してから、 Kerberos の主体名 (principal) を ローカル名にマップし、 .Xr getpwnam 3 と .Xr getgrouplist 3 経由でそのユーザについての一連の証書を得ます。 正常に完了すると、 .Xr nfsd 8 ユーティリティは、 .Dv NFSSVC_NFSD フラグと .Dv NFSSVC_AUTHIN フラグを設定して .Fn nfssvc を呼び出し、 nsd_cr 内の証書のマッピングをカーネルに渡し、 そのクライアント用のサーバソケット上でマップが キャッシュされるようにします。 認証が失敗した場合、 .Xr nfsd 8 はフラグ .Dv NFSSVC_NFSD および .Dv NFSSVC_AUTHINFAIL を設定して .Fn nfssvc を呼び出し、認証が失敗したことを示します。 .Pp .Xr nfsd 8 マスタサーバデーモンは、フラグ .Dv NFSSVC_ADDSOCK および次の構造体を指すポインタを設定して .Fn nfssvc を呼び出し、 .Xr nfsd 8 デーモンがサービスを行えるようにサーバ側の .Tn NFS ソケットをカーネルに渡します。 .Bd -literal struct nfsd_args { int sock; /* サービスを行うソケット */ caddr_t name; /* 接続指向のソケットのクライアントアドレス */ int namelen;/* 名前の長さ */ }; .Ed .Sh 戻り値 通常、 .Fn nfssvc は、サーバがシグナルによって終了されるときを除いて戻りません。 このときには、値 0 が返されます。 そうでない場合は、-1 が返され、エラーを指定するためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Bl -tag -width Er .It Bq Er ENEEDAUTH この特殊なエラー値は、実際には認証サポート用、 特に、前述した Kerberos 用に使用されます。 .It Bq Er EPERM 呼び出し側がスーパユーザではありません。 .El .Sh 関連項目 .Xr mount_nfs 8 , .Xr nfsd 8 , .Xr nfsiod 8 .Sh 歴史 .Fn nfssvc システムコールは .Bx 4.4 ではじめて登場しました。 .Sh バグ .Fn nfssvc システムコールは .Tn NFS サポート用に特別に設計されています。 そのようなものですから、NFS の要求定義に特に従ったものに なっています。 本来ならば、認証サポートが必要であることを示す値を返す必要があります。 なぜなら、 .Er ENEEDAUTH は本来ならエラーではないからです。 引数である構造体のいくつかのフィールドは 正当なものであると仮定されており、直前の呼び出しから 変更されないことが時々あります。 このようであるので、 .Fn nfssvc はとりわけ注意を払って使用しなくてはなりません。 diff --git a/ja_JP.eucJP/man/man2/ntp_gettime.2 b/ja_JP.eucJP/man/man2/ntp_gettime.2 index 5c661b0bbc..2e6a87d9a1 100644 --- a/ja_JP.eucJP/man/man2/ntp_gettime.2 +++ b/ja_JP.eucJP/man/man2/ntp_gettime.2 @@ -1,115 +1,115 @@ .\" .\" Copyright (c) 2003 Tom Rhodes .\" 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/ntp_gettime.2,v 1.3 2003/09/12 21:54:10 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/ntp_gettime.2,v 1.4 2004/07/02 19:07:30 ru Exp % .\" .\" $FreeBSD$ .Dd June 21,2003 .Dt NTP_GETTIME 2 .Os .Sh 名称 .Nm ntp_gettime .Nd NTP ユーザアプリケーションインタフェース .Sh 書式 .In sys/timex.h .Ft int .Fn ntp_gettime "struct ntptimeval *ntv" .Sh 解説 .Fn ntp_gettime によって返される時刻は、 .Vt timespec 構造体に格納されますが、マイクロ秒 (秒とマイクロ秒) または ナノ秒 (秒とナノ秒) のどちらかの形式であることができます。 使用中の特有の形式は、 .Fn ntp_adjtime システムコールによって返される status ワードの .Dv STA_NANO ビットによって決定されます。 .Fn ntp_gettime は以下のメンバを持つ .Vt ntptimeval 構造体へのポインタを引数として持ちます: .Bd -literal struct ntptimeval { struct timespec time; /* 現在の時刻 (ns) (ro) */ long maxerror; /* 最大誤差 (us) (ro) */ long esterror; /* 推定誤差 (us) (ro) */ long tai; /* TAI-UTC オフセット */ int time_state; /* 時間状態 */ }; .Ed .Pp これらは以下のように理解されます: .Bl -tag -width ".Va time_state" .It Va time 現在の時刻です (読取り専用)。 .It Va maxerror マイクロ秒単位での最大誤差です (読取り専用)。 .It Va esterror マイクロ秒単位での推定誤差です (読取り専用)。 .It Va tai TAI および UTC の時間スケールの間の秒単位のオフセットです。 このオフセットは 1 年毎に 2 回発行され、 TAI (閏秒がない) と UTC (閏秒がある) との間の整数秒差です。 .Xr ntpd 8 またはその他のエージェントがこの値を管理します。 値 0 は不明を意味します。 このマニュアルページの日付では、このオフセットは 32 秒です。 .It Va time_state 現在時刻の状態です。 .El .Sh 戻り値 .Rv -std ntp_gettime .Pp 起こりうるクロックの状態は以下のとおりです: .Pp .Bl -tag -compact -width ".Dv TIME_ERROR" .It Dv TIME_OK 全てが OK で、閏秒の警告もありません。 .It Dv TIME_INS 正の閏秒の警告です。 この日の最後の 23:59:59 の後に追加の 1 秒が挿入されます。 .It Dv TIME_DEL 負の閏秒の警告です。 この日の最後の 23:59:59 はスキップされます。 .It Dv TIME_OOP 閏秒の経過中です。 .It Dv TIME_WAIT 閏秒が発生しました。 .It Dv TIME_ERROR クロックが同期していません。 .El .Sh 関連項目 .Xr ntp_adjtime 2 , .Xr ntpd 8 .Bl -tag -width indent .It Pa http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html .It Pa http://www.boulder.nist.gov/timefreq/general/faq.htm .It Pa ftp://time.nist.gov/pub/leap-seconds.list .El .Sh 作者 このマニュアルページは .An Tom Rhodes Aq trhodes@FreeBSD.org が書きました。 diff --git a/ja_JP.eucJP/man/man2/open.2 b/ja_JP.eucJP/man/man2/open.2 index 8c71457723..9b293c530b 100644 --- a/ja_JP.eucJP/man/man2/open.2 +++ b/ja_JP.eucJP/man/man2/open.2 @@ -1,303 +1,303 @@ .\" 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 -.\" %FreeBSD: src/lib/libc/sys/open.2,v 1.27 2003/09/02 16:50:17 dds Exp % +.\" %FreeBSD: src/lib/libc/sys/open.2,v 1.29 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd November 16, 1993 .Dt OPEN 2 .Os .Sh 名称 .Nm open .Nd 読取りまたは書込み用にファイルをオープンする、または作成する .Sh ライブラリ .Lb libc .Sh 書式 .In fcntl.h .Ft int .Fn open "const char *path" "int flags" "..." .Sh 解説 .Fa path によって指定されるファイルを、引数 .Fa flags によって指定されたように読取りまたは書込み (またはその両方) 用にオープンし、 そのファイル記述子を呼び出し元プロセスに返します。 ファイルが存在しない場合にはファイルを作成するように、 .Fa flags 引数で指示できます .Dv ( O_CREAT フラグを指定する)。 この場合、 .Fn open には 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 排他的ロックを不可分に取得する O_DIRECT キャッシュの効果を無くすまたは減らす O_FSYNC 同期的に書き込む O_NOFOLLOW シンボリックリンクを辿らない .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 .Dv O_FSYNC がマスクに使用された場合、すべての書込みは直ちにディスクに書き込まれ、 カーネルは書き込まれたデータをキャッシュせず、 書き込むべきすべてのデータが完了するまでは この記述子に対するすべての書込みは戻りません。 .Pp .Dv O_NOFOLLOW がマスクに使用された場合で .Fn open に渡された対象ファイルがシンボリックリンクの場合、 .Fn open は失敗します。 .Pp ファイルをオープンするときに、 .Xr flock 2 を使ったロックを得るには、共有ロックについては .Dv O_SHLOCK、 排他的ロックについては .Dv O_EXLOCK を設定します。 .Dv O_CREAT でファイルを作成する場合、ロック要求が失敗すること はありません (ただし、下層にあるファイルシステムが ロックをサポートしている場合に限ります)。 .Pp 読み書きにおけるキャッシュの効果を最小化もしくは無くすために .Dv O_DIRECT を使用可能です。 システムは、読み書きするデータのキャッシングを避けようとします。 データのキャッシングが避けられない場合、 データのキャッシュに対する影響を最小化します。 注意せずに使用すると、本フラグは劇的に性能を劣化させます。 .Pp 正常に完了すると、 .Fn open は、ファイル記述子を示す負でない整数を返します。 処理に失敗すると -1 を返します。 ファイル内の現在の位置をマークする ファイルポインタはファイルの先頭に設定されます。 .Pp 新しいファイルが作成される場合、そのグループは ファイルが含まれるディレクトリのグループに設定されます。 .Pp 新しい記述子は .Xr execve 2 システムコールを通じてオープンされたままであるように設定されます。 .Xr close 2 と .Xr fcntl 2 を参照してください。 .Pp システムには、1 つのプロセスによって同時にオープンできる ファイル記述子数に制限があります。 .Xr getdtablesize 2 システムコールは現在のシステム制限を返します。 .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 EMLINK .Dv O_NOFOLLOW が指定され、対象がシンボリックリンクです。 .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 EOPNOTSUPP 指定されたファイルはスペシャルファイルであり、 それにアクセスすることをサポートしていない ファイルシステム (例えば NFS) を通してマウントされています。 .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 , .Xr fopen 3 .Sh 歴史 .Fn open 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/pathconf.2 b/ja_JP.eucJP/man/man2/pathconf.2 index b44468d0fe..581a81dc8e 100644 --- a/ja_JP.eucJP/man/man2/pathconf.2 +++ b/ja_JP.eucJP/man/man2/pathconf.2 @@ -1,201 +1,222 @@ .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)pathconf.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/pathconf.2,v 1.15 2003/01/07 05:06:27 keramida Exp % +.\" %FreeBSD: src/lib/libc/sys/pathconf.2,v 1.17 2004/07/08 20:27:38 wollman Exp % .\" .\" $FreeBSD$ .Dd November 4, 2002 .Dt PATHCONF 2 .Os .Sh 名称 .Nm pathconf , .Nm fpathconf .Nd 構成可能なパス名変数を取得する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft long .Fn pathconf "const char *path" "int name" .Ft long .Fn fpathconf "int fd" "int name" .Sh 解説 .Fn pathconf システムコールと .Fn fpathconf システムコールは、構成可能なシステム限界の現在値、またはパス名や ファイル記述子に対応するオプション変数を アプリケーションが判定する方法を提供します。 .Pp .Fn pathconf の場合、 .Fa path 引数はファイルまたはディレクトリの名前です。 .Fn fpathconf の場合、 .Fa fd 引数はオープンファイルの記述子です。 .Fa name 引数は、照会するシステム変数を指定します。 それぞれの名前に関するシンボリック定数はインクルードファイル .Li にあります。 .Pp 利用可能な値は次のとおりです: .Pp .Bl -tag -width 6n .Pp .It Li _PC_LINK_MAX 最大のファイルリンクカウント。 .It Li _PC_MAX_CANON 端末の標準モード入力待ち行列の最大バイト数。 .It Li _PC_MAX_INPUT 端末入力待ち行列内空間で利用できる最大バイト数の最小値。 .It Li _PC_NAME_MAX ファイル名の最大バイト数。 .It Li _PC_PATH_MAX パス名の最大バイト数。 .It Li _PC_PIPE_BUF パイプに不可分に書き込まれる最大バイト数。 .It Li _PC_CHOWN_RESTRICTED .Xr chown 2 システムコールを実行するのに、適切な特権が必要な場合は 1 を返し、 そうでない場合は 0 を返します。 +全ての場合において +.St -p1003.1-2001 +は適切な特権を要求しますが、この動作はこの規格の前の版ではオプションでした。 .It Li _PC_NO_TRUNC -KERN_NAME_MAX より長いファイル名が切り捨てられる場合は 1 を返します。 +構成要素が +.Brq Li NAME_MAX +よりも長いパス名を使用しようとすると +.Bq Er ENAMETOOLONG +エラーを引き起こす場合は、0 より大きい値を返します。 +そうでない場合には、このような構成要素は +.Brq Li NAME_MAX +に切り詰められます。 +全ての場合において +.St -p1003.1-2001 +は適切なエラーを要求しますが、この動作はこの規格の前の版ではオプションでした。 +また、 +.Tn POSIX +に縛られていないファイルシステムはこの動作をサポートしません。 .It Li _PC_VDISABLE 端末制御文字を無効にするための値を返します。 .It Li _PC_ASYNC_IO 非同期 I/O がサポートされている場合は 1 を返し、 そうでなければ 0 を返します。 .It Li _PC_PRIO_IO このファイルに対して優先 I/O がサポートされている場合は 1 を返し、 そうでなければ 0 を返します。 .It Li _PC_SYNC_IO このファイルに対して同期 I/O がサポートされている場合は 1 を返し、 そうでなければ 0 を返します。 .It Li _PC_ALLOC_SIZE_MIN ファイルの一部を格納するために確保される領域の最小バイト数。 .It Li _PC_FILESIZEBITS 最大ファイルサイズを表現するのに必要なビット数。 .It Li _PC_REC_INCR_XFER_SIZE ファイル転送サイズの、 .Dv _PC_REC_MIN_XFER_SIZE から .Dv _PC_REC_MAX_XFER_SIZE への推奨増加量。 .It Li _PC_REC_MAX_XFER_SIZE 推奨ファイル転送サイズの最大値。 .It Li _PC_REC_MIN_XFER_SIZE 推奨ファイル転送サイズの最小値。 .It Li _PC_REC_XFER_ALIGN ファイル転送バッファの推奨アラインメント。 .It Li _PC_SYMLINK_MAX シンボリックリンクに使われる最大バイト数。 .It Li _PC_ACL_EXTENDED 指定されたファイルに対してアクセス制御リスト (ACL) が 設定できる場合は 1 を返し、そうでなければ 0 を返します。 .It Li _PC_ACL_PATH_MAX ACL エントリのファイル毎の最大数。 .It Li _PC_CAP_PRESENT 指定されたファイルに対してケーパビリティ状態が 設定できる場合は 1 を返し、そうでなければ 0 を返します。 .It Li _PC_INF_PRESENT 指定されたファイルに対して情報ラベルが 設定できる場合は 1 を返し、そうでなければ 0 を返します。 .It Li _PC_MAC_PRESENT 指定されたファイルに対して強制アクセス制御 (MAC) ラベルが 設定できる場合は 1 を返し、そうでなければ 0 を返します。 .El .Sh 戻り値 .Fn pathconf または .Fn fpathconf の呼び出しが正常に完了しない場合は -1 が返され、 .Va errno が適切な値に設定されます。 変数に結び付けられた機能がシステム内に限界を持たないとき、-1 が返され、 .Va errno は修正されません。 それ以外の場合、現在の変数値が返されます。 .Sh エラー 次の条件のどれかが起きた場合、 .Fn pathconf システムコールと .Fn fpathconf システムコールは -1 を返し、 .Va errno に対応する値を設定します。 .Bl -tag -width Er .It Bq Er EINVAL .Fa name 引数の値が無効です。 .It Bq Er EINVAL このファイルとこの変数との結び付きは、実装されていません。 .El .Pp .Fn pathconf システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG -パス名の構成要素が 255 文字を越えているか、 -またはパス名全体が 1023 文字を越えています。 +パス名の構成要素が +.Brq Dv NAME_MAX +の文字数を越えているか (ただし上記の +.Dv _PC_NO_TRUNC +を参照)、またはパス名全体が +.Brq Dv PATH_MAX +の文字数を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Pp .Bl -tag -width Er .Fn fpathconf システムコールは次の場合に失敗します: .It Bq Er EBADF .Fa fd 引数が有効なオープンファイル記述子ではありません。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr sysctl 3 .Sh 歴史 .Fn pathconf システムコールと .Fn fpathconf システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/pipe.2 b/ja_JP.eucJP/man/man2/pipe.2 index 8e31b0303d..530e7a5ab8 100644 --- a/ja_JP.eucJP/man/man2/pipe.2 +++ b/ja_JP.eucJP/man/man2/pipe.2 @@ -1,115 +1,115 @@ .\" 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. .\" .\" @(#)pipe.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/pipe.2,v 1.20 2002/12/18 09:22:31 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/pipe.2,v 1.21 2004/07/03 22:30:09 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt PIPE 2 .Os .Sh 名称 .Nm pipe .Nd プロセス間通信のための記述子のペアを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn pipe "int *fildes" .Sh 解説 .Fn pipe システムコールは 双方向のデータフローを可能とするオブジェクトである .Em pipe を作成し、ペアのファイル記述子を割り当てます。 .Pp 慣習により、通常は 1 番めの記述子がパイプの .Em 読取り側 として使用され、2 番めの記述子が .Em 書込み側 として使用されます。 ですので、 .Fa fildes[1] に書き込まれたデータが .Fa fildes[0] に現れます (すなわち、 .Fa fildes[0] から読み取れます)。 これを使えば 1 つのプログラムの出力を別のプログラムに送信できます。 送信側の標準出力をパイプの書込み側としてセットアップし、 受信側の標準入力をパイプの読取り側としてセットアップしてください。 パイプ自体は、すべての対応する記述子がクローズされるまで持続します。 .Pp 一端が閉じているパイプは .Em widowed (相手を失った) と見なされます。 このようなパイプに書込みをすると、書込みプロセスは .Dv SIGPIPE シグナルを受信します。 読取り側にファイルの終了を伝える方法は、 書込み側のパイプをクローズするしかありません。 読取り側がバッファに入っているデータを使い切った後、相手を失ったパイプを 読み取ると 0 カウントが返されます。 .Pp このパイプの実装における双方向という性質は、 古いシステムと互換性がありません。 ですので、パイプを一方向にしか使用しないときには、 従来の方法で端点を使用するこの慣習に従うことをお勧めします。 .Sh 戻り値 .Rv -std pipe .Sh エラー .Fn pipe システムコールは次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EMFILE アクティブな記述子が多すぎます。 .It Bq Er ENFILE システムファイルテーブルが満杯です。 .It Bq Er EFAULT .Fa fildes バッファがプロセスのアドレス空間の不正な領域にあります。 .El .Sh 関連項目 .Xr sh 1 , .Xr fork 2 , .Xr read 2 , .Xr socketpair 2 , .Xr write 2 .Sh 歴史 .Fn pipe 関数は .At v3 で登場しました。 .Pp 双方向パイプははじめて .At V.4 で使用されました。 diff --git a/ja_JP.eucJP/man/man2/poll.2 b/ja_JP.eucJP/man/man2/poll.2 index 6ffad2a8b2..bdfe532592 100644 --- a/ja_JP.eucJP/man/man2/poll.2 +++ b/ja_JP.eucJP/man/man2/poll.2 @@ -1,192 +1,192 @@ .\" %NetBSD: poll.2,v 1.3 1996/09/07 21:53:08 mycroft Exp % -.\" %FreeBSD: src/lib/libc/sys/poll.2,v 1.12 2004/01/26 15:19:54 eivind Exp % +.\" %FreeBSD: src/lib/libc/sys/poll.2,v 1.15 2004/07/02 23:52:13 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. .\" .\" $FreeBSD$ .Dd July 8, 2002 .Dt POLL 2 .Os .Sh 名称 .Nm poll .Nd 同期的な入出力の多重化 .Sh ライブラリ .Lb libc .Sh 書式 .In poll.h .Ft int .Fn poll "struct pollfd fds[]" "nfds_t nfds" "int timeout" .Sh 解説 .Fn poll システムコールはファイル記述子の集合を調査して、 それらのいずれかで入出力の準備ができているか否かを調べます。 .Fa fds 引数は .In poll.h で定義された pollfd 配列を指すポインタ (後述) です。 .Fa nfds 引数は .Fa fds 配列のサイズを決定します。 .Bd -literal struct pollfd { int fd; /* ファイル記述子 */ short events; /* 検索するイベント */ short revents; /* 返されたイベント */ }; .Ed .Pp .Fa pollfd 構造体のフィールドは次のとおりです: .Bl -tag -width XXXrevents .It fd 調査するファイル記述子。 もし fd が -1 なら .Fa revents はクリアされ (0 に設定)、pollfd はチェックされません。 .It events 調査するイベント (後述)。 .It revents 発生したイベント (後述)。 .El .Pp .Fa events と .Fa revents 内のビットマスクには次のビットがあります: .Bl -tag -width XXXPOLLWRNORM .It POLLIN 高優先データ以外のデータはブロックせずに読取りできます。 .It POLLRDNORM 通常データはブロックせずに読取りできます。 .It POLLRDBAND 優先順位が 0 でないデータはブロックせずに読取りできます。 .It POLLPRI 高優先データはブロックせずに読取りできます。 .It POLLOUT .It POLLWRNORM 通常データはブロックせずに書き込めます。 .It POLLWRBAND 優先順位が 0 でないデータはブロックせずに書き込めます。 .It POLLERR デバイスまたはソケット上に例外状態が起きました。 このフラグは、 .Fa events ビットマスクに存在していなくても必ずチェックされます。 .It POLLHUP デバイスまたはソケットが切断されています。 このフラグは、 .Fa events ビットマスク内に存在しなくても必ずチェックされます。 POLLHUP と POLLOUT は、 .Fa revents ビットマスク内に同時に存在することが決してないことに注意してください。 .It POLLNVAL ファイル記述子がオープンされていません。 このフラグは、 .Fa events ビットマスク内に存在しなくても必ずチェックされます。 .El .Pp .Fa timeout が 0 でも INFTIM (-1) でもない場合、この値はいずれかのファイル記述子が 準備完了になるのを待機する最大間隔 (ミリ秒単位) です。 .Fa timeout が INFTIM (-1) の場合、 .Fn poll は無期限にブロックします。 .Fa timeout が 0 の場合 .Fn poll はブロックせずに戻ります。 .Sh 戻り値 .Fn poll システムコールは入出力の準備が完了した記述子の番号を返します。 エラーが起きた場合は -1 を返します。 時間切れになると .Fn poll は 0 を返します。 システムコールが割り込まれたことによるエラーも含めて .Fn poll がエラーで戻った場合、 .Fa fds 配列は変更されません。 .Sh 互換性 この実装は、ファイル記述子によって .Fn poll がエラーにならないという点で、過去のものと異なっています。 過去の実装においてエラーになるであろう場合 (たとえば .Xr revoke 2 された記述子を検査しようとした場合)、この実装は代わりに .Fa events ビットマスクを .Fa revents ビットマスクにコピーします。 この記述子上で入出力を実行しようとするとエラーが返されます。 この動作はより便利であると考えられています。 .Sh エラー .Fn poll は次のエラーで戻ります: .Bl -tag -width Er .It Bq Er EFAULT .Fa fds 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINTR 時間切れになる前に、そして選択されたイベントが発生する前に シグナルを受信しました。 .It Bq Er EINVAL 時間制限として負の値が指定されました。 .El .Sh 関連項目 .Xr accept 2 , .Xr connect 2 , .Xr kqueue 2 , .Xr read 2 , .Xr recv 2 , .Xr select 2 , .Xr send 2 , .Xr write 2 .Sh バグ .Fa events ビットマスクと .Fa revents ビットマスクのいくつかのフィールド間の違いは、 STREAMS 以外では実用的ではありません。 それらのフィールドは、既存のソフトウェアとの互換性を 保つために定義されています。 .Sh 歴史 .Fn poll 関数は .At V で登場しました。 このマニュアルページと実装の主要な部分は .Nx から得たものです。 diff --git a/ja_JP.eucJP/man/man2/ptrace.2 b/ja_JP.eucJP/man/man2/ptrace.2 index a73d54c7e9..53693371e9 100644 --- a/ja_JP.eucJP/man/man2/ptrace.2 +++ b/ja_JP.eucJP/man/man2/ptrace.2 @@ -1,348 +1,368 @@ -.\" %FreeBSD: src/lib/libc/sys/ptrace.2,v 1.34 2004/01/10 17:41:04 rwatson Exp % +.\" %FreeBSD: src/lib/libc/sys/ptrace.2,v 1.36 2004/07/12 04:43:58 marcel Exp % .\" %NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. .\" $FreeBSD$ .Dd August 11, 2003 .Dt PTRACE 2 .Os .Sh 名称 .Nm ptrace .Nd プロセスのトレースとデバッグ .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/ptrace.h .Ft int .Fn ptrace "int request" "pid_t pid" "caddr_t addr" "int data" .Sh 解説 .Fn ptrace システムコールはトレースとデバッグの機能を提供します。 これによって 1 つのプロセス .\".Em tracing (トレースするプロセス) が他のプロセス .\".Em traced (トレースされるプロセス) を制御できます。 トレースするプロセスは、最初にトレースされるプロセスにアタッチ しなければなりません。 それから、そのプロセスの実行を制御するために .Fn ptrace システムコールを発行します。 プロセスのメモリおよびレジスタ状態へのアクセスも同様です。 トレースするセッションの期間中、トレースされるプロセスは -その親プロセス ID が (その結果の挙動として) トレースするプロセスに -"親を変更" されます。 +その親プロセス ID が (その結果の動作として) トレースするプロセスに +.Dq 親を変更 +されます。 トレースするプロセスが同時に 1 つ以上のプロセスをアタッチすることは、 許可されます。 トレースするプロセスがその作業を完了したときには、そのトレースされる プロセスをデタッチしなければなりません。 トレースするプロセスが最初にアタッチされている全てのプロセスをデタッチ せずに exit した場合には、それらのプロセスは kill されます。 .Pp ほとんどの場合、トレースされるプロセスは正常に実行されます。 ただし、トレースされるプロセスはシグナル .Xr ( sigaction 2 を参照) を受信すると停止します。 トレースするプロセスは、 .Xr wait 2 または .Dv SIGCHLD シグナルによってこれを検知し、停止されたプロセスの状態を調査して、 それを終了させるか、または適切な形で実行を継続させます。 そのシグナルは、トレースされるプロセスの動作の結果として生成されたか、 .Xr kill 2 システムコールの使用による、通常のプロセスのシグナルかもしれません。 もしくは、アタッチ、システムコール、 またはトレースするプロセスによるステップの結果、 トレースする仕組みによって生成されたものかもしれません。 トレースしているプロセスは、そのシグナルを使用してプロセスの動作を観測する ために .Dv ( SIGTRAP の様に) そのシグナルを横取りするか、もし適切であればそのシグナルを そのプロセスに転送するかを、選択できます。 .Fn ptrace システムコールは、これらすべてを制御するメカニズムです。 .Pp .Fa request 引数は、どの操作を実行するかを指定します。 残りの引数の意味は操作によって異なります。 後述する 1 つの特殊なケースを除いて、 .Fn ptrace 呼び出しはすべてトレースするプロセスによって行われ、 .Fa pid 引数はトレースされるプロセスのプロセス ID を指定します。 .Fa request 引数は次のものにできます。 .Bl -tag -width 12n .It Dv PT_TRACE_ME この要求は、トレースされるプロセスが使用する唯一の要求です。 この要求は、プロセスがその親によってトレースされることを宣言します。 他の引数はすべて無視されます (親プロセスが子プロセスをトレースしない場合は、 かなり混乱した結果になります。 トレースされるプロセスが停止すると、このプロセスは、 .Fn ptrace によってしか実行を継続できません)。 プロセスがこの要求を使用し、 .Xr execve 2 またはそれに組み込まれているルーチン (たとえば、 .Xr execv 3 ) を呼び出した場合、 そのプロセスは新しいイメージの最初の命令を実行する前に停止します。 また、実行される実行可能モジュールの setuid または setgid ビットは無視されます。 .It Dv PT_READ_I , Dv PT_READ_D これらの要求は、トレースされるプロセスのアドレス空間から 1 つの .Vt int データを読み取ります。 従来、 .Fn ptrace は命令とデータについて区別されたアドレス空間のある マシンを許容していました。 これが 2 つの要求がある理由です。 概念的には、 .Dv PT_READ_I が命令空間から読み取り、 .Dv PT_READ_D がデータ空間から読み取ります。 現在の .Fx システムでは、これらの 2 つの要求は完全に同一です。 .Fa addr 引数が、読取りが行われる (トレースされるプロセスの仮想アドレス空間内の) アドレスを指定します。 このアドレスはどのような境界調整制約も満たす必要はありません。 読み取られた値は .Eo \& .Fn ptrace .Ec からの戻り値として返されます。 .It Dv PT_WRITE_I , Dv PT_WRITE_D これらの要求は .Dv PT_READ_I および .Dv PT_READ_D と同様ですが、読み取るのではなく書き込むところが異なります。 .Fa data 引数で書き込まれる値を指定します。 .It Dv PT_IO この要求によって、トレースされるプロセスのアドレス空間内にある 任意量のデータの読取りと書込みが有効となります。 .Fa addr 引数は、以下のように定義される .Vt "struct ptrace_io_desc" へのポインタを指定します。 .Bd -literal struct ptrace_io_desc { int piod_op; /* I/O 操作 */ void *piod_offs; /* 子オフセット */ void *piod_addr; /* 親オフセット */ size_t piod_len; /* 要求の長さ */ }; /* * piod_op で指定される操作 */ #define PIOD_READ_D 1 /* データ空間からの読取り */ #define PIOD_WRITE_D 2 /* データ空間への書込み */ #define PIOD_READ_I 3 /* 命令空間からの読取り */ #define PIOD_WRITE_I 4 /* 命令空間への書込み */ .Ed .Pp .Fa data 引数は無視されます。 実際に読み書きされたバイト数は、上記の .Va piod_len に入れられ返されます。 .It Dv PT_CONTINUE トレースされるプロセスは実行を継続します。 .Fa addr 引数は、実行が再開される場所 (プログラムカウンタの新しい値)、 または実行が停止されたところで再開されることを示す .Po Vt caddr_t Pc Ns 1 を指定します。 .Fa data 引数には、トレースされるプロセスが実行を再開するときに受信するシグナル番号、 またはシグナルを送信しない場合には 0 を指定します。 .It Dv PT_STEP トレースされるプロセスは 1 命令ずつステップ実行されます。 .Fa addr 引数には .Po Vt caddr_t Pc Ns 1 を渡す必要があります。 .Fa data には実行の再開のために、トレースされたプロセスへ配信されるべきシグナルの数を 与えます。 または、送られるべきシグナルが無い場合には 0 を与えます。 .It Dv PT_KILL トレースされるプロセスは、あたかも .Dv SIGKILL を配信シグナルとして .Dv PT_CONTINUE が使用されたかのように、終了します。 .It Dv PT_ATTACH この要求は、他の無関係なプロセスの制御を取得し、 そのトレースを開始します。 トレースされるプロセスからの協力は必要としません。 このケースでは、 .Fa pid にトレースされるプロセスのプロセス ID を指定し、 他の 2 つの引数は無視されます。 この要求では、ターゲットプロセスがトレースする プロセスと同じ実 UID を持つこと、 それが setuid または setgid された実行可能モジュールでないことが 要求されます (トレースするプロセスが root として実行されている場合、 これらの制約は適用されません)。 トレースするプロセスは、新たにトレースされるプロセスを停止させ、 あたかも最初からずっとトレースしていたかのように制御できます。 .It Dv PT_DETACH この要求は PT_CONTINUE と類似していますが、実行を継続する別の場所を 指定できないこと、および要求が成功した後、 トレースされていたプロセスはもはやトレースされず、 通常どおり実行を継続することが異なります。 .It Dv PT_GETREGS この要求は、トレースされるプロセスのマシンレジスタを、 .Fa addr が指す .Do .Vt "struct reg" .Dc .Pf ( Aq Pa machine/reg.h 内に定義されています) 内に読み取ります。 .It Dv PT_SETREGS この要求は .Dv PT_GETREGS の逆です。 .Fa addr が指す .Do .Vt "struct reg" .Dc .In ( machine/reg.h 内に定義されています) からトレースされるプロセスのマシンレジスタをロードします。 .It Dv PT_GETFPREGS この要求はトレースされるプロセスの浮動小数点レジスタを .Fa addr が指す .Do .Vt "struct fpreg" .Dc .In ( machine/reg.h に定義されています) に読み取ります。 .It Dv PT_SETFPREGS この要求は .Dv PT_GETFPREGS の反対です。 .Fa addr が指す .Dq Li "struct fpreg" .In ( machine/reg.h 内に定義されています) からトレースされるプロセスの浮動小数点レジスタをロードします。 .It Dv PT_GETDBREGS この要求はトレースされるプロセスのデバッグレジスタを .Fa addr が指す .Do .Vt "struct dbreg" .Dc .In ( machine/reg.h 内に定義されています) に読み取ります。 .It Dv PT_SETDBREGS この要求は .Dv PT_GETDBREGS の反対です。 .Fa addr の指す .Do .Vt "struct dbreg" .Dc .In ( machine/reg.h 内に定義されています) からトレースされるプロセスのデバッグレジスタにロードします。 +.It Dv PT_LWPINFO +この要求は、トレースされるプロセスが停止する原因となった +(軽量プロセスとしても知られる) カーネルスレッドについての情報を +獲得するために使用されます。 +.Fa addr +引数は以下のように定義される +.Vt "struct ptrace_lwpinfo" +へのポインタを指定します: +.Bd -literal +struct ptrace_lwpinfo { + lwpid_t pl_lwpid; /* LWP 識別子 */ + int pl_event; /* 受け取ったイベント */ +}; +.Ed +.Pp +.Fa data +引数は、呼び出し側に知られている構造体の大きさに設定されます。 +これにより、古いプログラムに影響を与えること無しに、 +この構造体を大きくすることができます。 .El .Pp さらにマシン固有の要求が存在することがあります。 .Sh 戻り値 いくつかの要求で .Fn ptrace はエラー以外の場合にも \-1 を返します。 曖昧さをなくすためには、呼び出しの前に .Va errno を 0 に設定し、後でチェックします。 .Sh エラー .Fn ptrace システムコールは次の場合に処理に失敗します。 .Bl -tag -width Er .It Bq Er ESRCH .Bl -bullet -compact .It 指定されたプロセス ID を持つプロセスが存在しません。 .El .It Bq Er EINVAL .Bl -bullet -compact .It プロセスが自分自身に対して .Dv PT_ATTACH を使おうとしました。 .It .Fa request 引数が正しい要求の 1 つではありませんでした。 .It .Dv PT_CONTINUE へのシグナル番号 .Fa ( data ) が 0 でないか、または正しいシグナル番号ではありませんでした。 .It .Dv PT_GETREGS , .Dv PT_SETREGS , .Dv PT_GETFPREGS , .Dv PT_SETFPREGS , .Dv PT_GETDBREGS または .Dv PT_SETDBREGS が、有効なレジスタセットを設定せずに使用されました (これが真になるのは、通常、システムプロセスについてのみです)。 .El .It Bq Er EBUSY .Bl -bullet -compact .It .Dv PT_ATTACH が既にトレース中のプロセスについて使用されました。 .It 要求をしているプロセス以外のプロセスによって、トレースされるプロセスを 操作しようとする要求が試みられました。 .It 要求 .Dv ( PT_ATTACH 以外の) が停止されていないプロセスを指定しました。 .El .It Bq Er EPERM .Bl -bullet -compact .It 要求 .Dv ( PT_ATTACH 以外の) が、まったくトレースされていないプロセスを操作しようとしました。 .It 前述の .Dv PT_ATTACH で説明した条件を満たさないプロセスについて .Dv PT_ATTACH を使おうとしました。 .El .El .Sh 関連項目 .Xr execve 2 , .Xr sigaction 2 , .Xr wait 2 , .Xr execv 3 , .Xr i386_clr_watch 3 , .Xr i386_set_watch 3 .Sh 歴史 .Fn ptrace 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/read.2 b/ja_JP.eucJP/man/man2/read.2 index 2f8fc6aac4..58270a93cf 100644 --- a/ja_JP.eucJP/man/man2/read.2 +++ b/ja_JP.eucJP/man/man2/read.2 @@ -1,230 +1,232 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)read.2 8.4 (Berkeley) 2/26/94 -.\" %FreeBSD: src/lib/libc/sys/read.2,v 1.22 2004/01/25 06:24:08 ache Exp % +.\" %FreeBSD: src/lib/libc/sys/read.2,v 1.25 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd February 26, 1994 .Dt READ 2 .Os .Sh 名称 .Nm read , .Nm readv , .Nm pread .Nd 入力を読み取る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/uio.h .In unistd.h .Ft ssize_t .Fn read "int d" "void *buf" "size_t nbytes" .Ft ssize_t .Fn readv "int d" "const struct iovec *iov" "int iovcnt" .Ft ssize_t .Fn pread "int d" "void *buf" "size_t nbytes" "off_t offset" .Sh 解説 .Fn read システムコールは、記述子 .Fa d で参照されたオブジェクトから .Fa buf が指すバッファへ .Fa nbytes のデータを読み取ろうとします。 .Fn readv システムコールは同様の処理を実行しますが、配列 .Fa iov : iov[0], iov[1], ..., iov[iovcnt\|\-\|1] のメンバで指定される .Fa iovcnt 個のバッファに入力データを分散させます。 .Fn pread システムコールは同様の機能を実行しますが、 ファイル内の指定の位置から読み取った後、 ファイルポインタを変更しません。 .Pp .Fn readv に対する .Fa iovec 構造体は次のように定義されます: .Pp .Bd -literal -offset indent -compact struct iovec { void *iov_base; /* ベースアドレス */ size_t iov_len; /* 長さ */ }; .Ed .Pp .Fa iovec の各エントリは、データを配置するべきメモリ領域のベースアドレスと 長さを指定しています。 .Fn readv システムコールは、次のエントリに進む前に必ず領域を完全に満たします。 .Pp シーク可能なオブジェクト上では .Fn read は .Fa d に結び付けられたポインタが指定する位置から開始します .Pf ( Xr lseek 2 を参照)。 .Fn read からの戻り時に、ポインタは実際に読み取られたバイト数だけ増加させられます。 .Pp シークできないオブジェクトは必ず現在の位置から読み取られます。 そのようなオブジェクトに結び付けられたポインタの値は未定義です。 .Pp 処理が成功すると、 .Fn read , .Fn readv および .Fn pread は、実際に読み取られバッファ内に配置されたバイト数を返します。 記述子が通常ファイルを参照しており、 ファイルの終端までに十分な量のバイトがあれば、 システムは要求されたバイト数を読み取ることを保証しますが、 他のケースではそうではありません。 .Sh 戻り値 正常に完了すると、実際に読み取られたバイト数が返されます。 ファイル終了 (EOF) が読み取られると 0 が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn read , .Fn readv および .Fn pread システムコールは次の場合を除いて正常に完了します: .Bl -tag -width Er .It Bq Er EBADF .Fa d 引数は読取り用にオープンされた有効なファイルまたは ソケットの記述子ではありません。 .It Bq Er EFAULT .Fa buf 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムから読み取っている間に入出力エラーが発生しました。 .It Bq Er EINTR データが到着する前に、シグナルの配送により低速デバイスからの読取りが 割り込まれました。 .It Bq Er EINVAL .Fa d に結び付けられたポインタが負でした。 .It Bq Er EAGAIN ファイルは非ブロッキング入出力とマークされており、 読取りの準備ができたデータがありません。 .It Bq Er EISDIR ファイル記述子が、ディレクトリ上での普通の読み込み操作を許可していない ファイルシステム (例えば NFS) に属しているディレクトリに 関連付けられています。 .It Bq Er EOPNOTSUPP ファイル記述子が、普通の読み込み操作を許可していないファイルシステムおよび ファイルタイプに関連付けられています。 .It Bq Er EOVERFLOW ファイル記述子が普通のファイルに関連付けられていて、 .Fa nbytes が 0 よりも大きく、 .Fa offset がファイルの末尾の前にあり、かつ .Fa offset がこのファイルシステムに収まるオフセットの最大値以上です。 .El .Pp さらに、 .Fn readv は次のエラーのうちの 1 つを返すことがあります: .Bl -tag -width Er .It Bq Er EINVAL .Fa iovcnt -引数が 0 以下であるか、または 16 より大きくなっています。 +引数が 0 以下であるか、または +.Dv IOV_MAX +より大きくなっています。 .It Bq Er EINVAL .Fa iov 配列の中の .Fa iov_len 値の 1 つが負でした。 .It Bq Er EINVAL .Fa iov 配列の中の .Fa iov_len 値の合計が 32 ビット整数をオーバフローしました。 .It Bq Er EFAULT .Fa iov の一部が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp .Fn pread システムコールは次のエラーを返すこともあります: .Bl -tag -width Er .It Bq Er EINVAL 指定のファイルオフセットが有効ではありません。 .It Bq Er ESPIPE ファイル記述子がパイプ、ソケット、または FIFO に結び付けられています。 .El .Sh 関連項目 .Xr dup 2 , .Xr fcntl 2 , .Xr getdirentries 2 , .Xr open 2 , .Xr pipe 2 , .Xr select 2 , .Xr socket 2 , .Xr socketpair 2 , .Xr fread 3 , .Xr readdir 3 .Sh 規格 .Fn read システムコールは .St -p1003.1-90 に適合しています。 .Fn readv システムコールと .Fn pread システムコールは .St -xpg4.2 に適合しています。 .Sh 歴史 .Fn pread 関数は .At V.4 で登場しました。 .Fn readv システムコールは .Bx 4.2 で登場しました。 .Fn read 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/recv.2 b/ja_JP.eucJP/man/man2/recv.2 index 17dabe3355..e476b7e32d 100644 --- a/ja_JP.eucJP/man/man2/recv.2 +++ b/ja_JP.eucJP/man/man2/recv.2 @@ -1,290 +1,299 @@ .\" 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.20 2003/12/24 18:52:41 alfred Exp % +.\" %FreeBSD: src/lib/libc/sys/recv.2,v 1.21 2004/07/16 17:15:37 harti Exp % .\" .\" $FreeBSD$ .Dd February 21, 1994 .Dt RECV 2 .Os .Sh 名称 .Nm recv , .Nm recvfrom , .Nm recvmsg .Nd ソケットからメッセージを受信する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft ssize_t .Fn recv "int s" "void *buf" "size_t len" "int flags" .Ft ssize_t .Fn recvfrom "int s" "void * restrict buf" "size_t len" "int flags" "struct sockaddr * restrict from" "socklen_t * restrict fromlen" .Ft ssize_t .Fn recvmsg "int s" "struct msghdr *msg" "int flags" .Sh 解説 .Fn recvfrom と .Fn recvmsg システムコールは、ソケットからのメッセージを受信するのに使用されます。 ソケットが接続指向であるかどうかにかかわらず、ソケット上のデータを 受信するのに使用できます。 .Pp .Fa from が nil でなく、ソケットが接続指向でない場合、 ここにはメッセージのソースアドレスが保存されます。 .Fa fromlen 引数は値と結果の引数であり、 .Fa from に対応するバッファのサイズに初期化され、 戻り時には保存されたアドレスの実際のサイズを示すように変更されます。 .Pp .Fn recv システムコールは、通常 .Em 接続された ソケット上だけで使用され .Pf ( Xr connect 2 を参照)、 .Fa from 引数に nil を指定した .Fn recvfrom と同一です。 これは冗長なので、将来のリリースではサポートされない可能性があります。 .Pp これら 3 つのルーチンは正常に完了するとメッセージの長さを返します。 メッセージが長すぎて指定のバッファに収まらない場合、 メッセージを受信したソケットのタイプによっては 超過分のバイトが破棄されることがあります .Pf ( Xr socket 2 を参照)。 .Pp ソケットにメッセージが無い場合は、ソケットが非ブロッキング .Pf ( Xr fcntl 2 を参照) の場合を除き、呼び出しはメッセージが到着するのを待ちます。 ソケットが非ブロッキングの場合、値 -1 が返され、外部変数 .Va errno が .Er EAGAIN に設定されます。 通常、受信呼び出しは要求された量を受信するまで待たずに、 要求された量を上限として得られたデータを返します。 この動作は、 .Xr getsockopt 2 で解説されているソケットレベルのオプション .Dv SO_RCVLOWAT および .Dv SO_RCVTIMEO によって影響を受けます。 .Pp 次のデータがいつ到着するかを判定するには .Xr select 2 システムコールを使うことができます。 .Pp recv 関数への .Fa flags 引数は、次の値の 1 つまたは複数の論理和 .\".Em or Ap ing .Em ( or ) から成ります: -.Bl -column MSG_WAITALL -offset indent +.Bl -column MSG_DONTWAIT -offset indent .It Dv MSG_OOB Ta プロセス帯域外データ .It Dv MSG_PEEK Ta 着信メッセージの覗き見 (peek) .It Dv MSG_WAITALL Ta 要求の完全な実行、またはエラーを待つ +.It Dv MSG_DONTWAIT Ta ブロックしない .El .Pp .Dv MSG_OOB フラグは帯域外データの受信を要求し、 通常のデータストリームからは受信しません。 急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、 このフラグはそのようなプロトコルでは使用できません。 MSG_PEEK フラグは受信待ち行列の先頭からデータを除去することなく、 そのデータを返します。 したがって、後続の受信呼び出しは同じデータを返します。 MSG_WAITALL フラグは要求が完全に満たされるまでブロックするように要求します。 しかし、シグナルが捕捉された場合、エラーまたは切断が発生した場合、 または受信する次のデータが返されたタイプと異なる 場合、呼び出しは要求されたより少ないデータを返す可能性があります。 +MSG_DONTWAIT フラグは、フラグが指定されてなかったらブロックするような時に、 +戻ることを要求します。 +利用可能なデータが無い場合には、 +.Va errno +が +.Er EAGAIN +に設定されます。 +このフラグは、厳格な ANSI または C99 のコンパイルモードでは利用できません。 .Pp .Fn recvmsg システムコールは、直接に指定される引数の数を最小にするために .Fa msghdr 構造体を使用します。 この構造体は .In sys/socket.h で定義されているように、次の形式になっています: .Pp .Bd -literal struct msghdr { caddr_t msg_name; /* アドレス(オプション) */ u_int msg_namelen; /* アドレスのサイズ */ struct iovec *msg_iov; /* スキャッタ / ギャザー配列 */ u_int msg_iovlen; /* msg_iov の要素数 */ caddr_t msg_control; /* 補助データ、後述 */ u_int msg_controllen; /* 補助データのバッファ長 */ int msg_flags; /* 受信されたメッセージ上のフラグ */ }; .Ed .Pp ここで .Fa msg_name と .Fa msg_namelen は、ソケットが接続されていない場合に、宛先アドレスを指定します。 名前を要求しない場合や必要でない場合、 .Fa msg_name は NULL ポインタとして指定できます。 .Fa msg_iov と .Fa msg_iovlen 引数は .Xr read 2 で説明されているようにスキャッタ / ギャザーの場所を記述します。 .Fa msg_control 引数は、長さが .Fa msg_controllen の、他のプロトコル制御に関連するメッセージまたはその他の 各種補助データ用のバッファを指しています。 メッセージは次の形式です: .Bd -literal struct cmsghdr { u_int cmsg_len; /* データバイトカウント、hdr を含む */ int cmsg_level; /* メッセージを生成したプロトコル */ int cmsg_type; /* プロトコルに固有のタイプ */ /* u_char cmsg_data[]; が後に続く */ }; .Pp .Ed たとえば、これを使用して XNS/SPP において データストリームの変化を知ることができます。 また、ISO において .Fn accept システムコールの直後に、データバッファを伴わずに recvmsg を要求して、 ユーザ接続要求データを得ることができるでしょう。 .Pp オープンファイル記述子はこれで .Dv AF_UNIX ドメインソケット用の補助データとして引き渡され、その際、 .Fa cmsg_level が .Dv SOL_SOCKET に設定され、 .Fa cmsg_type が .Dv SCM_RIGHTS に設定されます。 .Pp .Dv SCM_CREDS の .Fa cmsg_type を使用して、プロセスの認証情報を .Dv AF_UNIX ドメインソケット用の補助データとして 渡すこともできます。 このケースでは、 .Fa cmsg_data は、構造体 .Fa cmsgcred である必要があります。 これは次のように .In sys/socket.h 内で定義されています: .Pp .Bd -literal struct cmsgcred { pid_t cmcred_pid; /* 送信プロセスの PID */ uid_t cmcred_uid; /* 送信プロセスの実 UID */ uid_t cmcred_euid; /* 送信プロセスの実効 UID */ gid_t cmcred_gid; /* 送信プロセスの実 GID */ short cmcred_ngroups; /* グループの数 */ gid_t cmcred_groups[CMGROUP_MAX]; /* グループ */ }; .Ed .Pp カーネルは送信プロセスの認証情報を記入し、それを受信側へ配信します。 .Pp .Fa msg_flags フィールドは受信済みメッセージに従って戻り時に設定されます。 .Dv MSG_EOR は end-of-record、つまり返されたデータでレコードが 完結していることを示します (一般には、タイプ .Dv SOCK_SEQPACKET のソケットとともに使用されます)。 .Dv MSG_TRUNC は、提供されたバッファよりデータグラムが大きかったので、 データグラムの後ろの部分が切り捨てられたことを示します。 .Dv MSG_CTRUNC は、補助データ用のバッファ内の空間の不足のためにいくらかの制御データが 切り捨てられたことを示します。 .Dv MSG_OOB は、急送または帯域外データが受信されたことを示します。 .Sh 戻り値 これらの呼び出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。 .Sh エラー 呼び出しは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EBADF 引数 .Fa s が有効な記述子ではありません。 .It Bq Er ENOTCONN ソケットは接続指向プロトコルと結び付けられていますが、接続されていません .Pf ( Xr connect 2 と .Xr accept 2 を参照)。 .It Bq Er ENOTSOCK 引数 .Fa s はソケットを参照していません。 .It Bq Er EAGAIN ソケットが非ブロッキングとマークされているとき、 受信操作でブロックしました。 あるいは、受信タイムアウトが設定されていて、 データが受信される前にタイムアウトになりました。 .It Bq Er EINTR データが受信可能になる前に、受信がシグナルによって割込まれました。 .It Bq Er EFAULT 受信バッファポインタが、プロセスに割り当てられたアドレス空間の 範囲外を指しています。 .El .Sh 関連項目 .Xr fcntl 2 , .Xr getsockopt 2 , .Xr read 2 , .Xr select 2 , .Xr socket 2 .Sh 歴史 .Fn recv 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/rename.2 b/ja_JP.eucJP/man/man2/rename.2 index 0baf3764c7..b58b645366 100644 --- a/ja_JP.eucJP/man/man2/rename.2 +++ b/ja_JP.eucJP/man/man2/rename.2 @@ -1,190 +1,190 @@ .\" 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. .\" .\" @(#)rename.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/rename.2,v 1.21 2002/12/23 16:04:50 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/rename.2,v 1.22 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt RENAME 2 .Os .Sh 名称 .Nm rename .Nd ファイル名を変更する .Sh ライブラリ .Lb libc .Sh 書式 .In stdio.h .Ft int .Fn rename "const char *from" "const char *to" .Sh 解説 .Fn rename システムコールによって .Fa from と名づけられたリンクを .Fa to に変更します。 .Fa to がすでに存在する場合は、先にこれを削除します。 .Fa from と .Fa to は同じタイプでなければならず (両方とも ディレクトリであるか、両方ともディレクトリではないか)、 同じファイルシステム上に存在している必要があります。 .Pp .Fa to が既に存在する場合には、操作の途中でシステムがクラッシュしたとしても、 .Fn rename システムコールは .Fa to のインスタンスが必ず存在することを保証します。 .Pp .Fa from の最後の構成要素がシンボリックリンクの場合、それが指している ファイルまたはディレクトリではなく、 そのシンボリックリンクの名前が変更されます。 .\".Sh CAVEAT .\"The system can deadlock if a loop in the file system graph is present. .\"This loop takes the form of an entry in directory .\".Pa a , .\"say .\".Pa a/foo , .\"being a hard link to directory .\".Pa b , .\"and an entry in .\"directory .\".Pa b , .\"say .\".Pa b/bar , .\"being a hard link .\"to directory .\".Pa a . .\"When such a loop exists and two separate processes attempt to .\"perform .\".Ql rename a/foo b/bar .\"and .\".Ql rename b/bar a/foo , .\"respectively, .\"the system may deadlock attempting to lock .\"both directories for modification. .\"Hard links to directories should be .\"replaced by symbolic links by the system administrator. .Sh 戻り値 .Rv -std rename .Sh エラー .Fn rename システムコールは次の場合に失敗し、いずれの引数ファイルも影響を受けません: .Bl -tag -width Er .It Bq Er ENAMETOOLONG いずれかのパス名の構成要素が 255 文字を越えているか、またはいずれかの パス名全体の長さが 1023 文字を越えています。 .It Bq Er ENOENT .Fa from パスの構成要素が存在しないか、または .Fa to の前置パス名が存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er EACCES 指定されたリンクは、書込みが許可されていない ディレクトリへの書込みを要求しています。 .It Bq Er EPERM .Fa from ファイルを含むディレクトリにスティッキビットが設定されており、 そのディレクトリと .Fa from のどちらの所有者も実効ユーザ ID とは異なっています。 .It Bq Er EPERM .Fa to 引数によって指されるファイルが存在し、かつ .Fa to を含んでいるディレクトリにスティッキビットが設定されており、 そのディレクトリと .Fa to ファイルのどちらの所有者も実効ユーザ ID とは異なっています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENOTDIR .Fa from 引数はディレクトリですが、 .Fa to はディレクトリではありません。 .It Bq Er EISDIR .Fa to 引数はディレクトリですが、 .Fa from はディレクトリではありません。 .It Bq Er EXDEV .Fa to によって指定されたリンク、および .Fa from によって指定されたファイルが 異なる論理デバイス (ファイルシステム) 上にあります。 実装がクロスデバイスリンクを許容する場合、このエラーコードは 返らないことに注意してください。 .It Bq Er ENOSPC ディレクトリを格納しているファイルシステム上の空間が枯渇したため、 新しい名前のためのエントリを置くディレクトリを拡張できません。 .It Bq Er EDQUOT ディレクトリを格納しているファイルシステム上のディスクブロックのユーザの クォータが枯渇したため、 新しい名前のためのエントリを置くディレクトリを拡張できません。 .It Bq Er EIO ディレクトリエントリを作成または更新している間に入出力エラーが発生しました。 .It Bq Er EROFS 指定されたリンクは、読取り専用ファイルシステム上のディレクトリへの 書込みを要求しています。 .It Bq Er EFAULT path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINVAL .Fa from 引数が .Fa to の親ディレクトリであるか、 .Ql .\& または .Ql \&.. に名前を変更しようとしました。 .It Bq Er ENOTEMPTY .Fa to 引数はディレクトリであり、空ではありません。 .El .Sh 関連項目 .Xr open 2 , .Xr symlink 7 .Sh 規格 .Fn rename システムコールは .St -p1003.1-96 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/rfork.2 b/ja_JP.eucJP/man/man2/rfork.2 index 959b064fd3..f38a44173e 100644 --- a/ja_JP.eucJP/man/man2/rfork.2 +++ b/ja_JP.eucJP/man/man2/rfork.2 @@ -1,169 +1,169 @@ .\" .\" 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.31 2003/04/27 21:01:34 robert Exp % +.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.32 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd January 31, 2003 .Dt RFORK 2 .Os .Sh 名称 .Nm rfork .Nd プロセスリソースの操作 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft pid_t .Fn rfork "int flags" .Sh 解説 fork, vfork, rfork は、新しいプロセスが作成される唯一の方法です。 .Fn rfork への引数 .Fa flags は、起動しているプロセス (親) のどのリソースが新しいプロセス (子) に よって共有されるか、またはそれらのデフォルト値に初期化されるかを選択します。 リソースにはオープンファイル記述子テーブル (これは、共有される場合、 プロセスが他のプロセスについてファイルを開閉することを 許容します) およびオープンファイルが含まれます。 .Fa flags 引数は次の項目の論理和 (OR) です: .Bl -tag -width ".Dv RFLINUXTHPN" .It Dv RFPROC 設定されている場合、新しいプロセスが作成されます。 そうでない場合、変更が現在のプロセスに影響を及ぼします。 .It Dv RFNOWAIT 設定されている場合、子プロセスは親プロセスから分離されます。 終了時に、子プロセスは、親プロセスが集めるステータスを残しません。 .Xr wait 2 を参照してください。 .It Dv RFFDG 設定されている場合、起動側のファイル記述子テーブル .Xr ( intro 2 を参照) がコピーされます。 そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。 .It Dv RFCFDG 設定されている場合、新しいプロセスは新しいファイル記述子テーブルを持って 開始します。 .Dv RFFDG とは互いに排他的です。 .It Dv RFMEM 設定されている場合、 通常、ハードウェアのページテーブルを直接共有することで、 カーネルはアドレス空間全体を強制的に共有します。 子は、このような方法で、親プロセスが所有しているすべてのセグメントを、 それが普段共有可能であるか否かに関係なく、継承し共有します。 スタックセグメントは分割されない (親と子の両方が同じスタック上に復帰する) ので、RFMEM フラグを指定した .Fn rfork は一般に、C 言語を含む高級言語から直接呼び出すことはできません。 共に設定可能なフラグは .Dv RFPROC だけです。 この問題を解決し、提供されたスタック上で新しいプロセスを 走らせるために補助関数が提供されています。 詳しくは .Xr rfork_thread 3 を参照してください。 .It Dv RFSIGSHARE 設定されている場合、カーネルは、親子間で sigacts 構造体を強制的に共有します。 .It Dv 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 によって指定されます (スーパユーザを除いて、制限は実際には これより 10 個少なくなります)。 .It Bq Er EAGAIN ユーザがスーパユーザではなく、1 人のユーザによる実行中の プロセスの合計数がシステムの課した制限を超過してしまいます。 制限は、 .Xr sysctl 3 MIB 変数 .Dv KERN_MAXPROCPERUID によって指定されます。 .It Bq Er EAGAIN ユーザがスーパユーザではなく、 .Fa resource 引数 .Dv RLIMIT_NOFILE に対応するソフトリソースの制限を超過してしまいます .Pf ( Xr getrlimit 2 を参照)。 .It Bq Er EINVAL RFFDG フラグと RFCFDG フラグの両方が指定されました。 .It Bq Er EINVAL これまでに列挙されていないフラグが指定されました。 .It Bq Er ENOMEM 新しいプロセス用に十分なスワップ空間が不足しました。 .El .Sh 関連項目 .Xr fork 2 , .Xr intro 2 , .Xr minherit 2 , .Xr vfork 2 , .Xr rfork_thread 3 .Sh バグ .Fx では、ネイティブな .Fn clone ライブラリコールは未だに実装されていませんし、 現在の pthreads 実装は RFMEM を指定した .Fn rfork を利用していません。 linux スレッドライブラリのネイティブポートである、 .Pa /usr/ports/devel/linuxthreads は RFMEM を利用して動作する .Fn clone 呼び出しを含んでいます。 .Xr rfork_thread 3 関数は .Fn clone の代わりとして利用することができます。 .Sh 歴史 .Fn rfork 関数は Plan9 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/sched_get_priority_max.2 b/ja_JP.eucJP/man/man2/sched_get_priority_max.2 index 9d9a434f4a..5a5c21205a 100644 --- a/ja_JP.eucJP/man/man2/sched_get_priority_max.2 +++ b/ja_JP.eucJP/man/man2/sched_get_priority_max.2 @@ -1,120 +1,120 @@ .\" Copyright (c) 1998 HD Associates, Inc. .\" 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/sched_get_priority_max.2,v 1.18 2001/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/sched_get_priority_max.2,v 1.19 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd March 12, 1998 .Dt SCHED_GET_PRIORITY_MAX 2 .Os .Sh 名称 .Nm sched_get_priority_max , .Nm sched_get_priority_min , .Nm sched_rr_get_interval .Nd スケジュールパラメータの上限 / 下限を取得する .Sh ライブラリ .Lb libc .Sh 書式 .In sched.h .Ft int .Fn sched_get_priority_max "int policy" .Ft int .Fn sched_get_priority_min "int policy" .Ft int .Fn sched_rr_get_interval "pid_t pid" "struct timespec *interval" .Sh 解説 .Fn sched_get_priority_max システムコールと .Fn sched_get_priority_min システムコールは、 .Fa policy で指定されたスケジューリング方針について、 それぞれ該当する最大と最小を返します。 .Fn sched_rr_get_interval システムコールは、 .Fa interval 引数によって参照される .Fa timespec 構造体を、 .Fa pid で指定されるプロセスについて 現在の実行時間制限 (すなわち、時間量) が含まれるように更新します。 .Fa pid が 0 の場合、呼び出し元プロセスに関する現在の実行時間制限が返されます。 .Pp .Fa policy の値は .Fa で定義されたスケジュール方針の 1 つにする必要があります: .Bl -tag -width [SCHED_OTHER] .It Bq Er SCHED_FIFO ラウンドロビンスケジュールなしの先入先出 (FIFO) 固定優先順位スケジュール。 .It Bq Er SCHED_OTHER 標準のタイムシェアリングスケジューラ。 .It Bq Er SCHED_RR 同じ優先順位のプロセス間でのラウンドロビンスケジューリング。 .El .Sh 戻り値 .Fn sched_get_priority_max システムコールと .Fn sched_get_priority_min システムコールは、正常に完了するとそれぞれ該当する最大値または最小値を返します。 そうでない場合、どちらの関数も -1 が返され、エラーを示すために .Fa errno が設定されます。 .Pp .Rv -std sched_rr_get_interval .Sh エラー 処理を失敗すると、 .Va errno は対応する値に設定されます: .Bl -tag -width Er .It Bq Er EINVAL .Fa policy 引数の値が定義されているスケジュール方針ではありません。 .It Bq Er ENOSYS .Fn sched_get_priority_max システムコール、 .Fn sched_get_priority_min システムコール、そして .Fn sched_rr_get_interval システムコールは、この実装ではサポートされていません。 .It Bq Er ESRCH .Fa pid で指定されるプロセスに対応するプロセスが見つかりません。 .El .Sh 関連項目 .Xr sched_getparam 2 , .Xr sched_getscheduler 2 , .Xr sched_setparam 2 , .Xr sched_setscheduler 2 .Sh 規格 .Fn sched_get_priority_max システムコール、 .Fn sched_get_priority_min システムコール、それから .Fn sched_rr_get_interval システムコールは .St -p1003.1b-93 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/sched_setparam.2 b/ja_JP.eucJP/man/man2/sched_setparam.2 index 5b124f7bb5..341397d072 100644 --- a/ja_JP.eucJP/man/man2/sched_setparam.2 +++ b/ja_JP.eucJP/man/man2/sched_setparam.2 @@ -1,174 +1,174 @@ -.\" %FreeBSD: src/lib/libc/sys/sched_setparam.2,v 1.15 2003/06/08 10:08:58 charnier Exp % +.\" %FreeBSD: src/lib/libc/sys/sched_setparam.2,v 1.17 2004/07/04 20:55:48 ru Exp % .\" Copyright (c) 1998 HD Associates, Inc. .\" 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$ .Dd March 12, 1998 .Dt SCHED_SETPARAM 2 .Os .Sh 名称 .Nm sched_setparam , .Nm sched_getparam .Nd スケジュールパラメータの設定 / 取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sched.h .Ft int .Fn sched_setparam "pid_t pid" "const struct sched_param *param" .Ft int .Fn sched_getparam "pid_t pid" "struct sched_param *param" .Sh 解説 .Fn sched_setparam システムコールは、 .Fa pid で指定するプロセスのスケジュールパラメータを、 .Fa param が指す構造体 .Fa sched_param の指定する値に設定します。 構造体 .Fa param のメンバ .Fa sched_priority の値は、 .Fa pid で指定するプロセスの現在のスケジュール方針用の 優先順位範囲内 (両端含む) の整数である必要があります。 優先順位の数値が高いほど優先順位が高いことを表します。 .Pp この実装では、 .Fa pid の値が負の場合、システムコールは処理に失敗します。 .Pp .Fa pid で指定するプロセスが存在し、かつ 呼び出し元プロセスにパーミッションがある場合、 プロセス ID が .Fa pid と等しいプロセスに対してスケジュールパラメータを設定します。 .Pp .Fa pid が 0 の場合、呼び出し元プロセスに対して スケジュールパラメータを設定します。 .Pp この実装では、あるプロセスが別のプロセスのスケジュールパラメータに いつ影響を及ぼせるのかという方針は、書込みスタイル操作として .St -p1003.1b-93 に指定されているものです。 .Pp ターゲットプロセスは、実行中にせよ実行中でないにせよ、 優先順位が等しいかまたはより高い、 他のすべての実行可能なプロセスが実行されるようにスケジュールされた後で、 実行を再開します。 .Pp .Fa pid 引数で指定するプロセスの優先順位が、 最も優先順位の低い実行中のプロセスの優先順位より高く設定されており、 しかも指定のプロセスの実行準備ができている場合、 .Fa pid 引数で指定するプロセスは 優先順位が最も低い実行中のプロセスをプリエンプトします。 同じように、 .Fn sched_setparam を呼び出しているプロセスがその優先順位を、 1 つまたは複数の空でないプロセスリストの優先順位より低く設定する場合、 優先順位が最も高いリストの先頭のプロセスも 呼び出し元プロセスをプリエンプトします。 このように、いずれのケースでも、 優先順位の高いプロセスが実行されてしまうまで、 元のプロセスが要求した優先順位変更の完了通知を受信しない可能性があります。 .Pp この実装では、 .Fa pid で指定するプロセスの現在のスケジュール方針が通常のタイムシェアリング (SCHED_OTHER; POSIX ソースでない場合は SCHED_NORMAL) であるかアイドル方針 (POSIX ソースでない場合は SCHED_IDLE) であるなら、 その動作は、実在するリアルタイム優先順位よりも低い優先順位の SCHED_RR でプロセスが実行されていたかのようになります。 .Pp .Fn sched_getparam 関数は、 .Fa pid で指定するプロセスのスケジュールパラメータを .Fa param が指す .Fa sched_param 構造体に入れて返します。 .Pp .Fa pid で指定するプロセスが存在してかつ、 呼び出し元プロセスにパーミッションがある場合、 プロセス ID が .Fa pid に等しいプロセスのスケジュールパラメータを返します。 .Pp この実装では、あるプロセスが別のプロセスのスケジュールパラメータを いつ得られるかの方針は、読取りスタイル操作として .St -p1003.1b-93 に詳説されているものです。 .Pp .Fa pid が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。 この実装では、 .Fa pid が負の場合、 .Fa sched_getparam システムコールは処理に失敗します。 .Sh 戻り値 .Rv -std .Sh エラー 処理に失敗すると、 .Va errno を対応する値に設定します: .Bl -tag -width Er .It Bq Er ENOSYS システムはこの機能をサポートするように構成されていません。 .It Bq Er EPERM 要求しているプロセスは、 .St -p1003.1b-93 で詳説されているパーミッションを持っていません。 .It Bq Er ESRCH .Fa pid で指定したプロセスに対応するプロセスが見つかりません。 .It Bq Er EINVAL .Fn sched_setparam で、要求された 1 つ以上のスケジュールパラメータが、指定の .Fa pid のスケジュール方針で定義された範囲の外側にあります。 .El .Sh 関連項目 -.Xr sched_getscheduler 2 , .Xr sched_get_priority_max 2 , .Xr sched_get_priority_min 2 , +.Xr sched_getscheduler 2 , .Xr sched_rr_get_interval 2 , .Xr sched_setscheduler 2 , .Xr sched_yield 2 .Sh 規格 .Fn sched_setparam システムコールと .Fn sched_getparam システムコールは .St -p1003.1b-93 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/sched_setscheduler.2 b/ja_JP.eucJP/man/man2/sched_setscheduler.2 index ff0ff38b6c..2e2897a2ec 100644 --- a/ja_JP.eucJP/man/man2/sched_setscheduler.2 +++ b/ja_JP.eucJP/man/man2/sched_setscheduler.2 @@ -1,165 +1,165 @@ -.\" %FreeBSD: src/lib/libc/sys/sched_setscheduler.2,v 1.16 2003/06/08 10:11:13 charnier Exp % +.\" %FreeBSD: src/lib/libc/sys/sched_setscheduler.2,v 1.17 2004/07/02 23:52:13 ru Exp % .\" Copyright (c) 1998 HD Associates, Inc. .\" 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$ .Dd March 12, 1998 .Dt SCHED_SETSCHEDULER 2 .Os .Sh 名称 .Nm sched_setscheduler , .Nm sched_getscheduler .Nd スケジュール方針とスケジューラパラメータの設定 / 取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sched.h .Ft int .Fn sched_setscheduler "pid_t pid" "int policy" "const struct sched_param *param" .Ft int .Fn sched_getscheduler "pid_t pid" .Sh 解説 .Fn sched_setscheduler システムコールは、 .Fa pid で指定したプロセスのスケジュール方針とスケジュールパラメータを、それぞれ、 .Fa policy および .Fa param が指す .Vt sched_param 構造体の指定するパラメータに設定します。 .Fa param 構造体のメンバ .Fa sched_priority の値は、 .Fa policy で指定するスケジュール方針用の 優先度範囲内 (両端含む) の整数である必要があります。 .Pp この実装では、 .Fa pid の値が負である場合、システムコールは処理に失敗します。 .Pp .Fa pid で指定するプロセスが存在し、かつ呼び出し元プロセスにパーミッションがある場合、 プロセス ID が .Fa pid と等しいプロセスに対して スケジュール方針とスケジュールパラメータを設定します。 .Pp .Fa pid が 0 の場合、呼び出し元プロセスに対して スケジュール方針とスケジュールパラメータを設定します。 .Pp この実装では、あるプロセスが別のプロセスのスケジュールパラメータに いつ影響を及ぼせるのかという方針は、書込みスタイル操作として .St -p1003.1b-93 に指定されているものです。 .Pp スケジュール方針は .Fa 内にあります。 .Bl -tag -width [SCHED_OTHER] .It Bq Er SCHED_FIFO ラウンドロビンスケジュールのない、 先入先出 (FIFO) 優先順位固定スケジュール。 .It Bq Er SCHED_OTHER 標準のタイムシェアリングスケジューラ。 .It Bq Er SCHED_RR 同じ優先順位のプロセス間でのラウンドロビンスケジュール。 .El .Pp .Vt sched_param 構造体は .Fa に定義されています。 .Pp .Bd -literal -offset indent struct sched_param { int sched_priority; /* スケジュール優先順位 */ }; .Ed .Pp .Fn sched_getscheduler システムコールは、 .Fa pid で指定するプロセスのスケジュール方針を返します。 .Pp .Fa pid で指定するプロセスが存在してかつ、 呼び出し元プロセスにパーミッションがある場合、 プロセス ID が .Fa pid に等しいプロセスのスケジュールパラメータを返します。 .Pp この実装では、あるプロセスが別のプロセスのスケジュールパラメータを いつ得られるかの方針は、読取りスタイル操作として .St -p1003.1b-93 に詳説されているものです。 .Pp .Fa pid が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。 この実装では、 .Fa pid が負の場合、 .Fa sched_getscheduler システムコールは処理に失敗します。 .Sh 戻り値 .Rv -std .Sh エラー 処理に失敗すると、 .Va errno を対応する値に設定します。 .Bl -tag -width Er .It Bq Er ENOSYS システムは、この機能をサポートするように構成されていません。 .It Bq Er EPERM 要求しているプロセスは .St -p1003.1b-93 で詳説されているパーミッションを持っていません。 .It Bq Er ESRCH .Fa pid で指定したプロセスに対応するプロセスが見つかりません。 .It Bq Er EINVAL .Fa policy 引数の値が無効であるか、または .Fa param に含まれている 1 つまたは複数のパラメータが、 指定されたスケジュール方針で有効な範囲の外にあります。 .El .Sh 関連項目 .Xr sched_getparam 2 , .Xr sched_get_priority_max 2 , .Xr sched_get_priority_min 2 , .Xr sched_rr_get_interval 2 , .Xr sched_setparam 2 , .Xr sched_yield 2 .Sh 規格 .Fn sched_setscheduler システムコールと .Fn sched_getscheduler システムコールは .St -p1003.1b-93 に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/sched_yield.2 b/ja_JP.eucJP/man/man2/sched_yield.2 index 7d697859e7..dcc5c9d5b3 100644 --- a/ja_JP.eucJP/man/man2/sched_yield.2 +++ b/ja_JP.eucJP/man/man2/sched_yield.2 @@ -1,58 +1,58 @@ -.\" %FreeBSD: src/lib/libc/sys/sched_yield.2,v 1.12 2002/12/18 09:22:31 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/sched_yield.2,v 1.13 2004/07/02 23:52:13 ru Exp % .\" Copyright (c) 1998 HD Associates, Inc. .\" 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$ .Dd March 12, 1998 .Dt SCHED_YIELD 2 .Os .Sh 名称 .Nm sched_yield .Nd プロセッサを明け渡す .Sh ライブラリ .Lb libc .Sh 書式 .In sched.h .Ft int .Fn sched_yield void .Sh 解説 .Fn sched_yield システムコールは、実行中のプロセスが再びプロセスリストの先頭になるまで、 プロセッサを放棄させます。 引数はありません。 .Sh 戻り値 .Rv -std sched_yield .Sh エラー 処理に失敗すると、 .Va errno に対応する値が設定されます: .Bl -tag -width Er .It Bq Er ENOSYS システムがこの機能をサポートするように構成されていません。 .El .Sh 規格 .Fn sched_yield システムコールは .St -p1003.1b-93 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/select.2 b/ja_JP.eucJP/man/man2/select.2 index 7e24183ff1..e0c9aaf681 100644 --- a/ja_JP.eucJP/man/man2/select.2 +++ b/ja_JP.eucJP/man/man2/select.2 @@ -1,207 +1,207 @@ .\" 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.28 2004/03/19 16:04:11 dds Exp % +.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.29 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd November 17, 2002 .Dt SELECT 2 .Os .Sh 名称 .Nm select .Nd 同期的な入出力の多重化 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/select.h .Ft int .Fn select "int nfds" "fd_set *readfds" "fd_set *writefds" "fd_set *exceptfds" "struct timeval *timeout" .Fn FD_SET fd &fdset .Fn FD_CLR fd &fdset .Fn FD_ISSET fd &fdset .Fn FD_ZERO &fdset .Sh 解説 .Fn select システムコールは、 .Fa readfds , .Fa writefds および .Fa exceptfds でアドレスを渡された入出力記述子集合を調べ、 それらの記述子のいくつかがそれぞれ、読取り準備完了であるか、 書込み準備完了であるか、または保留されている例外条件があるかを調べます。 検出可能な唯一の例外条件は、ソケット上に受信した帯域外のデータです。 最初の .Fa nfds 個の記述子が各集合内でチェックされます。 すなわち、記述子集合中の 0 〜 .Fa nfds Ns No -1 の記述子が調べられます。 戻り時に .Fn select システムコールは指定の記述子集合を、要求された操作の準備ができている記述子で 構成される部分集合で置き換えます。 .Fn select は、すべての集合の中で準備ができた記述子の総数を返します。 .Pp 記述子の集合は、整数配列内のビットフィールドとして保存されます。 このような記述子集合を操作するために次のマクロが用意されています: .Fn FD_ZERO &fdset は記述子集合 .Fa fdset を空集合で初期化します。 .Fn FD_SET fd &fdset は特定の記述子 .Fa fd を .Fa fdset に含めます。 .Fn FD_CLR fd &fdset は .Fa fd を .Fa fdset から削除します。 .Fn FD_ISSET fd &fdset は .Fa fd が .Fa fdset のメンバである場合は非 0 の値を、そうでない場合は 0 を返します。 これらのマクロの動作は、記述子の値が 0 未満であるか、または .Dv FD_SETSIZE 以上である場合は未定義です。 .Dv FD_SETSIZE は通常、少なくとも、システムがサポートする記述子の最大数に等しくなります。 .Pp .Fa timeout が、NULL ポインタでない場合、それはセレクションの完了を 待つ最大間隔を指定します。 システムの活動性が、この間隔を不定時間延長することがあります。 .Pp .Fa timeout が NULL ポインタの場合、 .Fn select は無期限にブロックします。 .Pp ポーリングのためには、 .Fa timeout 引数は NULL でなく、値が 0 の timeval 構造体を指しているべきです。 .Pp .Fa readfds , .Fa writefds および .Fa exceptfds のどれについても、いずれの記述子も興味がない場合は NULL ポインタを指定できます。 .Sh 戻り値 .Fn select システムコールは記述子集合に含まれている準備のできた記述子の数を返し、 エラーが起きた場合は -1 を返します。 タイムリミットが来ると、 .Fn select は 0 を返します。 システムコールの割り込まれることによるものも含めて .Fn select がエラーで戻る場合は、記述子集合は変更されません。 .Sh エラー .Fn select から戻るエラーは次のことを示します: .Bl -tag -width Er .It Bq Er EBADF 記述子集合のどれかが無効な記述子を指定していました。 .It Bq Er EFAULT .Fa readfds , writefds , exceptfds または .Fa timeout の引数の 1 つが無効なアドレスを指しています。 .It Bq Er EINTR タイムリミットが切れる前あるいは選択したイベントのいずれかが起きる前に、 シグナルが配送されました。 .It Bq Er EINVAL 指定のタイムリミットは無効です。 どれかが負であるか、または大きすぎます。 .It Bq Er EINVAL .Fa nfds 引数が無効でした。 .El .Sh 関連項目 .Xr accept 2 , .Xr connect 2 , .Xr getdtablesize 2 , .Xr gettimeofday 2 , .Xr kqueue 2 , .Xr poll 2 , .Xr read 2 , .Xr recv 2 , .Xr send 2 , .Xr write 2 , .Xr clocks 7 .Sh 注 .Dv FD_SETSIZE のデフォルトのサイズは現時点では 1024 です。 多数のオープンファイルを使用する可能性があるプログラムで .Fn select を実行するために、 .In sys/types.h を取り込むヘッダを含める前にプログラムで .Dv FD_SETSIZE を定義することで、このサイズを増加できます。 .Pp .Fa nfds がオープンファイルの数より大きい場合、 .Fn select が未使用のファイル記述子を調査することは保証されていません。 歴史的な理由で、 .Fn select は最初の 256 個の記述子を必ず調査します。 .Sh バグ .St -susv2 では、システムが元の timeout を適当に更新することを許しています。 したがって、タイムアウトの値が .Fn select システムコールによって変更されないと想定するのは賢明ではありません。 .Sh 規格 .Fn select システムコールおよび .Fn FD_CLR , .Fn FD_ISSET , .Fn FD_SET , .Fn FD_ZERO マクロは .St -p1003.1-2001 に適合します。 .Sh 歴史 .Fn select システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/semctl.2 b/ja_JP.eucJP/man/man2/semctl.2 index a9202a75ad..d7c8ad6b44 100644 --- a/ja_JP.eucJP/man/man2/semctl.2 +++ b/ja_JP.eucJP/man/man2/semctl.2 @@ -1,206 +1,206 @@ .\" .\" 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/semctl.2,v 1.18 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/semctl.2,v 1.19 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd September 12, 1995 .Dt SEMCTL 2 .Os .Sh 名称 .Nm semctl .Nd セマフォ集合に対する操作を制御する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/ipc.h .In sys/sem.h .Ft int .Fn semctl "int semid" "int semnum" "int cmd" ... .Sh 解説 .Fn semctl システムコールは、 .Fa cmd が示す操作を .Fa semid で示されるセマフォ集合に対して実行します。 ある値の .Fa cmd に対しては、4 番目の引数 .Fa "union semun arg" が必要です。 .Fa arg 引数を使用するコマンドの場合、 .Fa "union semun" は次のように定義されます: .Bd -literal .\" .\" From : .\" union semun { int val; /* SETVAL 用の値 */ struct semid_ds *buf; /* IPC_STAT および IPC_SET 用のバッファ */ u_short *array; /* GETALL および SETALL 用の配列 */ }; .Ed .Pp コマンドは次のように実行されます: .\" .\" This section based on Stevens, _Advanced Programming in the UNIX .\" Environment_. .\" .Bl -tag -width IPC_RMIDXXX .It Dv IPC_STAT セマフォ集合の .Fa "struct semid_ds" を取得し、 .Fa arg.buf が指すメモリに保存します。 .It Dv IPC_SET セマフォ集合の .Fa "struct semid_ds" のメンバ .Fa sem_perm.uid , .Fa sem_perm.gid および .Fa sem_perm.mode を、 .Fa arg.buf が指す構造体のメンバと一致するように変更します。 呼び出し元プロセスの実効ユーザ ID は、 .Fa sem_perm.uid または .Fa sem_perm.cuid のどちらかと一致する必要があるか、 またはスーパユーザ特権を持っている必要があります。 .It IPC_RMID セマフォ集合をただちにシステムから削除します。 呼び出し元プロセスの実効ユーザ ID がセマフォ集合の .Fa sem_perm.uid または .Fa sem_perm.cuid と等しいか、またはプロセスがスーパユーザ特権を持っている必要があります。 .It Dv GETVAL セマフォ番号 .Fa semnum の値を返します。 .It Dv SETVAL セマフォ番号 .Fa semnum の値を .Fa arg.val に設定します。 あらゆるプロセス中の、このセマフォに対する未適用の終了時調整値は、 消されます。 .It Dv GETPID セマフォ番号 .Fa semnum について操作を実行した最後のプロセスのプロセス ID を返します。 .It Dv GETNCNT セマフォ番号 .Fa semnum の値が現在の値より大きくなるのを待っているプロセスの数を返します。 .It Dv GETZCNT セマフォ番号 .Fa semnum の値が 0 になるのを待っているプロセスの数を返します。 .It Dv GETALL 集合内のすべてのセマフォの値を .Fa arg.array が指す配列内へ取得します。 .It Dv SETALL 集合内のすべてのセマフォの値を .Fa arg.array が指す配列内の値に設定します。 あらゆるプロセス中の、この集合に属するすべてのセマフォに対する未適用の 終了時調整値は、消されます。 .El .Pp .Vt "struct semid_ds" は次のように定義されます: .Bd -literal .\" .\" Taken straight from . .\" struct semid_ds { struct ipc_perm sem_perm; /* 操作パーミッション構造体 */ struct sem *sem_base; /* 集合内の最初のセマフォへのポインタ */ u_short sem_nsems; /* 集合内のセマフォの数 */ time_t sem_otime; /* 最後の操作時刻 */ long sem_pad1; /* SVABI/386 によるとこれが必要 */ time_t sem_ctime; /* 最後の変更時刻 * 1970/01/01 00:00:00 GMT * からの秒単位の経過時間 */ long sem_pad2; /* SVABI/386 によるとこれが必要 */ long sem_pad3[4]; /* SVABI/386 によるとこれが必要 */ }; .Ed .Sh 戻り値 処理が正常に完了すると、 .Fa cmd が .Dv GETVAL , .Dv GETPID , .Dv GETNCNT , .Dv GETZCNT のどれかであるとき、 .Fn semctl は対応する値を返します。 そうでない場合は 0 を返します。 処理に失敗した場合は、-1 を返し、エラーを示すために .Va errno を設定します。 .Sh エラー .Fn semctl システムコールは次の場合に処理に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa semid に対応するセマフォ集合がありません。 .It Bq Er EINVAL .Fa semnum 引数が、指定のセマフォ集合に対して有効なセマフォの範囲内にありません。 .It Bq Er EPERM 呼び出し元プロセスの実効ユーザ ID が、 セマフォ集合の所有者または作成者のユーザ ID と一致しません。 .It Bq Er EACCES 操作とセマフォ集合のモードの間に不一致があったために パーミッションが拒否されました。 .It Bq Er ERANGE .Dv SETVAL または .Dv SETALL が、セマフォを .Bq 0 .. Dv SEMVMX の許容範囲外に設定しようとしました。 .El .Sh 関連項目 .Xr semget 2 , .Xr semop 2 .Sh BUGS .Dv SETALL は、エラーを返す前にいくつかのセマフォ要素を更新することがあります。 diff --git a/ja_JP.eucJP/man/man2/semget.2 b/ja_JP.eucJP/man/man2/semget.2 index b409571ded..db0799bf6e 100644 --- a/ja_JP.eucJP/man/man2/semget.2 +++ b/ja_JP.eucJP/man/man2/semget.2 @@ -1,143 +1,143 @@ .\" .\" 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.14 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/semget.2,v 1.15 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd September 12, 1995 .Dt SEMGET 2 .Os .Sh 名称 .Nm semget .Nd セマフォ ID を取得する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/ipc.h .In sys/sem.h .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 つあります: .Bl -bullet .It IPC_PRIVATE を指定できます。 この場合、新しい IPC オブジェクトが作成されます。 .It 整数定数を指定できます。 .Fa key に対応する IPC オブジェクトが指定されておらず、 しかも IPC_CREAT ビットを .Fa flag 引数で設定している場合、新しい IPC オブジェクトが作成されます。 .It .Xr ftok 3 関数を使用して、パス名からキーを生成できます。 .El .\" .\" Likewise for this section, except SHM_* becomes SEM_*. .\" .Pp 新しく作成される 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_A>>3 ) グループ用の書換えアクセス .It Dv ( SEM_R>>6 ) その他用の読取りアクセス .It Dv ( SEM_A>>6 ) その他用の書換えアクセス .El .Pp 新しいセマフォ集合が作成されている場合、 .Fa nsems を使用して、集合の中に入れる必要のあるセマフォの数を示します。 そうでない場合、 .Fa nsems を 0 として指定できます。 .Sh 戻り値 .Fn semget システムコールは、正常に完了するとセマフォ集合の識別子を返します。 そうでない場合は、-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 2336b2650b..91670f3728 100644 --- a/ja_JP.eucJP/man/man2/send.2 +++ b/ja_JP.eucJP/man/man2/send.2 @@ -1,211 +1,217 @@ .\" 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.22 2003/09/10 19:19:49 roberto Exp % +.\" %FreeBSD: src/lib/libc/sys/send.2,v 1.27 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd February 15, 1995 .Dt SEND 2 .Os .Sh 名称 .Nm send , .Nm sendto , .Nm sendmsg .Nd ソケットからメッセージを送信する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .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 +.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 ECONNREFUSED ソケットが、ICMP 宛先不到達メッセージを、 最後に送信したメッセージから受信しました。 典型的には、受信者がリモートポートで待機していないことを意味します。 .It Bq Er EHOSTDOWN リモートホストがダウンしていました。 .It Bq Er ENETDOWN リモートネットワークがダウンしていました。 +.It Bq Er EPERM +.Dv SOCK_RAW +ソケットを使用しているプロセスが jail の中にあり、IP ヘッダの +中で指定されている送信元のアドレスが、その捕虜プロセスに +結び付けられている IP アドレスと一致しませんでした。 .It Bq Er EPIPE -ソケットがこれ以上データを送信できません (SS_CANTSENDMORE がそのソケットに -設定されています)。 +ソケットがこれ以上データを送信できません +.Dv ( SBS_CANTSENDMORE +がそのソケットに設定されています)。 これは通常、そのソケットが接続されていないことを意味します。 .El .Sh バグ .Fn sendmsg はデータが転送されてしまうまで必ずしもブロックしないので、 オープンされているファイル記述子を .Dv AF_UNIX -ドメインソケット ( -.Xr recv 2 +ドメインソケット +.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 c97b5e866b..55b535288d 100644 --- a/ja_JP.eucJP/man/man2/sendfile.2 +++ b/ja_JP.eucJP/man/man2/sendfile.2 @@ -1,228 +1,240 @@ .\" Copyright (c) 2003, David G. Lawrence .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice unmodified, this list of conditions, and the following .\" disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.21 2004/02/08 07:38:35 silby Exp % +.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.23 2004/06/30 20:09:10 ru Exp % .\" .\" $FreeBSD$ .Dd November 5, 1998 .Dt SENDFILE 2 .Os .Sh 名称 .Nm sendfile .Nd ファイルをソケットに送信 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .In sys/uio.h .Ft int .Fn sendfile "int fd" "int s" "off_t offset" "size_t nbytes" "struct sf_hdtr *hdtr" "off_t *sbytes" "int flags" .Sh 解説 .Fn sendfile システムコールは、記述子 .Fa fd によって指定された通常のファイルを、記述子 .Fa s によって指定されたストリームソケットから送信します。 .Pp .Fa offset 引数はファイルのどこから開始すべきかを指定します。 .Fa nbytes 引数は、ファイルの何バイトを送信する必要があるかを指定します。 0 は、ファイルの終わりまで送信するという特殊な意味を持ちます。 .Pp オプションのヘッダまたはトレーラ、またはその両方は、構造体 sf_hdtr を 指すポインタを指定することによってファイルの前と後で送信できます。 構造体 sf_hdtr の構造は次のとおりです: .Pp .Bd -literal -offset indent -compact struct sf_hdtr { struct iovec *headers; /* ヘッダ iovecs を指すポインタ */ int hdr_cnt; /* ヘッダ iovecs の数 */ struct iovec *trailers; /* トレーラ iovecs を指すポインタ */ int trl_cnt; /* トレーラ iovecs の数 */ }; .Ed .Pp .Fa headers ポインタと .Fa trailers ポインタは、NULL でない場合に構造体 iovec 構造の配列を指します。 iovec 構造体の詳細については、 .Fn writev システムコールを参照してください。 これらの配列内の iovecs の数は、 .Fa hdr_cnt と .Fa trl_cnt によって指定されます。 .Pp NULL でない場合に、システムは、ソケット上に送信された合計バイト数を、 .Fa sbytes によって指された変数に書き込みます。 .Pp .Fa flags 引数として利用できる値は 1 つです: -.Fa SF_NODISKIO 。 -このフラグは、ディスク入出力でブロックされるであろう -すべての sendfile 呼び出しに対して、代わりに EBUSY を返させます。 +.Dv SF_NODISKIO 。 +このフラグは、ディスク入出力でブロックされるであろうすべての +.Fn sendfile +呼び出しに対して、代わりに +.Er EBUSY +を返させます。 ブロックされる転送要求を 1 つの分離された入出力ワーカスレッドにすることで、 忙しいサーバには役に立つことがあります。 .Pp 非ブロッキング入出力用に指定されたソケットを使用するときに、 .Fn sendfile は要求されたよりも少ないバイトを送信することがあります。 この場合、正常に書き込まれたバイト数が .Fa *sbytes (指定されている場合) に返され、エラー .Er EAGAIN が返されます。 .Sh 実装に関する注 .Fn sendfile の .Fx での実装は「0 コピー」です。 すなわち、ファイルデータのコピーが回避されるように最適化されています。 .Sh チューニング 内部ではこのシステムコールは、クライアントへの送信ファイルデータを 取り扱うために、特別な -.Xr sendfile 2 +.Fn sendfile バッファ .Pq Vt "struct sf_buf" を使用しています。 送信ソケットがブロックされていて、 -利用可能な送信ファイルバッファが十分でない場合には、 -.Xr sendfile 2 +利用可能な +.Fn sendfile +バッファが十分でない場合には、 +.Fn sendfile はブロックされ、 .Dq Li sfbufa の状態を報告します。 -送信ソケットがブロックされておらず、 -利用可能な送信ファイルバッファが十分でない場合には、 +送信ソケットがブロックされておらず、利用可能な +.Fn sendfile +バッファが十分でない場合には、 この呼び出しはブロックされ、呼び出しを終了する前に必要なバッファが 利用可能になるのを待ちます。 .Pp .Vt sf_buf の割り当てられた数は、 -.Xr sendfile 2 +.Fn sendfile を介してクライアントにデータを送信するために使用される nmbclusters の数に、 比例しているべきです。 ブロッキングを避けるために適宜にチューンしましょう! -.Xr sendfile 2 +.Fn sendfile を広範囲に使用する忙しい装置が、 .Va kern.ipc.nmbclusters に展開されるこれらの値を増加させたくなるかもしれません (詳細は .Xr tuning 7 を参照してください)。 .Pp 利用可能な -.Xr sendfile 2 +.Fn sendfile バッファの数は、 .Xr loader.conf 5 の中の .Va kern.ipc.nsfbufs 変数または .Dv NSFBUFS カーネルコンフィギュレーション調整のどちらかによって、ブート時に決定されます。 -sendfile バッファの数は +.Fn sendfile +バッファの数は .Va kern.maxusers に合わせて調整されます。 .Va kern.ipc.nsfbufsused および .Va kern.ipc.nsfbufspeak -の読み取り専用の sysctl 変数は現在とピークの -.Xr sendfile 2 +の読み取り専用の +.Xr sysctl 8 +変数は現在とピークの +.Fn sendfile バッファの使用量をそれぞれ表します。 これらの値は .Nm netstat Fl m を通しても見ることができます。 .Sh 戻り値 .Rv -std sendfile .Sh エラー .Bl -tag -width Er .It Bq Er EBADF .Fa fd 引数が有効なファイル記述子ではありません。 .It Bq Er EBADF .Fa s 引数が有効なソケット記述子ではありません。 .It Bq Er EBUSY 完全な転送を完了するにはディスク入出力が必要となるため、中断されました。 -部分的なデータは送られたかもしれません。 -(このエラーは SF_NODISKIO が指定されたときのみ起こります) +部分的なデータは送られたかもしれません +(このエラーは +.Dv SF_NODISKIO +が指定されたときのみ起こります)。 .It Bq Er ENOTSOCK .Fa s 引数がソケットではありません。 .It Bq Er EINVAL .Fa fd 引数が通常のファイルではありません。 .It Bq Er EINVAL .Fa s 引数が SOCK_STREAM 型のソケットではありません。 .It Bq Er EINVAL .Fa offset 引数が負であるか、または範囲外です。 .It Bq Er ENOTCONN .Fa s 引数が、未接続のソケットを指しています。 .It Bq Er EPIPE 通信相手が接続を閉じてしまいました。 .It Bq Er EIO .Fa fd から読取り中に入出力エラーが発生しました。 .It Bq Er EFAULT 引数について無効なアドレスが指定されました。 .It Bq Er EINTR -sendfile が完了する前にシグナルが割り込みました。 +.Fn sendfile +が完了する前にシグナルが割り込みました。 .Fa *sbytes が指定された場合には、成功裏に送出されたバイト数がここに格納されます。 .It Bq Er EAGAIN ソケットは非ブロッキング入出力と指定されており、ソケットバッファが 満杯であるためにすべてのデータが送信されませんでした。 sbytes が指定された場合、送信が正常に完了したバイト数が .Fa *sbytes 内に返されます。 .El .Sh 関連項目 .Xr netstat 1 , .Xr open 2 , .Xr send 2 , .Xr socket 2 , .Xr writev 2 , .Xr tuning 7 .Sh 歴史 .Fn sendfile システムコールは、 .Fx 3.0 ではじめて登場しました。 このマニュアルページは .Fx 3.1 ではじめて登場しました。 .Sh 作者 .Fn sendfile システムコールとこのマニュアルページは .An David G. Lawrence Aq dg@dglawrence.com が作成しました。 diff --git a/ja_JP.eucJP/man/man2/setuid.2 b/ja_JP.eucJP/man/man2/setuid.2 index 80898fcf7d..6dd2140f73 100644 --- a/ja_JP.eucJP/man/man2/setuid.2 +++ b/ja_JP.eucJP/man/man2/setuid.2 @@ -1,189 +1,189 @@ .\" 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. .\" .\" @(#)setuid.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/setuid.2,v 1.22 2003/01/07 05:06:27 keramida Exp % +.\" %FreeBSD: src/lib/libc/sys/setuid.2,v 1.23 2004/07/05 17:12:52 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt SETUID 2 .Os .Sh 名称 .Nm setuid , .Nm seteuid , .Nm setgid , -.Nm setegid , +.Nm setegid .Nd ユーザ ID とグループ ID を設定する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In unistd.h .Ft int .Fn setuid "uid_t uid" .Ft int .Fn seteuid "uid_t euid" .Ft int .Fn setgid "gid_t gid" .Ft int .Fn setegid "gid_t egid" .Sh 解説 .Fn setuid システムコールは、現在のプロセスの実ユーザ ID と実効ユーザ ID と 退避ユーザ ID を指定した値に設定します。 .\" Comment out next block for !_POSIX_SAVED_IDS .\" The real user ID and the saved set-user-ID are changed only if the .\" effective user ID is that of the super user. .\" I.e. .\" .Fn setuid .\" system call is equal to .\" .Fn seteuid .\" system call if the effective user ID is not that of the super user. .\" End of block .Fn setuid システムコールが許容されるのは、指定の ID がプロセスの実ユーザ ID または実効ユーザ ID に等しい場合、 または実効ユーザ ID がスーパユーザのものと等しい場合です。 .\" Comment out next line for !_POSIX_SAVED_IDS .\" or the saved set-user-ID .\" Next line is for Appendix B.4.2.2 case. .Pp .Fn setgid システムコールは、現在のプロセスの実グループ ID と実効グループ ID と 退避グループ ID を指定した値に設定します。 .\" Comment out next block for !_POSIX_SAVED_IDS .\" The real group ID and the saved set-group-ID are changed only if the .\" effective user ID is that of the super user. .\" I.e. .\" .Fn setgid .\" system call is equal to .\" .Fn setegid .\" system call if the effective user ID is not that of the super user. .\" End of block .Fn setgid システムコールが許容されるのは、指定の ID がプロセスの実グループ ID または実効グループ ID に等しい場合、 または実効ユーザ ID がスーパユーザのものと等しい場合です。 .\" Comment out next line for !_POSIX_SAVED_IDS .\" or the saved set-group-ID .\" Next line is for Appendix B.4.2.2 case. .Pp .Fn seteuid システムコール .Pq Fn setegid は、現在のプロセスの実効ユーザ (グループ ID) を設定します。 実効ユーザ ID は実ユーザ ID または退避ユーザ ID ( .Xr intro 2 と .Xr execve 2 を参照 ) の値に設定できます。 これを利用し、ユーザ ID 設定された実行可能ファイルの実効ユーザ ID を 実ユーザ ID に切り替えた後に、ユーザ ID 設定の値に戻ることで、 元の権限を得ることができます。 同じように、実効グループ ID は、 実グループ ID または退避グループ ID の値に設定できます。 .Sh 戻り値 .Rv -std .Sh エラー 本システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EPERM ユーザがスーパユーザでない場合、または指定された uid がその実 ID、 実効 ID、または退避 ID でない場合。 .El .Sh セキュリティに関する考察 ファイルへの読取りと書込み許可は、 .Xr open 2 が呼ばれた時に判断されます。 一度ファイル記述子がオープンされると、権限を落してもそのプロセスの 読取りまたは書込み許可には影響しません。 指定されたユーザ ID に、そのファイルへの読取りまたは書込み許可が なくともです。 通常これらのファイルは、新しいプロセスの実行時にオープンされたままとなり、 その結果、ユーザがもしかすると要注意であるデータを読んだり修正したり できてしまいます。 .Pp これらのファイルが .Xr exec 3 呼び出しの後でもオープンされたままにされるのを防ぐには、 close-on-exec フラグを設定するようにしてください: .Bd -literal void pseudocode(void) { int fd; /* ... */ fd = open("/path/to/sensitive/data", O_RDWR); if (fd == -1) err(1, "open"); /* * close-on-exec フラグの設定; さらなる情報は fcntl(2) を参照。 */ if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) err(1, "fcntl(F_SETFD)"); /* ... */ execve(path, argv, environ); } .Ed .Sh 関連項目 .Xr getgid 2 , .Xr getuid 2 , .Xr issetugid 2 , .Xr setregid 2 , .Xr setreuid 2 .Sh 規格 .Fn setuid システムコールと .Fn setgid システムコールは .St -p1003.1-90 仕様と互換性があります。 ただし、 .Li _POSIX_SAVED_IDS .\" Uncomment next line for !_POSIX_SAVED_IDS は付録 B.4.2.2 の許可された拡張で定義されていません。 .Fn seteuid システムコールと .Fn setegid システムコールは、 .Li _POSIX_SAVED_IDS の .Tn POSIX コンセプトを基礎にして拡張してあり、規格の将来の改定用に提案されています。 .Sh 歴史 .Fn setuid 関数と .Fn setgid 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/shmat.2 b/ja_JP.eucJP/man/man2/shmat.2 index d680a00761..ca7244590a 100644 --- a/ja_JP.eucJP/man/man2/shmat.2 +++ b/ja_JP.eucJP/man/man2/shmat.2 @@ -1,109 +1,109 @@ .\" .\" 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/shmat.2,v 1.17 2003/01/25 21:33:05 alfred Exp % +.\" %FreeBSD: src/lib/libc/sys/shmat.2,v 1.18 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd August 2, 1995 .Dt SHMAT 2 .Os .Sh 名称 .Nm shmat , .Nm shmdt .Nd 共有メモリをアタッチまたはデタッチする .Sh ライブラリ .Lb libc .Sh 書式 .In machine/param.h .In sys/types.h .In sys/ipc.h .In sys/shm.h .Ft void * .Fn shmat "int shmid" "const void *addr" "int flag" .Ft int .Fn shmdt "const void *addr" .Sh 解説 .Fn shmat システムコールは、 .Fa shmid によって識別された共有メモリセグメントを呼び出しプロセスの アドレス空間にアタッチします。 セグメントがアタッチされるアドレスは次のように決定されます: .\" .\" These are cribbed almost exactly from Stevens, _Advanced Programming in .\" the UNIX Environment_. .\" .Bl -bullet .It .Fa addr が 0 の場合、セグメントは、カーネルが選択したアドレスにアタッチされます。 .It .Fa addr が 0 でなく、しかも SHM_RND が .Fa flag で指定されない場合、セグメントは指定のアドレスにアタッチされます。 .It .Fa addr が指定されており、しかも SHM_RND が指定されている場合、 .Fa addr は最も近い SHMLBA の倍数に切捨てされます。 .El .Pp .Fn shmdt は、 .Fa addr で指定されるアドレスにある共有メモリセグメントを、呼び出しプロセスの アドレス空間からデタッチします。 .Sh 戻り値 正常に完了すると、 .Fn shmat はセグメントがアタッチされているアドレスを返します。 そうでない場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Pp .Rv -std shmdt .Sh エラー .Fn shmat システムコールは次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa shmid に対応する共有メモリセグメントが見つかりませんでした。 .It Bq Er EINVAL .Fa addr 引数が有効なアドレスではありませんでした。 .El .Pp .Fn shmdt システムコールは次の場合に処理に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa addr 引数は共有メモリセグメントを指していません。 .El .Sh 関連項目 .Xr shmctl 2 , .Xr shmget 2 diff --git a/ja_JP.eucJP/man/man2/shmctl.2 b/ja_JP.eucJP/man/man2/shmctl.2 index 273ca86f60..de2f1ce6d5 100644 --- a/ja_JP.eucJP/man/man2/shmctl.2 +++ b/ja_JP.eucJP/man/man2/shmctl.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/shmctl.2,v 1.16 2002/12/19 09:33:34 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/shmctl.2,v 1.17 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd July 17, 1995 .Dt SHMCTL 2 .Os .Sh 名称 .Nm shmctl .Nd 共有メモリ制御 .Sh ライブラリ .Lb libc .Sh 書式 .In machine/param.h .In sys/types.h .In sys/ipc.h .In sys/shm.h .Ft int .Fn shmctl "int shmid" "int cmd" "struct shmid_ds *buf" .Sh 解説 .Fa shmid によって指定された共有メモリセグメント上で .Fa cmd によって指定された処理を実行します: .Bl -tag -width SHM_UNLOCKX .It Dv IPC_STAT .Fa "struct shmid_ds" のセグメントを取得し、 .Fa buf によって指定されたメモリにそれを保存します。 .\" .\" XXX need to make sure that this is correct for FreeBSD .\" .It Dv IPC_SET .Fa "struct shmid_ds" セグメントの .Fa shm_perm.uid , .Fa shm_perm.gid , および .Fa shm_perm.mode の各メンバを .Fa buf で指された構造体のメンバに変更します。 呼び出しプロセスの実効ユーザ ID は、 .Fa shm_perm.uid または .Fa shm_perm.cuid のどちらかと一致するか、またはスーパユーザ特権を持っている必要があります。 .It Dv IPC_RMID システムからセグメントを除去します。 セグメントにアタッチしたすべてのプロセスが終了するまで、除去は行われません。 しかし、いったん IPC_RMID 操作が実行されると、それ以降プロセスは そのセグメントにアタッチすることを許されません。 操作が成功するためには、呼び出しプロセスの実効ユーザ ID が .Fa shm_perm.uid または .Fa shm_perm.cuid と一致するか、または呼び出しプロセスにスーパユーザ特権が必要です。 .\" .It Dv SHM_LOCK .\" Locks the segment in memory. The calling process must have .\" superuser privileges. Not implemented in FreeBSD. .\" .It Dv SHM_UNLOCK .\" Unlocks the segment from memory. The calling process must .\" have superuser privileges. Not implemented in FreeBSD. .El .Pp .Vt shmid_ds 構造体は次のように定義されます: .\" .\" I fiddled with the spaces a bit to make it fit well when viewed .\" with nroff, but otherwise it's straight from sys/shm.h .\" .Bd -literal struct shmid_ds { struct ipc_perm shm_perm; /* 操作パーミッション構造体 */ int shm_segsz; /* セグメントのサイズ (バイト単位) */ pid_t shm_lpid; /* 最後の共有メモリ操作のプロセス ID */ pid_t shm_cpid; /* 作成者のプロセス ID */ short shm_nattch; /* 現在のアタッチの数 */ time_t shm_atime; /* 最後の shmat() の時刻 */ time_t shm_dtime; /* 最後の shmdt() の時刻 */ time_t shm_ctime; /* shmctl() による最後の変更の時刻 */ void *shm_internal; /* SystemV の愚行 */ }; .Ed .Sh 戻り値 .Rv -std shmctl .Sh エラー .Fn shmctl システムコールは次の場合に処理に失敗します: .Bl -tag -width Er .It Bq Er EINVAL 無効な操作、または .Fa shmid に指定された共有メモリセグメントが検出されませんでした。 .\" .\" XXX I think the following is right: ipcperm() only returns EPERM .\" when an attempt is made to modify (IPC_M) by a non-creator .\" non-owner .It Bq Er EPERM 呼び出しプロセスの実効ユーザ ID が、共有メモリセグメントの所有者 または作成者のユーザ ID と一致しません。 .It Bq Er EACCES 操作と共有メモリセグメントモードの間の不一致のために パーミッションが拒絶されました。 .El .Sh 関連項目 .Xr shmat 2 , .Xr shmdt 2 , .Xr shmget 2 , .Xr ftok 3 diff --git a/ja_JP.eucJP/man/man2/shmget.2 b/ja_JP.eucJP/man/man2/shmget.2 index 4c23497b8c..70a77b66c5 100644 --- a/ja_JP.eucJP/man/man2/shmget.2 +++ b/ja_JP.eucJP/man/man2/shmget.2 @@ -1,134 +1,134 @@ .\" .\" 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.17 2003/01/25 21:33:05 alfred Exp % +.\" %FreeBSD: src/lib/libc/sys/shmget.2,v 1.18 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd July 3, 1995 .Dt SHMGET 2 .Os .Sh 名称 .Nm shmget .Nd 共有メモリの識別子の取得 .Sh ライブラリ .Lb libc .Sh 書式 .In machine/param.h .In sys/types.h .In sys/ipc.h .In sys/shm.h .Ft int .Fn shmget "key_t key" "size_t 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 .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 ) その他用の書込みアクセス .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 ftok 3 diff --git a/ja_JP.eucJP/man/man2/sigaction.2 b/ja_JP.eucJP/man/man2/sigaction.2 index 233710b5dd..3c0e51fbde 100644 --- a/ja_JP.eucJP/man/man2/sigaction.2 +++ b/ja_JP.eucJP/man/man2/sigaction.2 @@ -1,608 +1,651 @@ .\" Copyright (c) 1980, 1990, 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: @(#)sigaction.2 8.2 (Berkeley) 4/3/94 -.\" %FreeBSD: src/lib/libc/sys/sigaction.2,v 1.49 2003/09/08 19:57:16 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/sigaction.2,v 1.55 2004/07/03 22:30:09 ru Exp % .\" .\" 2001/01/01 horikawa@jp.FreeBSD.org .\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新 .\" してください。 .\" .\" $FreeBSD$ -.Dd April 3, 1994 +.Dd June 7, 2004 .Dt SIGACTION 2 .Os .Sh 名称 .Nm sigaction .Nd ソフトウェアシグナル機能 .Sh ライブラリ .Lb libc .Sh 書式 .In signal.h .Bd -literal struct sigaction { union { void (*__sa_handler)(int); void (*__sa_sigaction)(int, struct __siginfo *, void *); } __sigaction_u; /* シグナルハンドラ */ int sa_flags; /* 後述のシグナルオプション参照 */ sigset_t sa_mask; /* 適用するシグナルマスク */ }; #define sa_handler __sigaction_u.__sa_handler #define sa_sigaction __sigaction_u.__sa_sigaction .Ed .Ft int .Fo sigaction .Fa "int sig" .Fa "const struct sigaction * restrict act" .Fa "struct sigaction * restrict oact" .Fc .Sh 解説 システムではシグナルの集合を定義しており、 これらはプロセスに配信されることがあります。 シグナルの配信は、ハードウェア割込みの発生に似ています。 通常の場合、シグナルのさらなる発生はブロックされ、 現在のプロセスコンテキストは保存されて、新しいプロセスコンテキストが 作成されます。 プロセスは、シグナルの配信先 .Em handler を指定することもあれば、シグナルを .Em 無視 することを指定することもあります。 シグナルが発生した場合に、システムがデフォルトのアクションを取ることを 指定することも可能です。 シグナルが .Em ブロック されることもあり、その場合、シグナルの配信は、 .Em ブロックが解除 されるまで延期されます。 配信時に取るアクションは、配信時に決まります。 通常の場合は、シグナルハンドラが、プロセスの現行スタックで動作します。 これはハンドラごとに変更可能であり、変更すれば、シグナルは特殊な .Em シグナルスタック で実行可能です。 .Pp 通常の場合、シグナルルーチンは、呼び出しの原因となったシグナルが ブロックされた状態で動作しますが、その他のシグナルが発生する可能性は あります。 グローバルの .Em シグナルマスク には、プロセスへの配信が現在 ブロックされているシグナルの集合が定義されています。 プロセスのシグナルマスクは、親のシグナルマスクで初期化されます (通常は空)。 .Xr sigprocmask 2 が呼び出された場合、またはシグナルがプロセスに配信された場合に、 シグナルマスクは変更されます。 .Pp あるシグナルの生起条件がプロセスで発生すると、そのシグナルが、 プロセスで保留中のシグナルの集合に追加されます。 そのシグナルがプロセスで現在 .Em ブロック されていない場合は、プロセスに配信されます。 シグナルは、プロセスがオペレーティングシステムに入っている間に (システム呼び出し、ページエラーやトラップ、クロック割込み中などに) 配信されます。 複数のシグナルの配信準備が同時に整った場合は、トラップで生じたシグナルが 先に配信されます。 その他のシグナルは、それぞれが前のシグナルのハンドラに対し、 最初の命令の前に割り込んだ状態で同時に処理されます。 保留になっているシグナルの集合は、 .Xr sigpending 2 システムコールで返されます。 捕捉されたシグナルが配信されると、プロセスの現在の 状態が保存され、新しいシグナルマスクが以下で説明するように算出されて、 シグナルハンドラが呼び出されます。 ハンドラの呼び出しは、 シグナル処理ルーチンが正常に戻った場合に、プロセスがシグナル配信前の コンテキストで実行を再開するように設定されます。 プロセスが別のコンテキストでの再開を望む場合は、 前のコンテキストそのものを自分自身で回復するように設定する必要があります。 .Pp シグナルがプロセスに配信されると、プロセスの シグナルハンドラの実行が続く間 (または .Xr sigprocmask 2 システムコールが呼び出されるまで)、新しいシグナルマスクが設置されます。 このマスクは、現在のシグナルマスク集合、配信されるシグナル、 呼び出されるハンドラに関連したシグナルマスクの和集合を取って形成されます。 .Pp .Fn sigaction システムコールは、 .Fa sig で指定したシグナルのアクションを割り当てます。 .Fa act が 0 でない場合は、アクション .Dv ( SIG_DFL , .Dv SIG_IGN かハンドラルーチン)、および指定されたシグナルの配信時に 使用するマスクが指定されます。 .Fa oact が 0 でない場合は、そのシグナルのそれまでの処理情報がユーザに返されます。 .Pp シグナルハンドラが設置されると、通常の場合は別の .Fn sigaction システムコールを呼び出すか .Xr execve 2 を実行するまで、そのシグナルハンドラは設置されたままです。 -.Fa sa_handler +.Va sa_handler を .Dv SIG_DFL に設定することで、 シグナルごとに固有なデフォルトアクションにリセットすることができます。 デフォルトとは、プロセスの終了 (コアダンプが取られることもあります)、 アクションなし、プロセスの停止、プロセスの継続です。 それぞれのシグナルのデフォルトアクションについては、 下記のシグナルリストを参照してください。 -.Fa sa_handler +.Va sa_handler が .Dv SIG_DFL である場合、シグナルのデフォルトアクションはシグナルの破棄になります。 また、シグナルが保留になっている場合でも、シグナルがマスクされていても 保留中のシグナルは破棄されます。 -.Fa sa_handler +.Va sa_handler を .Dv SIG_IGN に設定すると、現在のシグナル実体と保留中のシグナル実体は無視されて 破棄されます。 .Pp オプションは、 .Va sa_flags を設定することで指定できます。 それぞれのビットの意味は以下のとおりです: .Bl -tag -offset indent -width SA_RESETHANDXX .It Dv SA_NOCLDSTOP .Dv SIGCHLD シグナルの受信関数を設置する場合にこのビットを設定すると、 子プロセスが停止したときではなく、子プロセスが終了するときにのみ、 .Dv SIGCHLD シグナルが生成されます。 .It SA_NOCLDWAIT .Dv SIGCHLD シグナルで .Fn sigaction を呼び出す場合にこのビットを設定すると、システムは、呼び出し側プロセスの 子プロセスが終了したときにゾンビプロセスを作成しなくなります。 そのあと、呼び出し側プロセスが .Xr wait 2 -かそれに相当する関数を実行すると、呼び出し側プロセスのすべて +(かそれに相当する関数) を実行すると、呼び出し側プロセスのすべて の子プロセスが終了するまでブロックし、次に .Va errno を .Er ECHILD -に設定して -1 を返します。 +に設定して \-1 を返します。 +.Dv SIGCHLD +のための +.Va sa_handler +に +.Dv SIG_IGN +を設定することによって、 +ゾンビの作成を避ける同じ効果を得ることも可能です。 .It Dv SA_ONSTACK このビットを設定すると、システムは、 .Xr sigaltstack 2 で指定された .Em シグナルスタック の上で、プロセスにシグナルを配信します。 .It Dv SA_NODEFER このビットを設定すると、配信済みシグナルのさらなる発生が、 ハンドラの実行中にマスクされなくなります。 .It Dv SA_RESETHAND このビットを設定すると、シグナルが配信された瞬間に、ハンドラが .Dv SIG_DFL にリセットされます。 .It Dv SA_RESTART 下の段落を参照してください。 .It Dv SA_SIGINFO -このビットが設定されている場合、ハンドラ関数は、sigaction 構造体の -.Dv sa_sigaction +このビットが設定されている場合、ハンドラ関数は、 +.Vt "struct sigaction" +構造体の +.Va sa_sigaction メンバが指すものと見なします。 ハンドラ関数は、先に示したプロトタイプもしくは後で示す .Sx 使用例 に一致しなくてはなりません。 このビットは、 .Dv SIG_DFL もしくは .Dv SIG_IGN を割り当てる時には設定してはいけません。 .El .Pp 次に挙げるシステムコールの実行中にシグナルが捕捉されると、 そのシステムコールの呼び出しは、 エラー .Er EINTR で強制終了されるか、要求より短いデータ転送で戻るか、または再開されます。 保留中のシステムコールの再開は、 .Va sa_flags で .Dv SA_RESTART ビットを設定することで要求できます。 影響を受けるシステムコールは、 通信チャネルか遅いデバイス (端末など、通常ファイルではないもの) に対する .Xr open 2 , .Xr read 2 , .Xr write 2 , .Xr sendto 2 , .Xr recvfrom 2 , .Xr sendmsg 2 , .Xr recvmsg 2 と .Xr wait 2 , .Xr ioctl 2 です。 しかし、すでに実行されているシステムコールは再開されず、 部分的な処理成功の結果 (短い読取りカウントなど) を返します。 .Pp .Xr fork 2 か .Xr vfork 2 の後では、すべてのシグナル、シグナルマスク、シグナルスタック、 再開フラグ、割込みフラグが子プロセスに継承されます。 .Pp .Xr execve 2 システムコールは、捕捉されていたすべてのシグナルのデフォルトアクションを 元に戻し、すべてのシグナルをユーザスタックで受信されるようにリセットします。 無視されたシグナルは無視されたままです。 シグナルマスクは同じ状態のままです。 保留中のシステムコールを再開する設定のシグナルは、その再開の設定のままです。 .Pp 以下はすべてのシグナルのリストです。 名称は、インクルードファイル .In signal.h にあるものと同じです: .Bl -column SIGVTALARMXX "create core imagexxx" .It Sy "名称 デフォルトアクション 説明" .It Dv SIGHUP No " プロセスの終了" " 端末ラインのハングアップ" .It Dv SIGINT No " プロセスの終了" " プログラムの割込み" .It Dv SIGQUIT No " コアイメージの作成" " プログラムの中断終了" .It Dv SIGILL No " コアイメージの作成" " 不正な命令" .It Dv SIGTRAP No " コアイメージの作成" " トラップのトレース" .It Dv SIGABRT No " コアイメージの作成" Ta Xr abort 3 の呼び出し (以前の .Dv SIGIOT ) .It Dv SIGEMT No " コアイメージの作成" " 命令実行のエミュレート" .It Dv SIGFPE No " コアイメージの作成" " 浮動小数例外" .It Dv SIGKILL No " プロセスの終了" " プログラムの強制終了" .It Dv SIGBUS No " コアイメージの作成" " バスエラー" .It Dv SIGSEGV No " コアイメージの作成" " セグメンテーション違反" .It Dv SIGSYS No " コアイメージの作成" " 存在しないシステムコールの呼び出し" .It Dv SIGPIPE No " プロセスの終了" " 読取り側がないパイプへの書込み" .It Dv SIGALRM No " プロセスの終了" " リアルタイムタイマの満了" .It Dv SIGTERM No " プロセスの終了" " ソフトウェア終了シグナル" .It Dv SIGURG No " シグナルの破棄" " 緊急状況がソケットに発生" .It Dv SIGSTOP No " プロセスの停止" " 停止 (捕捉も無視もできません)" .It Dv SIGTSTP No " プロセスの停止" " キーボードから生成された停止シグナル" .It Dv SIGCONT No " シグナルの破棄" " 停止後の継続" .It Dv SIGCHLD No " シグナルの破棄" " 子プロセスの状態変化" .It Dv SIGTTIN No " プロセスの停止" " バックグラウンドプロセスが制御端末から読み取ろうとした" .It Dv SIGTTOU No " プロセスの停止" " バックグラウンドプロセスが制御端末に書き込もうとした" .It Dv SIGIO No " シグナルの破棄" " 記述子への " .Tn I/O 可能 ( .Xr fcntl 2 参照) .It Dv SIGXCPU No " プロセスの終了" " cpu 制限時間の超過 (" .Xr setrlimit 2 参照) .It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過 (" .Xr setrlimit 2 参照) .It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム (" .Xr setitimer 2 参照) .It Dv SIGPROF No " プロセスの終了" " プロファイリングタイマアラーム ( .Xr setitimer 2 参照) .It Dv SIGWINCH No " シグナルの破棄" " ウィンドウサイズの変化" .It Dv SIGINFO No " シグナルの破棄" " キーボードからのステータス要求" .It Dv SIGUSR1 No " プロセスの終了" " ユーザ定義シグナル 1" .It Dv SIGUSR2 No " プロセスの終了" " ユーザ定義シグナル 2" .El .Sh 注 .Fa act に指定する -.Fa sa_mask +.Va sa_mask フィールドでは、 .Dv SIGKILL や .Dv SIGSTOP をブロックできません。 ブロックしようとしても無視されます。 .Pp 以下の関数は、再入的であるかシグナルで割り込まれることがないかのどちらかで、 非同期シグナルでも安全です。 このため、アプリケーションは、シグナル受信関数から制限なく呼び出せます: .Pp ベースインタフェース .Pp .Fn _exit , .Fn access , .Fn alarm , .Fn cfgetispeed , .Fn cfgetospeed , .Fn cfsetispeed , .Fn cfsetospeed , .Fn chdir , .Fn chmod , .Fn chown , .Fn close , .Fn creat , .Fn dup , .Fn dup2 , .Fn execle , .Fn execve , .Fn fcntl , .Fn fork , .Fn fpathconf , .Fn fstat , .Fn fsync , .Fn getegid , .Fn geteuid , .Fn getgid , .Fn getgroups , .Fn getpgrp , .Fn getpid , .Fn getppid , .Fn getuid , .Fn kill , .Fn link , .Fn lseek , .Fn mkdir , .Fn mkfifo , .Fn open , .Fn pathconf , .Fn pause , .Fn pipe , .Fn raise , .Fn read , .Fn rename , .Fn rmdir , .Fn setgid , .Fn setpgid , .Fn setsid , .Fn setuid , .Fn sigaction , .Fn sigaddset , .Fn sigdelset , .Fn sigemptyset , .Fn sigfillset , .Fn sigismember , .Fn signal , .Fn sigpending , .Fn sigprocmask , .Fn sigsuspend , .Fn sleep , .Fn stat , .Fn sysconf , .Fn tcdrain , .Fn tcflow , .Fn tcflush , .Fn tcgetattr , .Fn tcgetpgrp , .Fn tcsendbreak , .Fn tcsetattr , .Fn tcsetpgrp , .Fn time , .Fn times , .Fn umask , .Fn uname , .Fn unlink , .Fn utime , .Fn wait , .Fn waitpid , .Fn write .Pp リアルタイムインタフェース .Pp .Fn aio_error , .Fn clock_gettime , .Fn sigpause , .Fn timer_getoverrun , .Fn aio_return , .Fn fdatasync , .Fn sigqueue , .Fn timer_gettime , .Fn aio_suspend , .Fn sem_post , .Fn sigset , .Fn timer_settime .Pp -ANSI C インタフェース +.Tn ANSI C +インタフェース .Pp .Fn strcpy , .Fn strcat , .Fn strncpy , .Fn strncat そして多分他にもいくつか .Pp 拡張インタフェース .Pp .Fn strlcpy , .Fn strlcat .Pp 上のリストに記載されていないすべての関数は、シグナルに関して安全でない と考えられます。 つまり、そのような関数がシグナルハンドラから呼び出されるときの動作は、 未定義です。 しかし一般的に、シグナルハンドラはフラグを設定する以上のことは あまりするべきではなく、それ以外のアクションは安全ではありません。 .Pp また、大域変数 .Va errno のコピーを作成し、シグナルハンドラから戻る前にその値を戻すように するのはよいことです。 こうすることによって、シグナルハンドラの内部から呼ばれた関数によって .Va errno が設定されてしまうという副作用を防ぐことができます。 .Sh 戻り値 .Rv -std sigaction .Sh 使用例 ハンドラが一致する可能性のあるプロトタイプは 3 つあります: .Bl -tag -offset indent -width short -.It ANSI C: +.It Tn ANSI C: .Ft void .Fn handler int ; .It 伝統的な BSD スタイル: .Ft void .Fn handler int "int code" "struct sigcontext *scp" ; -.It POSIX の SA_SIGINFO: +.It Tn POSIX の Dv SA_SIGINFO: .Ft void .Fn handler int "siginfo_t *info" "ucontext_t *uap" ; .El .Pp -フラグ中で SA_SIGINFO ビットが設定されている場合、 -ハンドラ関数は SA_SIGINFO プロトタイプに一致しなくてはなりません。 +.Va sa_flags +フラグ中で +.Dv SA_SIGINFO +ビットが設定されている場合、ハンドラ関数は +.Dv SA_SIGINFO +プロトタイプに一致しなくてはなりません。 その場合、 -.Dv sigaction +.Vt "struct sigaction" 構造体の -.Dv sa_sigaction +.Va sa_sigaction メンバがハンドラ関数を指していなければなりません。 -この方法で SIG_DFL あるいは SIG_IGN を割り当ててはいけないことに -注意してください。 +この方法で +.Dv SIG_DFL +あるいは +.Dv SIG_IGN +を割り当ててはいけないことに注意してください。 .Pp -SA_SIGINFO フラグが設定されていない場合、ハンドラ関数は -ANSI C もしくは伝統的な +.Dv SA_SIGINFO +フラグが設定されていない場合、ハンドラ関数は +.Tn ANSI C +もしくは伝統的な .Bx プロトタイプのどちらかに一致しなくてはならず、 -.Dv sigaction +.Vt "struct sigaction" 構造体の -.Dv sa_handler +.Va sa_handler メンバがハンドラ関数を指していなければなりません。 実際には、 .Fx は常に後者である .Bx -プロトタイプの 3 つの引数を送りますし、ANSI C プロトタイプは -そのサブセットになっていますので、どちらでも動作します。 +プロトタイプの 3 つの引数を送りますし、 +.Tn ANSI C +プロトタイプはそのサブセットになっていますので、どちらでも動作します。 .Fx インクルードファイルの -.Dv sa_handler -メンバ宣言は、(POSIX の要求に従い) ANSI C のものです。 +.Va sa_handler +メンバ宣言は、 +.Tn ( POSIX +の要求に従い) +.Tn ANSI C +のものです。 そのため、 .Bx スタイルの関数のポインタの場合、警告メッセージを無くして コンパイルするにはキャストする必要があります。 伝統的な .Bx スタイルは移植性がなく、その機能性も -SA_SIGINFO ハンドラの完全な部分集合になっていますので、 +.Dv SA_SIGINFO +ハンドラの完全な部分集合になっていますので、 .Bx スタイルを使うことは推奨されていません。 .Pp .Fa sig -引数はシグナル番号で、 の +引数はシグナル番号で、 +.In signal.h +の .Dv SIG... 値のうちの 1 つです。 +.Pp .Bx スタイルのハンドラの .Fa code -引数および SA_SIGINFO ハンドラへの -.Dv info +引数および +.Dv SA_SIGINFO +ハンドラへの +.Fa info 引数の -.Dv si_code +.Va si_code メンバには、シグナルの発生理由を説明した数値コードが含まれています。 -通常、この数値コードは にある +通常、この数値コードは +.In sys/signal.h +にある .Dv SI_... 値の 1 つであるか、もしくはシグナルに特化したコード、すなわち -SIGFPE に対する +.Dv SIGFPE +に対する .Dv FPE_... 値です。 +.Pp .Bx スタイルのハンドラの .Fa scp -引数は sigcontext 構造体のインスタンスを指しています。 +引数は +.Vt "struct sigcontext" +構造体のインスタンスを指しています。 .Pp -POSIX SA_SIGINFO ハンドラの +.Tn POSIX +.Dv SA_SIGINFO +ハンドラの .Fa uap 引数は、ucontext_t のインスタンスを指しています。 .Sh エラー 以下のうち 1 つが発生すると、 .Fn sigaction システムコールはエラーになり、新しいシグナルハンドラは設置されません: .Bl -tag -width Er .It Bq Er EFAULT .Fa act か .Fa oact は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINVAL .Fa sig 引数が、正しいシグナル番号になっていません。 .It Bq Er EINVAL .Dv SIGKILL か .Dv SIGSTOP のハンドラを無視するか提供しようとしました。 .El .Sh 規格 .Fn sigaction システムコールは、 .St -p1003.1-90 に適合しています。 .Dv SA_ONSTACK フラグと .Dv SA_RESTART フラグは、Berkeley の拡張機能です。 .Dv SIGTRAP , .Dv SIGEMT , .Dv SIGBUS , .Dv SIGSYS , .Dv SIGURG , .Dv SIGIO , .Dv SIGXCPU , .Dv SIGXFSZ , .Dv SIGVTALRM , .Dv SIGPROF , .Dv SIGWINCH , .Dv SIGINFO シグナルも同様です。 これらのシグナルは、 .Bx から派生したシステムのほとんどで使用できます。 .Dv SA_NODEFER フラグと .Dv SA_RESETHAND フラグは、その他のオペレーティングシステムとの下位互換性を保つためのものです。 .Dv SA_NOCLDSTOP フラグと .Dv SA_NOCLDWAIT フラグは、その他のオペレーティングシステムで一般的に見られるオプションです。 +これらのフラグは +.Dv SIGCHLD +を無視することによってゾンビの作成を避けるオプションと一緒に、 +.St -susv2 +によって承認されました。 .Sh 関連項目 .Xr kill 1 , .Xr kill 2 , .Xr ptrace 2 , .Xr sigaltstack 2 , .Xr sigblock 2 , .Xr sigpause 2 , .Xr sigpending 2 , .Xr sigprocmask 2 , .Xr sigsetmask 2 , .Xr sigsuspend 2 , .Xr sigvec 2 , .Xr wait 2 , .Xr fpsetmask 3 , .Xr setjmp 3 , .Xr siginterrupt 3 , .Xr sigsetops 3 , .Xr ucontext 3 , .Xr tty 4 diff --git a/ja_JP.eucJP/man/man2/sigvec.2 b/ja_JP.eucJP/man/man2/sigvec.2 index 2075ec6879..562bc3eef6 100644 --- a/ja_JP.eucJP/man/man2/sigvec.2 +++ b/ja_JP.eucJP/man/man2/sigvec.2 @@ -1,325 +1,325 @@ .\" 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. .\" .\" @(#)sigvec.2 8.2 (Berkeley) 4/19/94 -.\" %FreeBSD: src/lib/libc/compat-43/sigvec.2,v 1.23 2003/09/08 19:57:13 ru Exp % +.\" %FreeBSD: src/lib/libc/compat-43/sigvec.2,v 1.24 2004/07/02 23:52:09 ru Exp % .\" .\" 2001/01/01 horikawa@jp.FreeBSD.org .\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新 .\" してください。 .\" .\" $FreeBSD$ .Dd April 19, 1994 .Dt SIGVEC 2 .Os .Sh 名称 .Nm sigvec .Nd ソフトウェアシグナル機能 .Sh ライブラリ .Lb libc .Sh 書式 .In signal.h .Bd -literal struct sigvec { void (*sv_handler)(); int sv_mask; int sv_flags; }; .Ed .Ft int .Fn sigvec "int sig" "struct sigvec *vec" "struct sigvec *ovec" .Sh 解説 .Bf -symbolic このインタフェースは、 .Xr sigaction 2 に置き換えられました。 .Ef .Pp システムではシグナルの集合を定義しており、 これらはプロセスに配信されることがあります。 シグナルの配信は、ハードウェア割込みの発生に似ています。 シグナルのさらなる発生はブロックされ、現在のプロセスコンテキストは 保存されて、新しいプロセスコンテキストが作成されます。 プロセスは、シグナルの配信先 .Em handler を指定することもあれば、シグナルを .Em ブロックすること および .Em 無視すること を指定することもあります。 シグナルが発生した場合に、システムがデフォルトのアクションを取ることを 指定することも可能です。 通常の場合、シグナルハンドラは、プロセスの現行スタックで動作します。 これは、ハンドラ毎に変更して、シグナルが特殊な .Em シグナルスタック でハンドルされるようにできます。 .Pp すべてのシグナルの .Em 優先順位 は同じです。 シグナルルーチンは、呼び出しの原因となったシグナルが .Em ブロックされた 状態で動作しますが、その他のシグナルが発生する可能性はあります。 グローバルな .Em シグナルマスク には、プロセスへの配信が現在ブロックされているシグナルの集合が 定義されています。 プロセスのシグナルマスクは、親のシグナルマスクに初期化されます (通常は 0)。 シグナルマスクは、 .Xr sigblock 2 か .Xr sigsetmask 2 を呼び出すか、シグナルがプロセスに配信された場合に変更され得ます。 .Pp シグナル条件がプロセスで発生すると、そのシグナルが、 プロセスで保留になっているシグナルの集合に追加されます。 そのシグナルがプロセスで現在 .Em ブロック されていない場合は、プロセスに配信されます。 シグナルが配信されると、プロセスの現在の状態が保存され、 新しいシグナルマスクが以下で説明するように 算出されて、シグナルハンドラが呼び出されます。 ハンドラの呼び出しは、シグナル処理ルーチンが正常に戻った場合に プロセスがシグナル配信前のコンテキストで実行を再開するように編成されます。 プロセスが別のコンテキストでの再開を望む場合は、 プロセスが前のコンテキストそのものを回復するように編成する必要があります。 .Pp シグナルがプロセスに配信されると、新しいシグナルマスクが、 プロセスのシグナルハンドラが続く間 (または .Xr sigblock 2 か .Xr sigsetmask 2 が呼び出されるまで) 設置されます。 このマスクは、現在のシグナルマスクに、配信されるシグナルを追加し、 呼び出されるハンドラに関連したシグナルマスクとの論理和を 取って形成されます。 .Pp .Fn sigvec 関数は、特定のシグナルにハンドラを割り当てます。 .Fa vec を 0 以外にした場合は、指定したシグナルを配信する場合に使用する ハンドラルーチンとマスクが指定されます。 .Dv SV_ONSTACK ビットが .Fa sv_flags で設定されている場合、システムは、 .Xr sigaltstack 2 で指定された .Em シグナルスタック のプロセスにシグナルを配信します。 .Fa ovec を 0 以外にした場合は、シグナルの前の処理情報がユーザに返されます。 .Pp 以下はすべてのシグナルのリストです。 名称は、インクルードファイル .In signal.h と同じです: .Bl -column SIGVTALARMXX "create core imagexxx" .It Sy "名称 デフォルトアクション 説明" .It Dv SIGHUP No " プロセスの終了" " 端末ラインのハングアップ" .It Dv SIGINT No " プロセスの終了" " プログラムの割込み" .It Dv SIGQUIT No " コアイメージの作成" " プログラムの終了" .It Dv SIGILL No " コアイメージの作成" " 不正な命令" .It Dv SIGTRAP No " コアイメージの作成" " トラップの追跡" .It Dv SIGABRT No " コアイメージの作成" Ta Xr abort 3 の呼び出し (以前の .Dv SIGIOT ) .It Dv SIGEMT No " コアイメージの作成" " 実行した命令のエミュレート" .It Dv SIGFPE No " コアイメージの作成" " 浮動小数例外" .It Dv SIGKILL No " プロセスの終了" " プログラムの終了" .It Dv SIGBUS No " コアイメージの作成" " バスエラー" .It Dv SIGSEGV No " コアイメージの作成" " セグメンテーション違反" .It Dv SIGSYS No " コアイメージの作成" " 存在しないシステムコールの呼び出し" .It Dv SIGPIPE No " プロセスの終了" " 読取り側のないパイプでの書込み" .It Dv SIGALRM No " プロセスの終了" " リアルタイムタイマの満了" .It Dv SIGTERM No " プロセスの終了" " ソフトウェア終了シグナル" .It Dv SIGURG No " シグナルの放棄" " 緊急事態がソケットに存在" .It Dv SIGSTOP No " プロセスの停止" " 停止 (補足も無視もできません) .It Dv SIGTSTP No " プロセスの停止" " キーボードから生成された停止シグナル" .It Dv SIGCONT No " シグナルの放棄" " 停止後の継続" .It Dv SIGCHLD No " シグナルの放棄" " 子ステータスの変化" .It Dv SIGTTIN No " プロセスの停止" " 制御端末からバックグラウンド読み取ろうとした" .It Dv SIGTTOU No " プロセスの停止" " 制御端末にバックグラウンド書き込もうとした" .It Dv SIGIO No " シグナルの放棄" " 記述子に" .Tn I/O 可能 ( .Xr fcntl 2 参照) .It Dv SIGXCPU No " プロセスの終了" " cpu 制限時間の超過 ( .Xr setrlimit 2 参照) .It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過 (" .Xr setrlimit 2 参照) .It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム (" .Xr setitimer 2 参照) .It Dv SIGPROF No " プロセスの終了" " プロファイリングタイマアラーム (" .Xr setitimer 2 参照) .It Dv SIGWINCH No " シグナルの放棄" " ウィンドウサイズの変化" .It Dv SIGINFO No " シグナルの放棄" " キーボードからのステータス要求" .It Dv SIGUSR1 No " プロセスの終了" " ユーザ定義シグナル 1" .It Dv SIGUSR2 No " プロセスの終了" " ユーザ定義シグナル 2" .El .Pp シグナルハンドラが設置されると、 .Fn sigvec を再度呼び出すか .Xr execve 2 を実行するまでシグナルハンドラは設置されたまま残ります。 シグナルに固有なデフォルトアクションへは、 .Fa sv_handler を .Dv SIG_DFL に設定することでリセットできます。 デフォルトは、プロセスの終了 (コアダンプが取られることもあります)、 アクションなし、プロセスの停止、プロセスの継続です。 それぞれのシグナルのデフォルトアクションについては、 上のシグナルリストを参照してください。 .Fa sv_handler が .Dv SIG_IGN である場合、シグナルの現在と保留中のインスタンスは無視されて放棄されます。 .Pp 以下のリストのシステムコール中にシグナルが補足されると、 通常の場合、呼び出しは再開されます。 .Dv SV_INTERRUPT ビットを .Fa sv_flags で設定することで、システムコールは、 .Er EINTR エラー値を伴い、途中で終了するように強制可能です。 影響を受けるシステムコールは、 通信チャネルか遅いデバイス (端末などで、通常ファイルではない) に対する .Xr read 2 , .Xr write 2 , .Xr sendto 2 , .Xr recvfrom 2 , .Xr sendmsg 2 , .Xr recvmsg 2 と .Xr wait 2 , .Xr ioctl 2 の途中です。 しかし、すでに実行されているシステムコールは再開されず、 部分的な結果 (短い読取りカウントなど) を返します。 .Pp .Xr fork 2 か .Xr vfork 2 の後では、すべてのシグナル、シグナルマスク、シグナルスタック、 再開 / 割込みフラグが子に継承されます。 .Pp .Xr execve 2 システムコールは、補足されたすべてのシグナルのデフォルトアクションを元に戻し、 ユーザスタックで補足されるすべてのシグナルをリセットします。 無視されたシグナルは無視されたまま残ります。 シグナルマスクは同じ状態のままです。 システムコールに割り込むシグナルは、割込みを続けます。 .Sh 注 .Fa vec に指定したマスクでは、 .Dv SIGKILL と .Dv SIGSTOP をブロックできません。 これは、システムが暗黙的に課す制限事項です。 .Pp .Bx 4.2 では .Dv SV_INTERRUPT フラグを使用できないので、下位互換性が必要な場合は使用しないでください。 .Sh 戻り値 .Rv -std sigvec .Sh エラー 以下のうち 1 つが発生すると、 .Fn sigvec 関数はエラーとなり、新しいシグナルハンドラは設置されません: .Bl -tag -width Er .It Bq Er EFAULT .Fa vec か .Fa ovec は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINVAL .Fa Sig 引数が、正しいシグナル番号になっていません。 .It Bq Er EINVAL .Dv SIGKILL か .Dv SIGSTOP のハンドラを無視するか提供しようとしました。 .El .Sh 関連項目 .Xr kill 1 , .Xr kill 2 , .Xr ptrace 2 , .Xr sigaction 2 , .Xr sigaltstack 2 , .Xr sigblock 2 , .Xr sigpause 2 , .Xr sigprocmask 2 , .Xr sigsetmask 2 , .Xr sigsuspend 2 , .Xr setjmp 3 , .Xr siginterrupt 3 , .Xr signal 3 , .Xr sigsetops 3 , .Xr tty 4 .Sh 使用例 .Tn VAX\-11 では、以下のようにハンドラルーチンを宣言できます。 .Bd -literal -offset indent void handler(sig, code, scp) int sig, code; struct sigcontext *scp; .Ed .Pp .Fa sig は、ハードウェアフォルトとトラップのマップ対象のシグナル番号であり、 下のように定義されます。 .Fa code 引数は、下で定義する定数、または互換性モードフォルトの場合は、 ハードウェアが提供するコードであるパラメータです (互換性モードフォルトは、pslに .Dv PSL_CM が設定されていることから、他の .Dv SIGILL トラップと区別されます)。 .Fa scp 引数は、 .Fa sigcontext 構造体 ( .In signal.h で定義) へのポインタで、シグナル前にコンテキストを復元するために使用されます。 .Sh バグ このマニュアルページは不明確です。 diff --git a/ja_JP.eucJP/man/man2/socket.2 b/ja_JP.eucJP/man/man2/socket.2 index 2f83d83d6c..5b359cb2ee 100644 --- a/ja_JP.eucJP/man/man2/socket.2 +++ b/ja_JP.eucJP/man/man2/socket.2 @@ -1,268 +1,268 @@ .\" 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: @(#)socket.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/socket.2,v 1.29 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/socket.2,v 1.30 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .\" .Dd November 24, 1997 .Dt SOCKET 2 .Os .Sh 名称 .Nm socket .Nd 通信のエンドポイントの作成 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int .Fn socket "int domain" "int type" "int protocol" .Sh 解説 .Fn socket システムコールは、通信のエンドポイントを作成し、記述子を戻します。 .Pp .Fa domain 引数では、通信を行う通信ドメインを指定します。 これにより、使用するプロトコルファミリが選択されます。 このプロトコルファミリは、インクルードファイル .In sys/socket.h で定義されています。 現在解釈されるフォーマットは以下のとおりです: .Pp .Bd -literal -offset indent -compact PF_LOCAL PF_UNIX と呼ばれていた、ホスト内プロトコル PF_UNIX ホスト内プロトコル、使用は奨励されない。 PF_LOCAL を使用のこと PF_INET IPv4 プロトコル PF_PUP BSP のような PUP プロトコル PF_APPLETALK AppleTalk プロトコル PF_ROUTE 内部ルーティングプロトコル PF_LINK リンク層インタフェース PF_IPX Novell 社 IPX (Internet Packet eXchange) プロトコル PF_RTIP RTIP パケットの識別に使用 PF_PIP PIP パケットの識別に使用 PF_ISDN 統合デジタル通信サービス網 (ISDN) PF_KEY 内部鍵管理機能 PF_INET6 IPv6 プロトコル 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_RDM 伝達が信頼できるパケット SOCK_SEQPACKET 順序付きパケットストリーム .Ed .Pp .Dv SOCK_STREAM タイプは、連続した、信頼性のある、双方向接続ベースの バイトストリームを提供します。 帯域外データ転送メカニズムがサポートされることもあります。 .Dv SOCK_DGRAM ソケットでは、データグラム (コネクションレスで信頼性のない、 最大長が固定の (一般的には小さい) メッセージ) がサポートされます。 .Dv SOCK_SEQPACKET ソケットは、連続した、信頼性のある、双方向接続ベースの 最大長が固定のデータグラムの転送を提供します。 各読取りシステムコールでパケット全体を読み取る必要があるかもしれません。 この機能はプロトコル固有のもので、現在のところ実装されていません。 .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 分間) アイドル接続で応答がない場合はエラーとなります。 破損したストリームでプロセスが送信すると、 .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 オプション で制御されます。 このオプションは、ファイル .In sys/socket.h に定義されています。 .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 .Rs .%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/statfs.2 b/ja_JP.eucJP/man/man2/statfs.2 index f198cb3b6e..accedae790 100644 --- a/ja_JP.eucJP/man/man2/statfs.2 +++ b/ja_JP.eucJP/man/man2/statfs.2 @@ -1,217 +1,217 @@ .\" 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. .\" .\" @(#)statfs.2 8.5 (Berkeley) 5/24/95 -.\" %FreeBSD: src/lib/libc/sys/statfs.2,v 1.22 2003/11/16 04:08:16 tjr Exp % +.\" %FreeBSD: src/lib/libc/sys/statfs.2,v 1.25 2004/07/20 19:30:57 csjp Exp % .\" .\" $FreeBSD$ .Dd November 16, 2003 .Dt STATFS 2 .Os .Sh 名称 .Nm statfs .Nd ファイルシステムの統計を入手 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/mount.h .Ft int .Fn statfs "const char *path" "struct statfs *buf" .Ft int .Fn fstatfs "int fd" "struct statfs *buf" .Sh 解説 .Fn statfs システムコールは、マウントされているファイルシステムの情報を戻します。 .Fa path 引数は、マウントされているファイルシステム内の任意のファイルのパス名です。 .Fa buf 引数は、以下のように定義されている .Vt statfs の構造体のポインタです: .Bd -literal typedef struct fsid { int32_t val[2]; } fsid_t; /* ファイルシステム ID 型 */ /* * ファイルシステム統計 */ #define MFSNAMELEN 16 /* ヌルを含むファイルシステム名の長さ */ #define MNAMELEN 90 /* 戻り値の用のバッファの長さ */ #define STATFS_VERSION 0x20030518 /* 現在のバージョン番号 */ struct statfs { uint32_t f_version; /* 構造体のバージョン番号 */ uint32_t f_type; /* ファイルシステムのタイプ */ uint64_t f_flags; /* マウントフラグのコピー */ uint64_t f_bsize; /* ファイルシステムの断片サイズ */ uint64_t f_iosize; /* 最適な転送ブロックサイズ */ uint64_t f_blocks; /* ファイルシステム上の合計データブロックサイズ */ uint64_t f_bfree; /* ファイルシステム上の利用可能なブロック */ int64_t f_bavail; /* スーパユーザ以外が利用可能なブロック */ uint64_t f_files; /* ファイルシステム上の合計ノード数 */ int64_t f_ffree; /* スーパユーザ以外が利用可能なノード数 */ uint64_t f_syncwrites; /* マウントしてからの同期書込み数 */ uint64_t f_asyncwrites; /* マウントしてからの非同期書込み数 */ uint64_t f_syncreads; /* マウントしてからの同期読取り数 */ uint64_t f_asyncreads; /* マウントしてからの非同期読取り数 */ uint64_t f_spare[10]; /* 未使用領域 */ uint32_t f_namemax; /* ファイル名の長さの最大 */ uid_t f_owner; /* ファイルシステムをマウントしたユーザ */ fsid_t f_fsid; /* ファイルシステム ID */ char f_charspare[80]; /* 後のための余白 */ char f_fstypename[MFSNAMELEN]; /* ファイルシステムのタイプ名 */ char f_mntfromname[MNAMELEN]; /* マウントされたファイルシステム */ char f_mntonname[MNAMELEN]; /* このディレクトリにマウント */ }; .Ed .Pp 戻される可能性があるフラグは以下のとおりです: .Bl -tag -width MNT_SYNCHRONOUS .It Dv MNT_RDONLY ファイルシステムが読取り専用でマウントされています。 スーパユーザでも書込めません。 .It Dv MNT_NOEXEC そのファイルシステムからファイルを実行できません。 .It Dv MNT_NOSUID ファイルの setuid ビットと setgid ビットが、 ファイルの実行時に受け入れられません。 .It Dv MNT_NODEV ファイルシステムの特殊ファイルを開けません。 .It Dv MNT_SYNCHRONOUS ファイルシステムへのすべての入出力が、同期を取って実行されます。 .It Dv MNT_ASYNC ファイルシステムの入出力が、同期を取って実行されません。 .It Dv MNT_SOFTDEP ソフトアップデートが動作します .Xr ( ffs 7 を参照してください)。 .It Dv MNT_SUIDDIR ディレクトリの SUID ビットを特別に取り扱います。 .It Dv MNT_UNION 下層のファイルシステムとのユニオン。 .It Dv MNT_NOSYMFOLLOW シンボリックリンクを辿りません。 .It Dv MNT_NOCLUSTERR 読み取りクラスタリングが無効になっています。 .It Dv MNT_NOCLUSTERW 書き込みクラスタリングが無効になっています。 .\".It Dv MNT_JAILDEVFS .\"XXX .It Dv MNT_MULTILABEL 各オブジェクトに対する Mandatory Access Control (MAC) サポート .Xr ( mac 4 を参照してください)。 .It Dv MNT_ACLS Access Control List (ACL) サポートが有効になっています。 .It Dv MNT_LOCAL ファイルシステムがローカルに常駐しています。 .It Dv MNT_QUOTA ファイルシステムでクォータが有効になっています。 .It Dv MNT_ROOTFS ルートファイルシステムを確認します。 .It Dv MNT_EXRDONLY ファイルシステムが、読取り専用でエクスポートされます。 .It Dv MNT_NOATIME ファイルアクセス時刻の更新が無効になっています。 .It Dv MNT_USER ファイルシステムがユーザによってマウントされています。 .\".It Dv MNT_IGNORE .\"XXX .It Dv MNT_EXPORTED ファイルシステムが、読み書きの両方でエクスポートされます。 .It Dv MNT_DEFEXPORTED ファイルシステムが、読み書きの両方で 任意のインターネットホストにエクスポートされます。 .It Dv MNT_EXPORTANON ファイルシステムが、すべてのリモートアクセスを匿名ユーザにマップします。 .It Dv MNT_EXKERB ファイルシステムが、Kerberos uid マッピングでエクスポートされます。 .It Dv MNT_EXPUBLIC ファイルシステムが、一般公開されています (WebNFS)。 .El .Pp 特定のファイルシステムで定義されていないフィールドは、-1 に設定されます。 .Fn fstatfs システムコールは、記述子 .Fa fd で参照されるオープンファイルに対して同じ情報を戻します。 .Sh 戻り値 .Rv -std .Sh エラー .Fn statfs システムコールは、以下のうちの 1 つ以上が真である場合にエラーとなります: .Bl -tag -width Er .It Bq Er ENOTDIR .Fa path のパスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG .Fa path の構成要素が 255 文字を越えているか、または .Fa path 全体が 1023 文字を越えています。 .It Bq Er ENOENT .Fa path の参照するファイルが存在しません。 .It Bq Er EACCES .Fa path には、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP .Fa path を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EFAULT .Fa buf 引数または .Fa path 引数が、不正なアドレスを指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Pp .Fn fstatfs システムコールは、以下のうち 1 つ以上が真である場合にエラーとなります: .Bl -tag -width Er .It Bq Er EBADF .Fa fd 引数が有効オープンファイル記述子ではありません。 .It Bq Er EFAULT .Fa buf 引数が不正なアドレスを指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .El .Sh 歴史 .Fn statfs システムコールは、 .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/swapon.2 b/ja_JP.eucJP/man/man2/swapon.2 index 821ec42656..d6d24040b4 100644 --- a/ja_JP.eucJP/man/man2/swapon.2 +++ b/ja_JP.eucJP/man/man2/swapon.2 @@ -1,141 +1,141 @@ .\" 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. .\" .\" @(#)swapon.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/swapon.2,v 1.15 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/swapon.2,v 1.16 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt SWAPON 2 .Os .Sh 名称 .Nm swapon , swapoff .Nd インタリーブページング/スワップ用のスワップデバイスの制御 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn swapon "const char *special" .Ft int .Fn swapoff "const char *special" .Sh 解説 .Fn swapon システムコールは、システムがページングとスワッピングの割り当てに ブロックデバイス .Fa special を使用できるようにします。 潜在的に使用できるデバイスの名前はシステムに知られていて、 システム設定時に定義されます。 .Fa special のスワップ領域のサイズは、デバイスがスワッピングに 初めて使用できるようになるときに算出されます。 .Pp .Fn swapoff システムコールは、与えられたデバイスのページングとスワッピングを無効にします。 すべての関連したスワップのメタデータは割り当て解除され、そのデバイスは 他の用途で利用可能にされます。 .Sh 戻り値 エラーが発生した場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn swapon および .Fn swapoff は共に以下の場合に失敗します: .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定したデバイスが存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EPERM スーパユーザ以外のユーザによって呼び出されました。 .It Bq Er EFAULT .Fa special 引数がプロセスに割り当てられたアドレス空間の外側を指しています。 .El .Pp 加えて、 .Fn swapon は以下の理由で失敗します: .Bl -tag -width Er .It Bq Er EINVAL システムがブート時のスワップデバイス数 .Va vm.nswapdev の制限に達しています。 .It Bq Er ENOTBLK .Fa special 引数はブロックデバイスではありません。 .It Bq Er EBUSY .Fa special で指定したデバイスは、すでにスワッピングに使用できるようになっています。 .It Bq Er ENXIO .Fa special のメジャーデバイス番号が範囲外になっています (これは関連するハードウェアに対応するデバイスドライバが 存在しないことを表します)。 .It Bq Er EIO スワップデバイスをオープンする間に入出力エラーが発生しました。 .El .Pp 最後に、 .Fn swapoff は以下の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL 現在、システムが .Fa special にスワップしていません。 .It Bq Er ENOMEM 与えられたデバイスのページングとスワッピングを安全に無効化するための 仮想メモリが十分に利用できません。 .El .Sh 関連項目 .Xr config 8 , .Xr swapon 8 , .Xr sysctl 8 .Sh 歴史 .Fn swapon システムコールは、 .Bx 4.0 で登場しました。 .Fn swapoff システムコールは、 .Bx 5.0 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sysarch.2 b/ja_JP.eucJP/man/man2/sysarch.2 index 04cfc5d219..d8b9953688 100644 --- a/ja_JP.eucJP/man/man2/sysarch.2 +++ b/ja_JP.eucJP/man/man2/sysarch.2 @@ -1,78 +1,78 @@ .\" %NetBSD: sysarch.2,v 1.6 1998/02/25 21:24:57 perry Exp % -.\" %FreeBSD: src/lib/libc/sys/sysarch.2,v 1.8 2003/09/10 19:24:33 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/sysarch.2,v 1.9 2004/07/02 23:52:13 ru Exp % .\" .\" Copyright (c) 1980, 1991 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: @(#)syscall.2 6.3 (Berkeley) 3/10/91 .\" .\" $FreeBSD$ .Dd October 11, 1993 .Dt SYSARCH 2 .Os .Sh 名称 .Nm sysarch .Nd アーキテクチャ依存型システムコール .Sh ライブラリ .Lb libc .Sh 書式 .In machine/sysarch.h .Ft int .Fn sysarch "int number" "void *args" .Sh 解説 .Fn sysarch システムコールは、 .Fa args ポインタが指定する引数で、 .Fa number が指定するアーキテクチャ依存型関数を実行します。 .Fa args 引数は、関数の実引数を定義する構造体のポインタです。 アーキテクチャ依存型関数のシンボリック定数と引数の構造体は、 ヘッダファイル .In machine/sysarch.h にあります。 .Pp ユーザプログラムでは、 .Fn sysarch システムコールを直接呼び出さず、 アーキテクチャ依存型ライブラリを使用して関数にアクセスしてください。 .Sh 戻り値 戻り値については、それぞれのアーキテクチャ依存のシステムコールの マニュアルページを参照してください。 .Sh 関連項目 .Xr i386_get_ioperm 2 , .Xr i386_get_ldt 2 , .Xr i386_vm86 2 .Sh 歴史 このマニュアルページは、 .Nx から取得されました。 diff --git a/ja_JP.eucJP/man/man2/truncate.2 b/ja_JP.eucJP/man/man2/truncate.2 index 7f696af23f..a74d5df7b9 100644 --- a/ja_JP.eucJP/man/man2/truncate.2 +++ b/ja_JP.eucJP/man/man2/truncate.2 @@ -1,121 +1,121 @@ .\" 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. .\" .\" @(#)truncate.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/truncate.2,v 1.15 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/truncate.2,v 1.16 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt TRUNCATE 2 .Os .Sh 名称 .Nm truncate , .Nm ftruncate .Nd 指定した長さにファイルを切り捨てたり拡張したりする .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn truncate "const char *path" "off_t length" .Ft int .Fn ftruncate "int fd" "off_t length" .Sh 解説 .Fn truncate システムコールは、 .Fa path で指定されるファイルか .Fa fd で参照されるファイルのサイズが、 .Fa length バイトになるように切り捨てたり拡張します。 ファイルがこのサイズより大きい場合は、余分なデータが失われます。 ファイルがこのサイズより小さい場合は、0 が書き込まれたように拡張されます。 .Fn ftruncate では、ファイルが書込み用に開いている必要があります。 .Sh 戻り値 .Rv -std .Sh エラー .Fn truncate システムコールは、以下のような場合に処理を失敗します: .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 パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EISDIR 指定されたファイルがディレクトリになっています。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er ETXTBSY ファイルが、実行中のピュアプロシージャ (共有テキスト) ファイルです。 .It Bq Er EIO inode の更新をしている間に入出力エラーが発生しました。 .It Bq Er EFAULT .Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Pp .Fn ftruncate システムコールは、以下のような場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EBADF .Fa fd 引数が有効な記述子ではありません。 .It Bq Er EINVAL .Fa fd 引数はファイルではなくソケットを参照しています。 .It Bq Er EINVAL .Fa fd 引数が書込み用に開いていません。 .El .Sh 関連項目 .Xr open 2 .Sh バグ この呼出しは、ファイルのある範囲を放棄できるように一般化する 必要があります。 .Pp .Fn truncate を使用してファイルを拡張すると、移植性が失われます。 .Sh 歴史 .Fn truncate システムコールは、 .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/umask.2 b/ja_JP.eucJP/man/man2/umask.2 index c5d2ec74a9..11fa162556 100644 --- a/ja_JP.eucJP/man/man2/umask.2 +++ b/ja_JP.eucJP/man/man2/umask.2 @@ -1,86 +1,86 @@ .\" 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. .\" .\" @(#)umask.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/umask.2,v 1.11 2002/12/18 09:22:31 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/umask.2,v 1.12 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt UMASK 2 .Os .Sh 名称 .Nm umask .Nd ファイルモード生成マスクの設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/stat.h .Ft mode_t .Fn umask "mode_t numask" .Sh 解説 .Fn umask ルーチンは、プロセスのファイルモード生成マスクを .Fa numask に設定し、設定前のマスク値を返します。 .Fa numask のアクセス権の下位 9 ビットは、 .Xr open 2 , .Xr mkdir 2 , .Xr mkfifo 2 などのシステムコールが使用し、ファイルモードで要求される 対応するビットをオフにします ( .Xr chmod 2 を参照)。 ビットをクリアにすることで、各ユーザはそのファイルへの デフォルトアクセスを制限することができます。 .Pp デフォルトのマスク値は、S_IWGRP | S_IWOTH (022、所有者のみの書込みアクセス) です。 子プロセスは、呼び出しプロセスのマスクを継承します。 .Sh 戻り値 呼び出しによって、以前のファイルモードマスクの値が返されます。 .Sh エラー .Fn umask システムコールは、常に成功します。 .Sh 関連項目 .Xr chmod 2 , .Xr mknod 2 , .Xr open 2 .Sh 規格 .Fn umask システムコールは、 .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn umask 関数は、 .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/unlink.2 b/ja_JP.eucJP/man/man2/unlink.2 index ecf24dc13e..2669007619 100644 --- a/ja_JP.eucJP/man/man2/unlink.2 +++ b/ja_JP.eucJP/man/man2/unlink.2 @@ -1,113 +1,113 @@ .\" 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. .\" .\" @(#)unlink.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/unlink.2,v 1.16 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/unlink.2,v 1.17 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt UNLINK 2 .Os .Sh 名称 .Nm unlink .Nd ディレクトリエントリの削除 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn unlink "const char *path" .Sh 解説 .Fn unlink システムコールは、 .Fa path で指定されたリンクをディレクトリから削除し、 そのリンクで参照されていたファイルのリンク数を減らします。 ファイルのリンク数が 0 になり、ファイルを開いているプロセスがなくなると、 ファイルに関連するすべてのリソースが再利用されます。 最後のリンクが削除されたときに、ファイルを開いているプロセスが 1 つ以上あると、リンクは削除されますが、ファイルの削除は、 そのファイルへのすべての参照が閉じられるまで延期されます。 .Fa path 引数は、ディレクトリであってはなりません。 .Sh 戻り値 .Rv -std unlink .Sh エラー .Fn unlink は、以下の場合に処理を失敗します。 .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 パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EPERM 指定されたファイルがディレクトリになっています。 .It Bq Er EPERM ファイルを含むディレクトリがスティッキとマークされ、 削除するファイルを含むディレクトリまたはファイルが、 有効なユーザ ID に所有されていません。 .It Bq Er EBUSY リンクを削除するエントリが、 マウント済みファイルシステムのマウントポイントです。 .It Bq Er EIO ディレクトリエントリの削除中か、inode の割り当て解除中に 入出力エラーが発生しました。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EFAULT .Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Sh 関連項目 .Xr close 2 , .Xr link 2 , .Xr rmdir 2 , .Xr symlink 7 .Sh 歴史 .Fn unlink 関数は、 .At v6 で登場しました。 .Pp 従来の .Fn unlink システムコールでは、スーパユーザがディレクトリを削除できてしまい、 これによってファイルシステムの完全性が破壊されることがありました。 それを実行することは、すでに許可されなくなっています。 diff --git a/ja_JP.eucJP/man/man2/utrace.2 b/ja_JP.eucJP/man/man2/utrace.2 index b54173e067..3a56531fd9 100644 --- a/ja_JP.eucJP/man/man2/utrace.2 +++ b/ja_JP.eucJP/man/man2/utrace.2 @@ -1,92 +1,91 @@ .\" $NetBSD: utrace.2,v 1.11 2003/04/24 12:17:49 wiz Exp $ .\" .\" Copyright (c) 2000 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Gregory McGarry . .\" .\" 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 NetBSD .\" Foundation, Inc. and its contributors. .\" 4. Neither the name of The NetBSD Foundation 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 AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/lib/libc/sys/utrace.2,v 1.2 2003/11/11 04:54:10 jkoshy Exp % +.\" %FreeBSD: src/lib/libc/sys/utrace.2,v 1.3 2004/07/03 23:14:34 ru Exp % .\" .\" $FreeBSD$ .Dd December 28, 2000 .Dt UTRACE 2 .Os .Sh 名称 .Nm utrace .Nd ktrace のログの中へのユーザレコードの挿入 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/param.h .In sys/time.h .In sys/uio.h .In sys/ktrace.h .Ft int .Fn utrace "const void *addr" "size_t len" .Sh 解説 プロセストレースに、ユーザによって供給された情報のレコードを追加します。 このレコードは .Fa addr によって指されているメモリから .Fa len バイトを格納しています。 この呼び出しは、 呼び出したプロセスがトレースされている場合にのみ効果があります。 .Sh 戻り値 -成功して完了した時には、0 の値が返されます。 -そうでない時には、-1 の値が返され、そのエラーを示すために -.Va errno -が設定されます。 +.Rv -std .Sh エラー .Bl -tag -width Er .It Bq Er EINVAL 指定されたデータの長さ .Fa len が .Dv KTR_USER_MAXLEN よりも大きいです。 .It Bq Er ENOMEM 要求を実現するためにはメモリが不足しています。 .It Bq Er ENOSYS 現在実行中のカーネルが .Xr ktrace 2 -のサポート (options KTRACE) を外してコンパイルされています。 +のサポート +.Pq Cd "options KTRACE" +を外してコンパイルされています。 .El .Sh 関連項目 .Xr kdump 1 , .Xr ktrace 1 , .Xr ktrace 2 .Sh 歴史 .Fn utrace システムコールは .Fx 2.2 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/vfork.2 b/ja_JP.eucJP/man/man2/vfork.2 index 5e26852a6e..6f7485e5dd 100644 --- a/ja_JP.eucJP/man/man2/vfork.2 +++ b/ja_JP.eucJP/man/man2/vfork.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. .\" .\" @(#)vfork.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/vfork.2,v 1.22 2003/04/27 21:01:34 robert Exp % +.\" %FreeBSD: src/lib/libc/sys/vfork.2,v 1.24 2004/07/04 20:55:48 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt VFORK 2 .Os .Sh 名称 .Nm vfork .Nd 効率的な方法で仮想メモリに新しいプロセスを生成 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft pid_t .Fn vfork void .Sh 解説 .Fn vfork システムコールは、古いプロセスのアドレス空間を完全にコピーせずに、 新しいプロセスを作成できます。 ページングする環境では、古いプロセスのアドレス空間を完全にコピーすることは、 非常に非効率的です。 .Xr fork 2 する目的が、 .Xr execve 2 のための新しいシステムコンテキストの作成である場合に有効です。 .Fn vfork システムコールは、 .Xr execve 2 を呼び出すか、終了する ( .Xr _exit 2 を呼び出すか異常終了する) まで子が親のメモリと制御スレッドを借りるという点で、 .Xr fork 2 と異なります。 親プロセスは、子がリソースを使用している間停止されます。 .Pp .Fn vfork システムコールは、0 を子のコンテキストに、そして (後に) 子の pid を 親のコンテキストに戻します。 .Pp 通常の場合、 .Fn vfork システムコールは .Xr fork 2 のように使用できます。 しかし、 .Fn vfork を呼び出したプロシージャから子のコンテキストで動作している間に 動作して戻ることはありません。 最終的に .Fn vfork から戻ると、存在しないスタックフレームに戻るからです。 .Xr execve 2 を実行できない場合は、 .Xr exit 3 ではなく、 .Xr _exit 2 を呼び出してください。 .Xr exit 3 は標準入出力チャネルをフラッシュして閉じるため、 親プロセスの標準入出力データ構造体を壊してしまいます ( .Xr fork 2 でも、バッファに入っているデータが 2 回フラッシュされるので、 .Xr exit 3 を呼び出さないでください)。 .Sh 関連項目 .Xr execve 2 , +.Xr _exit 2 , .Xr fork 2 , .Xr rfork 2 , .Xr sigvec 2 , .Xr wait 2 , -.Xr _exit 2 , .Xr exit 3 .Sh 戻り値 .Xr fork 2 と同じです。 .Sh バグ このシステムコールは、適切なシステム共有メカニズムが実現したときに 削除されます。 削除された場合は、 .Xr fork 2 と同義になるので、 .Xr vfork 2 のメモリ共有の現実装には依存しないでください。 .Pp デッドロックを避けるため、 .Fn vfork の途中で子になるプロセスには、 .Dv SIGTTOU シグナルや .Dv SIGTTIN シグナルが送信されません。 その代わりに出力、または、 .Xr ioctl 2 呼び出しが許可され、入力しようとすると EOF となります。 .Sh 歴史 .Fn vfork システムコールは、 .Bx 2.9 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/wait.2 b/ja_JP.eucJP/man/man2/wait.2 index 8d0e89fa69..0f2d906ac6 100644 --- a/ja_JP.eucJP/man/man2/wait.2 +++ b/ja_JP.eucJP/man/man2/wait.2 @@ -1,264 +1,272 @@ .\" 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. .\" .\" @(#)wait.2 8.2 (Berkeley) 4/19/94 .\" -.\" %FreeBSD: src/lib/libc/sys/wait.2,v 1.16 2002/12/19 09:40:25 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/wait.2,v 1.19 2004/07/04 20:55:48 ru Exp % .\" $FreeBSD$ .Dd April 19, 1994 .Dt WAIT 2 .Os .Sh 名称 .Nm wait , .Nm waitpid , .Nm wait4 , .Nm wait3 .Nd プロセスの終了待機 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/wait.h .Ft pid_t .Fn wait "int *status" .In sys/time.h .In sys/resource.h .Ft pid_t .Fn waitpid "pid_t wpid" "int *status" "int options" .Ft pid_t .Fn wait3 "int *status" "int options" "struct rusage *rusage" .Ft pid_t .Fn wait4 "pid_t wpid" "int *status" "int options" "struct rusage *rusage" .Sh 解説 .Fn wait 関数は、終了した子プロセスの .Fa status 情報が使用できるようになるまで、またはシグナルを受信するまで、 呼び出しプロセスの実行を停止します。 .Fn wait 呼び出しが成功すると、 .Fa status 領域には下の定義のように終了したプロセスの終了情報が入ります。 .Pp .Fn wait4 システムコールは、特定の子プロセスを待つ必要があり、子プロセスが蓄積した リソース利用統計あるいはオプションを必要とするプログラムのために、 より一般的なインタフェースを提供します。 その他の待機関数は、 .Fn wait4 を使用して実装されています。 .Pp .Fa wpid 引数は待つべき子プロセスの集合を指定します。 .Fa wpid が -1 である場合、この呼び出しはすべての子プロセスを待ちます。 .Fa wpid が 0 である場合、この呼び出しは、呼び出し側のプロセスグループの すべての子プロセスを待ちます。 .Fa wpid が 0 より大きい場合、この呼び出しはプロセス ID が .Fa wpid であるプロセスを待ちます。 .Fa wpid が -1 より小さい場合、呼び出しは、プロセスグループ ID が .Fa wpid の絶対値に等しいプロセスを待ちます。 .Pp .Fa status 引数は、以下のように定義されています。 .Fa options 引数には、以下の任意のオプションのビット論理和が入ります。 .Dv WCONTINUED オプションは、カレントプロセスの子プロセスで、ジョブ制御の停止状態から .Dv SIGCONT シグナルを受け取って復帰したプロセスのステータスも 報告するべきであることを示します。 .Dv WNOHANG オプションは、ステータスを報告するプロセスがない場合に呼び出しが ブロックしないことを示すために使用します。 .Dv WUNTRACED オプションを設定すると、SIGTTIN シグナル、SIGTTOU シグナル、SIGTSTP シグナル、 .Dv SIGSTOP シグナルのために停止したカレントプロセスの子にも、 そのステータスを報告させます。 .Fa rusage が 0 以外である場合は、終了したプロセスと そのすべての子が使用したリソースのサマリが返されます (現在のところ、この情報は停止したプロセスについては使用できません)。 .Dv WNOHANG オプションが指定され、ステータスを報告するプロセスがない場合、 .Fn wait4 はプロセス ID 0 を戻します。 .Pp .Fn waitpid 関数は、 .Fa rusage の値を 0 にした .Fn wait4 と同じです。 古い .Fn wait3 呼び出しは、 .Fa wpid の値を -1 にした .Fn wait4 と同じです。 .Pp 以下のマクロは、プロセスの終了の仕方を知るのに使用できます。 最初の 3 つのマクロは、0 以外 (真) の値を評価します: .Bl -tag -width Ds .It Fn WIFCONTINUED status プロセスが終了しておらず、ジョブ制御の停止状態のあと復帰した場合に 真となります。 このマクロは wait 呼び出しに .Dv WCONTINUED オプションが指定された場合のみ真となります。 .It Fn WIFEXITED status .Xr _exit 2 か .Xr exit 3 を呼び出し、プロセスが正常に終了した場合に真となります。 .It Fn WIFSIGNALED status シグナルを受信したためにプロセスが終了した場合に真となります。 .It Fn WIFSTOPPED status プロセスが終了していないが、停止していて再開できる場合に真となります。 このマクロは .Fn wait 呼び出しで .Dv WUNTRACED オプションを指定するか、子プロセスがトレースされている ( .Xr ptrace 2 を参照) 場合のみに真となります。 .El .Pp 上記マクロの値に従って、以下のマクロは、 子プロセスの残りのステータス情報を生成します: .Bl -tag -width Ds .It Fn WEXITSTATUS status .Fn WIFEXITED status が真である場合に、子が .Xr _exit 2 か .Xr exit 3 に渡した引数の下位 8 ビットを評価します。 .It Fn WTERMSIG status .Fn WIFSIGNALED status が真である場合に、プロセスの終了の原因となったシグナルの番号を評価します。 .It Fn WCOREDUMP status .Fn WIFSIGNALED status が真である場合に、プロセスが終了した後で、シグナルを受信したときの プロセスのイメージを含むコアファイルが作成された場合に真となります。 .It Fn WSTOPSIG status .Fn WIFSTOPPED status が真である場合に、プロセスの停止の原因となったシグナルの番号を評価します。 .El .Sh 注 終了シグナルのリストについては、 .Xr sigaction 2 を参照してください。 ステータスが 0 であるということは、正常に終了したということです。 .Pp すべての子プロセスの終了を待たずに親プロセスが終了すると、 残りの子プロセスには親プロセス ID に 1 (init のプロセス ID) が 割り当てられます。 .Pp 任意の .Fn wait 呼び出しが保留になっている間にシグナルを受信すると、 シグナル受信ルーチンが戻ったときに、 呼び出しは割り込まれるか再開されます。 これはシグナルに影響するオプションに依存します。 .Xr intro 2 システムコールの再開 (System call restart) の項目を参照してください。 .Sh 戻り値 子プロセスが停止したか終了したために .Fn wait が戻った場合は、子のプロセス ID が呼び出し側プロセスに戻されます。 その他の場合は -1 が戻され、 .Va errno がエラーを示すように設定されます。 .Pp 子プロセスが停止したか終了したために .Fn wait4 , .Fn wait3 , .Fn waitpid が戻った場合は、子のプロセス ID が呼び出し側プロセスに戻されます。 まだ wait されていない子プロセスが存在しない場合は、-1 が戻されて .Va errno が .Er ECHILD に設定されます。 .Dv WNOHANG が指定され、停止した子または終了した子がない場合は 0 が戻されます。 エラーが検出されるか、受信シグナルによりこの呼び出しが異常終了した場合は、 -1 が戻され、 .Va errno がエラーを示すように設定されます。 .Sh エラー .Fn wait 関数は以下の場合にエラーとなり、ただちに戻ります: .Bl -tag -width Er .It Bq Er ECHILD 呼び出し側プロセスは、wait されていない子プロセスを持ちません。 +.It Bq Er ECHILD +シグナル +.Dv SIGCHLD +を無視すること、またはこのシグナルに +.Dv SA_NOCLDWAIT +フラグを設定することにより、呼び出し側のプロセスは既にシステムに +このような戻り値を廃棄するように要求しているので、 +終了された子プロセスからの戻り値が無いことが可能です。 .It Bq Er EFAULT .Fa status 引数か .Fa rusage 引数が違法なアドレスを指しています。 (子プロセスの終了前には検出されないことがあります。) .It Bq Er EINTR 呼び出しが受信シグナルによって割り込まれたか、シグナルに .Dv SA_RESTART フラグが設定されていません。 .El .Sh 規格 .Fn wait 関数と .Fn waitpid 関数は POSIX によって定義されています。 .Fn wait4 と .Fn wait3 は POSIX の仕様ではありません。 .Fn WCOREDUMP マクロおよび保留中の .Fn wait 呼び出しを再開する機能は POSIX インタフェースの拡張機能です。 .Sh 関連項目 +.Xr _exit 2 , .Xr ptrace 2 , .Xr sigaction 2 , -.Xr _exit 2 , .Xr exit 3 .Sh 歴史 .Fn wait 関数は、 .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/write.2 b/ja_JP.eucJP/man/man2/write.2 index 7b4aeda8ab..bb01c4c3f9 100644 --- a/ja_JP.eucJP/man/man2/write.2 +++ b/ja_JP.eucJP/man/man2/write.2 @@ -1,236 +1,236 @@ .\" 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.25 2003/10/11 20:47:44 dds Exp % +.\" %FreeBSD: src/lib/libc/sys/write.2,v 1.26 2004/07/02 23:52:13 ru Exp % .\" .\" $FreeBSD$ .Dd April 2, 1994 .Dt WRITE 2 .Os .Sh 名称 .Nm write , .Nm writev , .Nm pwrite .Nd 出力の書込み .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/uio.h .In unistd.h .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 { void *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 は、ユーザ ID 設定ビットをファイルでクリアします。 これにより、スーパユーザが所有する書込み可能なユーザ ID 設定ファイルを 「捕えた」ユーザは、システムセキュリティを突破できなくなります。 .Pp ソケットのように、フロー制御の影響を受けるオブジェクトで 非ブロッキング I/O を使用すると、 .Fn write と .Fn writev は、要求したより少ないバイト数を書き込むことがあります。 戻り値に注意し、可能な場合にはオペレーションの残りを再度試してください。 .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 ファイルは非ブロッキング入出力の印がついた状態で、しかも、 すぐにデータを書き込める状態ではありません。 .It Bq Er EROFS スライスの先頭にあるディスクラベル領域に書込みを行おうとしました。 ディスクラベル領域への書込みを有効にするには .Xr disklabel 8 .Fl W を参照してください。 .El .Pp .Fn writev は、以下のエラーを戻すことがあります: .Bl -tag -width Er .It Bq Er EDESTADDRREQ .Xr connect 2 を使用して書込み先アドレスを設定した .Ux ドメインデータグラムソケットに書き込む場合に、書込み先が使用できません。 .It Bq Er EINVAL .Fa iovcnt 引数が 0 以下になっているか、 .Dv IOV_MAX より、大きくなっています。 .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 で登場しました。