diff --git a/ja_JP.eucJP/man/man2/acct.2 b/ja_JP.eucJP/man/man2/acct.2 index 9f3cb08218..82d938eafc 100644 --- a/ja_JP.eucJP/man/man2/acct.2 +++ b/ja_JP.eucJP/man/man2/acct.2 @@ -1,126 +1,126 @@ .\" Copyright (c) 1980, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. +.\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)acct.2 8.1 (Berkeley) 6/4/93 +.\" @(#)acct.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/acct.2,v 1.19 2004/04/16 22:53:51 brueffer Exp % .\" .\" $FreeBSD$ .Dd April 17, 2004 .Dt ACCT 2 .Os .Sh 名称 .Nm acct .Nd プロセスアカウンティングを有効または無効にする .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn acct "const char *file" .Sh 解説 .Fn acct システムコールは、システムアカウンティングレコードの収集を有効または 無効にします。引数 .Fa file が NULL ポインタである場合、アカウンティングは無効にされます。 .Fa file が .Em 既存 のパス名 (ヌル文字で終わる) の場合、レコード収集が有効になり、 開始されて通常の状態で終了した各プロセスについてのアカウンティングレコードが .Fa file に追加されます。 異常な終了状態とは、再起動またはその他の致命的なシステムの問題です。 決して終了しないプロセス用のレコードは .Fn acct によっては作成できません。 .Pp .Fn acct が使用するレコード構造体の詳細については、 .In sys/acct.h および .Xr acct 5 を参照してください。 .Pp この呼び出しはスーパユーザにだけ許可されてます。 .Sh 注 アカウンティングファイルが存在しているファイルシステムの空き容量が 少なくなると、アカウンティングは自動的に無効になります。 空き容量が増えて再び利用できるようになると有効になります。 この振舞いを制御する値は、以下の .Xr sysctl 8 変数を使用して変更することが可能です: .Bl -tag -width ".Va kern.acct_chkfreq" .It Va kern.acct_chkfreq 空きディスク領域がチェックされるべき頻度を (秒単位で) 指定します。 .It Va kern.acct_resume プロセスアカウンティングを再開する、空きディスク領域のパーセンテージです。 .It Va kern.acct_suspend プロセスアカウンティングを中断する、空きディスク領域のパーセンテージです。 .El .Sh 戻り値 エラーの場合は -1 が返されます。 ファイルは存在している必要があり、呼び出しはスーパユーザだけができます。 .Sh エラー .Fn acct システムコールは次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EPERM スーパユーザ以外のユーザによって呼び出されました。 .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 EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EFAULT .Fa file 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr acct 5 , .Xr accton 8 , .Xr sa 8 .Sh 歴史 .Fn acct 関数は .At v7 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/aio_cancel.2 b/ja_JP.eucJP/man/man2/aio_cancel.2 index 6c909b0a45..fc584d262d 100644 --- a/ja_JP.eucJP/man/man2/aio_cancel.2 +++ b/ja_JP.eucJP/man/man2/aio_cancel.2 @@ -1,113 +1,115 @@ .\" Copyright (c) 1999 Softweyr LLC. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL Softweyr LLC OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %FreeBSD: src/lib/libc/sys/aio_cancel.2,v 1.22 2003/01/13 10:37:11 tjr Exp % .\" .\" $FreeBSD$ .Dd January 19, 2000 .Dt AIO_CANCEL 2 .Os .Sh 名称 .Nm aio_cancel .Nd 未解決の非同期入出力操作をキャンセルする (REALTIME) .Sh ライブラリ .Lb libc .Sh 書式 .In aio.h .Ft int .Fn aio_cancel "int fildes" "struct aiocb * iocb" .Sh 解説 .Fn aio_cancel システムコールは .Fa fildes で指定されるファイル記述子の未解決の非同期入出力をキャンセルします。 .Fa iocb が指定された場合、指定された非同期入出力要求だけをキャンセルします。 .Pp 通常の非同期通知がキャンセルされた要求に対して発生します。 要求は .Er ECANCELED のエラー結果となって完了します。 .Sh 制限 .Fn aio_cancel システムコールは raw ディスクデバイスに対する非同期入出力を キャンセルしません。 .Fn aio_cancel システムコールは、raw ディスクデバイスに関連づけられたファイル記述子に 対しては常に .Dv AIO_NOTCANCELED を返します。 .Sh 戻り値 .Fn aio_cancel システムコールは -1 を返してエラーまたは次のうちの一つを示します。 .Bl -tag -width Dv .It Bq Dv AIO_CANCELED 指定された条件のすべての未解決要求はキャンセルされました。 .It Bq Dv AIO_NOTCANCELED いくつかの要求はキャンセルされず、 その要求の状態は .Xr aio_error 2 でチェックすべきです。 .It Bq Dv AIO_ALLDONE 条件に合致するすべての要求は完了しています。 .El .Sh エラー .Fn aio_cancel から返されるエラーは、次のことを示します: .Bl -tag -width Er .It Bq Er EBADF .Fa fildes 引数が有効なファイル記述子ではありません。 .El .Sh 関連項目 .Xr aio_error 2 , .Xr aio_read 2 , .Xr aio_return 2 , .Xr aio_suspend 2 , -.Xr aio_write 2 +.Xr aio_write 2 , +.Xr aio 4 .Sh 規格 .Fn aio_cancel システムコールは .St -p1003.1 に適合しています。 .Sh 歴史 .Fn aio_cancel システムコールは .Fx 3.0 ではじめて登場しました。 機能する .Fn aio_cancel の実装は .Fx 4.0 ではじめて登場しました。 .Sh 作者 +.An -nosplit このマニュアルは始めに .An Wes Peters Aq wes@softweyr.com が作成しました。 .Fn aio_cancel が .Fx 4.0 に実装された時に .An Christopher M Sedore Aq cmsedore@maxwell.syr.edu が更新しました。 diff --git a/ja_JP.eucJP/man/man2/aio_read.2 b/ja_JP.eucJP/man/man2/aio_read.2 index 1e52c24293..d4a6833227 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.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 +.Fa 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 7ca5c217b2..405fd129e5 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.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 +.Fa 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 4af406b104..7434a06c2e 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.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 +.Fn aio_error が呼び出される必要があります。 .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/chdir.2 b/ja_JP.eucJP/man/man2/chdir.2 index a0d2817b78..ccfabcd52c 100644 --- a/ja_JP.eucJP/man/man2/chdir.2 +++ b/ja_JP.eucJP/man/man2/chdir.2 @@ -1,124 +1,124 @@ .\" Copyright (c) 1980, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. +.\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)chdir.2 8.2 (Berkeley) 12/11/93 +.\" @(#)chdir.2 8.2 (Berkeley) 12/11/93 .\" %FreeBSD: src/lib/libc/sys/chdir.2,v 1.15 2002/12/19 09:40:24 ru Exp % .\" .\" $FreeBSD$ .Dd December 11, 1993 .Dt CHDIR 2 .Os .Sh 名称 .Nm chdir , .Nm fchdir .Nd 現在の作業ディレクトリを変更する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn chdir "const char *path" .Ft int .Fn fchdir "int fd" .Sh 解説 .Fa path 引数は、ディレクトリのパス名を指します。 .Fn chdir システムコールによって、指定されたディレクトリが 現在の作業ディレクトリ、すなわちスラッシュ .Ql / で開始しないパス名のパス検索の開始点になります。 .Pp .Fn fchdir システムコールによって、 .Fa fd が参照するディレクトリが 現在の作業ディレクトリ (スラッシュ .Ql / で開始しないパス名のパス検索の開始点) になります。 .Pp ディレクトリが現在の作業ディレクトリになるためには、 プロセスがそのディレクトリへの 実行 (検索) アクセス許可を持っている必要があります。 .Sh 戻り値 .Rv -std .Sh エラー 次のうち 1 つ以上が真の場合、 .Fn chdir システムコールの処理は失敗し、現在の作業ディレクトリは変更されません: .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたディレクトリが存在しません。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EACCES パス名の構成要素のいずれかで、検索が許可されていません。 .It Bq Er EFAULT .Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Pp 次のうち 1 つ以上が真の場合、 .Fn fchdir システムコールの処理は失敗し、現在の作業ディレクトリは変更されません: .Bl -tag -width Er .It Bq Er EACCES ファイル記述子が参照するディレクトリで検索が許可されていません。 .It Bq Er ENOTDIR ファイル記述子がディレクトリを参照していません。 .It Bq Er EBADF 引数 .Fa fd が有効なファイル記述子ではありません。 .El .Sh 関連項目 .Xr chroot 2 .Sh 規格 .Fn chdir システムコールは .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn chdir システムコールは .At v7 で登場しました。 .Fn fchdir システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/chflags.2 b/ja_JP.eucJP/man/man2/chflags.2 index a9f72e8065..80f766cb1b 100644 --- a/ja_JP.eucJP/man/man2/chflags.2 +++ b/ja_JP.eucJP/man/man2/chflags.2 @@ -1,180 +1,186 @@ .\" Copyright (c) 1989, 1993 -.\" The Regents of the University of California. All rights reserved. +.\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)chflags.2 8.3 (Berkeley) 5/2/95 +.\" @(#)chflags.2 8.3 (Berkeley) 5/2/95 .\" %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" .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) を取ることで作成されます。 +指定されたフラグは次の値の論理和 +.Pf ( Em 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 フラグは、ファイルの所有者またはスーパユーザのどちらかによって 設定または設定解除できます。 +.Pp .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 -ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +ファイルシステムに読み書きしている間に +.Tn 入出力 +エラーが発生しました。 .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 -ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +ファイルシステムに読み書きしている間に +.Tn 入出力 +エラーが発生しました。 .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 04e16e8aa9..da96a709b6 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.31 2004/07/02 23:52:13 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/chmod.2,v 1.31.2.1 2005/01/05 19:20:57 trhodes Exp % .\" .\" $FreeBSD$ -.Dd June 4, 1993 +.Dd December 29, 2004 .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 +#ifndef __BSD_VISIBLE +#define S_ISTXT 0001000 /* スティッキビット */ #endif .Ed .Pp .Fx VM システムは、実行可能モジュールについてスティッキビット -.Pq Dv ISVTX +.Pq Dv ISTXT を完全に無視します。 UFS をベースとしたファイルシステム (FFS, LFS) では、 スティッキビットはディレクトリにだけ設定できます。 .Pp -.Dv ISVTX +.Dv ISTXT (`スティッキビット') が設定されているディレクトリでは、 特権のないユーザは、そのディレクトリ内にある他ユーザのファイルの削除、 名前の変更ができません。 どのユーザでも、そのユーザが所有するか適切な許可のあるディレクトリについて スティッキビットを設定できます。 スティッキビットの性質の詳細については、 .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 2306d105dc..3b64e52473 100644 --- a/ja_JP.eucJP/man/man2/chroot.2 +++ b/ja_JP.eucJP/man/man2/chroot.2 @@ -1,131 +1,133 @@ .\" 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.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 システムコールの影響を受ける時、 +.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/dup.2 b/ja_JP.eucJP/man/man2/dup.2 index 48f3ec26b5..9f89334695 100644 --- a/ja_JP.eucJP/man/man2/dup.2 +++ b/ja_JP.eucJP/man/man2/dup.2 @@ -1,156 +1,157 @@ .\" 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.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 ) 。 +.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 fa69606c63..74e0b38070 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.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 +.In unistd.h .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 +.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 プロセス ID Ta Xr getpid 2 Ns \ を参照 +.It 親プロセス ID Ta Xr getppid 2 Ns \ を参照 +.It プロセスグループ ID Ta Xr getpgrp 2 Ns \ を参照 +.It アクセスグループ Ta Xr getgroups 2 Ns \ を参照 +.It 作業ディレクトリ Ta Xr chdir 2 Ns \ を参照 +.It ルートディレクトリ Ta Xr chroot 2 Ns \ を参照 +.It 制御端末 Ta Xr termios 4 Ns \ を参照 +.It リソースの使用状況 Ta Xr getrusage 2 Ns \ を参照 +.It インターバルタイマ Ta Xr getitimer 2 Ns \ を参照 +.It リソースの使用制限 Ta Xr getrlimit 2 Ns \ を参照 +.It ファイルモードマスク Ta Xr umask 2 Ns \ を参照 .It シグナルマスク Ta Xr sigvec 2 , -.Xr sigsetmask 2 \ を参照 +.Xr sigsetmask 2 Ns \ を参照 .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 で課された最大値 +.Pq Xr getrlimit 2 +で課された最大値 以上の仮想メモリを必要とします。 .It Bq Er E2BIG 新しいプロセスの引数リストのバイト数がシステムの課した上限を 越えています。 この上限は、 .Xr sysctl 3 の MIB 変数 .Dv KERN_ARGMAX により指定されます。 .It Bq Er EFAULT 新しいプロセスファイルは、ヘッダ内のサイズ値で 示されるほど長くはありません。 .It Bq Er EFAULT .Fa path , .Fa argv , または .Fa envp 引数が正しくないアドレスを指しています。 .It Bq Er EIO ファイルシステムから読み取る間に入出力エラーが発生しました。 .El .Sh 警告 スーパユーザでないものに対して .Em setuid されたプログラムが、実 .Em uid が ``root'' の時に実行された場合、プログラムは部分的に スーパユーザの権限を持ちます。 .Sh 関連項目 .Xr ktrace 1 , .Xr _exit 2 , .Xr fork 2 , .Xr execl 3 , .Xr exit 3 , .Xr sysctl 3 , .Xr a.out 5 , .Xr elf 5 , .Xr environ 7 , .Xr mount 8 .Sh 規格 .Fn execve システムコールは、特定の状況において記述子 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 36c6c76471..8873ab1b18 100644 --- a/ja_JP.eucJP/man/man2/extattr_get_file.2 +++ b/ja_JP.eucJP/man/man2/extattr_get_file.2 @@ -1,257 +1,264 @@ .\" .\" 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.14 2004/07/05 17:12:52 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/extattr_get_file.2,v 1.14.2.1 2005/03/01 16:16:20 csjp Exp % .\" .\" $FreeBSD$ -.Dd March 28, 2001 +.Dd February 23, 2005 .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_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) 文字によって分離された、要求された名前空間の中に存在する +は ASCII 0 (ヌル) 文字によって分離された、要求された名前空間の中に存在する 属性のリストを返します。 .Fn extattr_get_file および .Fn extattr_list_file 呼び出しは .Xr read 2 -の形式で使用します。 -.Fn extattr_get_file -はこれらの引数を +の形式で +.Fa data +と +.Fa nbytes +引数を使用します。 +.Fn extattr_set_file +は .Xr write 2 -の形式で使用します。 +の形式でこれらの引数を使用します。 +.\" 原文: .Xr write 2. は .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 ENOATTR +要求された属性はこのファイルのために定義されていません。 .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 バグ この API の初期のバージョンでは、属性名として空の文字列を .Fn extattr_get_fd , .Fn extattr_get_file または .Fn extattr_get_link に渡すことによって、目的のオブジェクトのために定義された属性のリストを 返しました。 明示的な list API を使用すべきなので、 このインタフェースは非推奨であり、使用されるべきではありません。 diff --git a/ja_JP.eucJP/man/man2/fhopen.2 b/ja_JP.eucJP/man/man2/fhopen.2 index 5f318e71d1..5a58241d47 100644 --- a/ja_JP.eucJP/man/man2/fhopen.2 +++ b/ja_JP.eucJP/man/man2/fhopen.2 @@ -1,143 +1,143 @@ .\" %NetBSD: fhopen.2,v 1.1 1999/06/30 01:32:15 wrstuden Exp % .\" .\" Copyright (c) 1999 National Aeronautics & Space Administration .\" All rights reserved. .\" .\" This software was written by William Studenmund 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. Neither the name of the National Aeronautics & Space Administration .\" nor the names of its contributors may be used to endorse or promote .\" products derived from this software without specific prior written .\" permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NATIONAL AERONAUTICS & SPACE ADMINISTRATION .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ADMINISTRATION OR CONTRIB- .\" UTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, .\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" .\" %FreeBSD: src/lib/libc/sys/fhopen.2,v 1.15 2002/12/27 12:15:29 schweikh Exp % .\" $FreeBSD$ .\" .Dd June 29, 1999 .Dt FHOPEN 2 .Os .Sh 名称 .Nm fhopen , .Nm fhstat , .Nm fhstatfs .Nd ファイルハンドルによるファイルアクセス .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/mount.h .In sys/stat.h .Ft int .Fn fhopen "const fhandle_t *fhp" "int flags" .Ft int .Fn fhstat "const fhandle_t *fhp" "struct stat *sb" .Ft int .Fn fhstatfs "const fhandle_t *fhp" "struct statfs *buf" .Sh 解説 これらのシステムコールはファイルハンドル .Fa fhp で渡されたファイルにアクセスする手段を提供します。 この方法はディレクトリのアクセス制限をバイパスするので、 これらのシステムコールの使用はスーパユーザに限定されています。 .Pp .Fn fhopen システムコールは .Fa fhp が参照するファイルを .Fa flags で指定にしたがって読取り/書込み/読み書き用にオープンし、 呼び出したプロセスにファイル記述子を返します。 .Fa flags 引数は、 .Xr open 2 システムコールで使われる各種フラグの .Em or をとって指定します。 ただし、フラグのうち .Dv O_CREAT は使えません。 .Pp .Fn fhstat と .Fn fhstatfs システムコールはオープンされたファイルではなく、 .Fa fhp によって指し示されたファイルの情報を返すことを除いて .Xr fstat 2 と .Xr fstatfs 2 呼び出しと同等の機能を提供します。 .Sh 戻り値 処理が正常に完了すると、 .Fn fhopen はオープンされたファイルの記述子を返します。 そうでない場合は -1 が返され、エラーを示すために -.Va errno が -設定されます。 +.Va errno +が設定されます。 .Pp .Rv -std fhstat fhstatfs .Sh エラー .Xr open 2 , .Xr fstat 2 , .Xr fstatfs 2 のそれぞれの返すエラーに加えて .Fn fhopen , .Fn fhstat , .Fn fhstatfs は次のエラーを返します: .Bl -tag -width Er .It Bq Er EINVAL .Fn fhopen が .Dv O_CREAT をセットされて呼び出されました。 .It Bq Er ESTALE ファイルハンドル .Fa fhp はもう有効ではありません。 .El .Sh 関連項目 .Xr fstat 2 , .Xr fstatfs 2 , .Xr getfh 2 , .Xr open 2 .Sh 歴史 関数 .Fn fhopen , .Fn fhstat , および .Fn fhstatfs システムコールは .Nx 1.5 ではじめて登場しました。 .An Alfred Perlstein が .Fx 4.0 に移植しました。 .Sh 作者 このマニュアルページは .An William Studenmund によって .Nx 用に書かれました。 diff --git a/ja_JP.eucJP/man/man2/flock.2 b/ja_JP.eucJP/man/man2/flock.2 index d15186b24f..bcc1a1c7bf 100644 --- a/ja_JP.eucJP/man/man2/flock.2 +++ b/ja_JP.eucJP/man/man2/flock.2 @@ -1,175 +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.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 flock 3 +.Xr lockf 3 .Sh 歴史 .Fn flock システムコールは .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getfh.2 b/ja_JP.eucJP/man/man2/getfh.2 index f53b19eea0..aa3464c5e6 100644 --- a/ja_JP.eucJP/man/man2/getfh.2 +++ b/ja_JP.eucJP/man/man2/getfh.2 @@ -1,104 +1,105 @@ .\" 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. .\" .\" @(#)getfh.2 8.1 (Berkeley) 6/9/93 .\" %FreeBSD: src/lib/libc/sys/getfh.2,v 1.15 2004/04/06 09:06:45 dfr Exp % .\" .\" $FreeBSD$ .Dd April 6, 2004 .Dt GETFH 2 .Os .Sh 名称 .Nm getfh , .Nm lgetfh .Nd ファイルハンドルを得る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/mount.h .Ft int .Fn getfh "const char *path" "fhandle_t *fhp" .Ft int .Fn lgetfh "const char *path" "fhandle_t *fhp" .Sh 解説 .Fn getfh システムコールは指定のファイルまたはディレクトリのファイルハンドルを .Fa fhp が指すファイルハンドルの格納領域に返します。 .Fn lgetfh システムコールは、指定されたファイルがシンボリックリンクであった場合を除いて .Fn getfh と同様です。 この場合には .Fn lgetfh はそのリンクについての情報を返し、一方 .Fn getfh はそのリンクが参照するファイルについての情報を返します。 これらのシステムコールはスーパユーザに限定されます。 .Sh 戻り値 .Rv -std .Sh エラー .Fn getfh および .Fn lgetfh システムコールは以下の 1 つでも真の場合、処理に失敗します: +.\" 原文: .Fn lgetfgh は .Fn lgetfh の誤り。 .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 fhp 引数が無効なアドレスを指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .El .Sh 歴史 .Fn getfh システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getrusage.2 b/ja_JP.eucJP/man/man2/getrusage.2 index d9305bcbe8..fb88de92c2 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.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 +.Lb 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_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/intro.2 b/ja_JP.eucJP/man/man2/intro.2 index ed33a74326..726f5d82ec 100644 --- a/ja_JP.eucJP/man/man2/intro.2 +++ b/ja_JP.eucJP/man/man2/intro.2 @@ -1,784 +1,789 @@ .\" 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.42 2004/07/08 20:27:38 wollman Exp % +.\" %FreeBSD: src/lib/libc/sys/intro.2,v 1.42.2.1 2005/02/28 03:32:34 brueffer 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()) +.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 9 EBADF Em "Bad file descriptor" . 「ファイル記述子が不良です」 ファイル記述子引数が範囲外であったか、 開いていないファイルを参照していたか、 または書込み (読取り) 専用に開かれたファイルに 読取り (書込み) 要求が行われました。 +.Pp .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 14 EFAULT Em "Bad address" . 「不正なアドレスです」 呼び出しで渡された引数を使おうとしているときに、 システムが無効なアドレスを検出しました。 .It Er 15 ENOTBLK Em "Block device required" . 「ブロックデバイスが要求されています」 ブロックデバイス操作が、非ブロックデバイスまたはファイルについて 試みられました。 -.It Er 16 EBUSY Em "Device busy" . +.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 18 EXDEV Em "Cross-device link" . 「デバイスをまたぐリンクです」 別のファイルシステム上のファイルへのハードリンクが 試みられました。 -.It Er 19 ENODEV Em "Operation not supported" . +.It Er 19 ENODEV Em "Operation not supported by device" . 「操作がデバイスによってサポートされていません」 あるデバイスに不適切な関数を適用しようしました。 たとえば、プリンタのような書込み専用デバイスを読み取ろうとしました。 .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" . 「オープンしているファイルが多すぎます」 +.\" 次の .br は < が行末に来ないようにするため。 +.br <現在のリリースでは、 -プロセス1個につきオープンできるファイル数の上限は 64 です。> +プロセス 1 個につきオープンできるファイル数の上限は 64 です。> .Xr getdtablesize 2 システムコールで現在の限界を取得できます。 .It Er 25 ENOTTY Em "Inappropriate ioctl for device" . 「デバイスに不適切な ioctl です」 -ファイルまたは特殊デバイスに不適切な操作を要求する制御関数 ( -.Xr ioctl 2 +ファイルまたは特殊デバイスに不適切な操作を要求する制御関数 +.Xr ( ioctl 2 を参照) を試みました。 .It Er 26 ETXTBSY Em "Text file busy" . 「テキストファイルがビジーです」 別のプロセスによって書込み用にオープンされた 純粋プロシージャ (共有テキスト) ファイルから新しいプロセスを作ろうとしたか、 または純粋プロシージャファイルが実行されている間に、書込みアクセスを要求する .Xr open 2 呼び出しが実行されました。 -.It Er 27 EFBIG Em "File too large" . +.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" . +.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 35 EAGAIN Em "Resource temporarily unavailable" . 「リソースが一時的に利用できません」 これは一時的な状況であり、後で同じルーチンを呼び出した時に 正常に完了する可能性があります。 .It Er 36 EINPROGRESS Em "Operation now in progress" . 「操作が現在進行中です」 -完了するのに時間のかかる操作 ( -.Xr connect 2 -など) をノンブロッキングオブジェクトに対し試みました ( -.Xr fcntl 2 +完了するのに時間のかかる操作 +.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" . +.Pp +.It Er 49 EADDRNOTAVAIL Em "Cannot assign 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" . 「ファイル名が長すぎます」 パス名の構成要素が .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 +ファイルシステム上の) ファイルに対してアクセスしようとしましたが、 指定したファイル記述子が参照するファイルは現在利用できません。 これは .Tn NFS サーバ上でファイルが削除されたか、 または他の破滅的な何かが起きたことを示していると思われます。 .It Er 72 EBADRPC Em "RPC struct is bad" . 「RPC 構造体が不良です」 .Tn RPC 情報の交換が不成功でした。 -.It Er 73 ERPCMISMATCH Em "RPC varsion wrong" . +.It Er 73 ERPCMISMATCH Em "RPC version 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 +新しいプロセスは、現在のアクティブなプロセスから作成されます +.Xr ( fork 2 を参照)。 プロセスの親プロセス ID は、 最初はそれを作成したプロセスのプロセス ID となっています。 そのプロセスを作成したプロセスが exit した場合、 それぞれの子プロセスの親プロセス ID は、システムプロセス .Xr init 8 の ID に設定されます。 .It "プロセスグループ (Process Group)" アクティブなプロセスはそれぞれがあるプロセスグループのメンバであり、 プロセスグループはプロセスグループ ID と呼ばれる 負でない整数によって識別されます。 プロセスグループ ID はそのグループのリーダのプロセス ID です。 このグループ化によって、 -関連づけられたプロセスの集団にシグナルを送る ( -.Xr termios 4 +関連づけられたプロセスの集団にシグナルを送る +.Xr ( termios 4 を参照) ことや、 .Xr csh 1 のジョブ制御機構を可能にします。 .It "セッション (Session)" セッションは 1 つ以上のプロセスグループの集合です。 セッションは .Xr setsid 2 の呼び出しが成功すると作成されます。 これによって、呼び出したプロセスは、新規のセッションが 1 つだけ持つプロセスグループの唯一のメンバになります。 .It "セッションリーダ (Session leader)" .Xr setsid 2 の呼び出しの成功によって、新しいセッションを作成したプロセスは、 セッションリーダとして知られます。 -端末を自分が制御する端末 ( -.Xr termios 4 +端末を自分が制御する端末 +.Xr ( termios 4 を参照) として取得できるのは、セッションリーダだけです。 .It "制御プロセス (Controlling process)" 制御端末を持つセッションリーダが制御プロセスです。 .It "制御端末 (Controlling terminal)" セッションに関連づけられている端末は、そのセッションとそのメンバに対する 制御端末として知られます。 .It "端末プロセスグループ ID (Terminal Process Group ID)" 端末は、セッションリーダによって制御端末として取得されます。 ひとたび端末がセッションに関連づけられると、 端末プロセスグループ ID をプロセスグループの ID に設定することによって、 そのセッション内のどのプロセスグループでも、 フォアグラウンドに置くことができるようになります。 この機能は、同じ端末をめぐり競合している複数のジョブの間で -調停を行うために用いられます ( -.Xr csh 1 +調停を行うために用いられます +.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 設定ファイルを実行することにより変更することができます +.Xr ( execve 2 を参照してください)。 慣習で、実効グループ ID (グループアクセスリストの最初のメンバ) は複製されるので、 グループ ID 設定プログラムの実行の結果、もともと持っていた (実) グループ ID が失われることはありません。 .Pp グループアクセスリストは、リソースへのアクセスが可能かどうかを 決定するためにだけ使用されるグループ ID の集合です。 アクセスチェックは、以降の ``ファイルアクセスパーミッション'' で説明するように行われます。 -.It "保存されたセットユーザ ID と保存されたセットグループ ID (Saved Set User ID and Saved Set Group 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 +.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)" 最高 .Brq Dv NAME_MAX 文字からなる名前であって、通常ファイル、特殊ファイル、 ディレクトリに名前を付けるのに使用されます。 .Pp -これらの文字は、NUL -.Po Tn ASCII -.No 0 Pc +これらの文字は、 +.Dv NUL +.Tn ( ASCII +0) および .Ql \&/ 文字 (スラッシュ、 .Tn ASCII 47) を除く、 任意の 8 ビット値から選択できます。 .Pp なお、一般に、ファイル名の一部として .Ql \&* , .Ql \&? , .Ql \&[ , .Ql \&] を使用するのは賢明ではありません。 シェルによってこれらの文字には特殊な意味がつけられるからです。 .It "パス名 (Path Name)" パス名は、 -.Tn NUL +.Dv NUL で終端された文字列です。 スラッシュ .Ql \&/ (省略可能) で始まり、スラッシュで区切られた 0 個以上のディレクトリ名が続き、 ファイル名 (省略可能) が続きます。 パス名の長さの合計は .Brq Dv PATH_MAX 文字未満である必要があります (あるシステム上では、この制限は無制限かもしれません)。 .Pp -パス名がスラッシュで始まる場合、パス検索はルートディレクトリから -開始します。 +パス名がスラッシュで始まる場合、パス検索は +.Em ルート +ディレクトリから開始します。 そうでない場合、検索は現在の作業ディレクトリから開始します。 スラッシュだけの場合、ルートディレクトリを指定します。 空のパス名は現在のディレクトリを指します。 .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 294251256f..9faadd94f4 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.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" +.Va "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/kill.2 b/ja_JP.eucJP/man/man2/kill.2 index 294db44afa..b256535996 100644 --- a/ja_JP.eucJP/man/man2/kill.2 +++ b/ja_JP.eucJP/man/man2/kill.2 @@ -1,145 +1,146 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)kill.2 8.3 (Berkeley) 4/19/94 .\" %FreeBSD: src/lib/libc/sys/kill.2,v 1.22 2003/10/24 21:20:26 kensmith Exp % .\" .\" $FreeBSD$ .Dd April 19, 1994 .Dt KILL 2 .Os .Sh 名称 .Nm kill .Nd プロセスにシグナルを送信する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In signal.h .Ft int .Fn kill "pid_t pid" "int sig" .Sh 解説 .Fn kill システムコールは、 .Fa sig によって指定されたシグナルをプロセスまたはプロセスのグループである .Fa pid に送信します。 .Fa sig 引数は、 .Xr sigaction 2 で規定されたシグナルの 1 つにすることもできますし、0 にすることもできます。 0 の場合は、エラーチェックを実行しますが、実際にシグナルは送信されません。 これを使用して .Fa pid の有効性をチェックできます。 .Pp プロセスが .Fa pid によって指定されたプロセスにシグナルを送信するパーミッションを持つためには、 受信するプロセスの実ユーザ ID または実効ユーザ ID が 送信プロセスの対応するものと一致するか、 またはユーザは該当する特権を持っている (ユーザ ID 設定で与えられた特権、 またはユーザがスーパユーザである) 必要があります。 唯一の例外はシグナル SIGCONT で、これだけは呼び出し側と同一のセッション ID を 持っているプロセスに、必ず送信できます。 .Bl -tag -width Ds .\".It \&If Fa pid No \&is greater than zero : -.It Fa pid No が 0 より大きい場合: +.It Fa pid No が 0 より大きい場合 : .Fa sig シグナルは ID が .Fa pid に等しいプロセスに送信されます。 .\".It \&If Fa pid No \&is zero : -.It Fa pid No が 0 の場合: +.It Fa pid No が 0 の場合 : .Fa sig シグナルはグループ ID が送信側のプロセスグループ ID と等しく、それについて プロセスがパーミッションを持っているすべてのプロセスに送信されます。 これは .Xr killpg 2 の変種です。 .\".It \&If Fa pid No \&is -1 : -.It Fa pid No が -1 の場合: +.It Fa pid No が -1 の場合 : ユーザにスーパユーザの特権がある場合、システムプロセス .Dv ( P_SYSTEM フラグが設定されている)、ID が 1 のプロセス (通常は -.Xr init 8 )、 +.Xr init 8 ) +、 およびシグナルを送信しているプロセスを 除くすべてのプロセスにシグナルが送信されます。 ユーザがスーパユーザでない場合、シグナルを送信しているプロセスを除く、 ユーザと同じ uid のすべてのプロセスにシグナルが送信されます。 いずれかのプロセスにシグナルを送信できた場合、エラーは返されません。 .El .Pp System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、 プロセス番号の絶対値に等しいプロセスグループ ID を持つ すべてのプロセスにシグナルが送信されます。 これは .Xr killpg 2 の変種です。 .Sh 戻り値 .Rv -std kill .Sh エラー -.Fn Kill +.Fn kill システムコールは次の場合に処理に失敗し、シグナルは送信されません: .Bl -tag -width Er .It Bq Er EINVAL .Fa sig 引数が有効なシグナル番号ではありません。 .It Bq Er ESRCH .Fa pid で指定されたプロセスに対応するプロセスが検出できません。 .It Bq Er ESRCH プロセス ID は 0 として与えられたものの、 送信プロセスにプロセスグループがありません。 .It Bq Er EPERM 送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信プロセスの 実効ユーザ ID と一致しません。 プロセスグループにシグナルを送信するとき、グループのメンバの いずれかにシグナルを送信することができない場合、このエラーが返されます。 .El .Sh 関連項目 .Xr getpgrp 2 , .Xr getpid 2 , .Xr killpg 2 , .Xr sigaction 2 , .Xr raise 3 , .Xr init 8 .Sh 規格 .Fn kill システムコールは .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn kill 関数は .At v7 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kldsym.2 b/ja_JP.eucJP/man/man2/kldsym.2 index 61ccd6bc70..89dae9c989 100644 --- a/ja_JP.eucJP/man/man2/kldsym.2 +++ b/ja_JP.eucJP/man/man2/kldsym.2 @@ -1,119 +1,119 @@ .\" Copyright (c) 2001 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/kldsym.2,v 1.6 2002/12/19 09:40:25 ru Exp % .\" .\" $FreeBSD$ .Dd July 26, 2001 .Dt KLDSYM 2 .Os .Sh 名称 .Nm kldsym .Nd KLD 内のシンボル名による検索 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/linker.h .Ft int .Fn kldsym "int fileid" "int command" "void *data" .Sh 解説 .Fn kldsym システムコールは、 .Fa fileid で指定されたモジュールにおける .Fa data で指定されたシンボルのアドレスを返します。 .Fa fileid が 0 の場合、すべてのロードされているモジュールが検索されます。 現在、実装されている .Fa command は .Dv KLDSYM_LOOKUP のみです。 .Pp .Fa data 引数は、次の構造体です: .Pp .Bd -literal -offset indent struct kld_sym_lookup { int version; /* sizeof(struct kld_sym_lookup) */ char *symname; /* 検索対象のシンボル名 */ u_long symvalue; size_t symsize; }; .Ed .Pp .Va version メンバは、 .Fn kldsym を呼ぶコードによって、 -.Fn sizeof "struct kld_sym_lookup" +.Fn sizeof "struct kld_sym_lookup" に設定されるべきです。 次に示す 2 個の引数 .Va version と .Va symname は、ユーザが指定します。 最後の 2 個 .Va symvalue と .Va symsize は、 .Fn kldsym によって埋められます。 これらは、 .Va symname に関連付けられたアドレスと、 それの指しているデータの大きさを、それぞれ保持します。 .Sh 戻り値 .Rv -std kldsym .Sh エラー .Fn kldsym システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa data->version または .Fa command の中の値が不正です。 .It Bq Er ENOENT .Fa fileid 引数が不正であるか、指定したシンボルが見つかりませんでした。 .El .Sh 関連項目 .Xr kldfind 2 , .Xr kldfirstmod 2 , .Xr kldload 2 , .Xr kldnext 2 , .Xr kldunload 2 , .Xr modfind 2 , .Xr modnext 2 , .Xr modstat 2 , .Xr kld 4 .Sh 歴史 .Fn kldsym システムコールは .Fx 3.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kqueue.2 b/ja_JP.eucJP/man/man2/kqueue.2 index 561b297f49..b5e6a7867f 100644 --- a/ja_JP.eucJP/man/man2/kqueue.2 +++ b/ja_JP.eucJP/man/man2/kqueue.2 @@ -1,534 +1,535 @@ .\" 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.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 とは違って、たとえ .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 とパイプ +.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 -構造体を +.Fn aio_* +システムコールによって返された +.Fa struct 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/kse.2 b/ja_JP.eucJP/man/man2/kse.2 index b2e51098d1..8b9f4dfa98 100644 --- a/ja_JP.eucJP/man/man2/kse.2 +++ b/ja_JP.eucJP/man/man2/kse.2 @@ -1,675 +1,714 @@ .\" Copyright (c) 2002 Packet Design, LLC. .\" All rights reserved. .\" .\" Subject to the following obligations and disclaimer of warranty, .\" use and redistribution of this software, in source or object code .\" forms, with or without modifications are expressly permitted by .\" Packet Design; provided, however, that: .\" .\" (i) Any and all reproductions of the source or object code .\" must include the copyright notice above and the following .\" disclaimer of warranties; and .\" (ii) No rights are granted, in any manner or form, to use .\" Packet Design trademarks, including the mark "PACKET DESIGN" .\" on advertising, endorsements, or otherwise except as such .\" appears in the above copyright notice or in the software. .\" .\" THIS SOFTWARE IS BEING PROVIDED BY PACKET DESIGN "AS IS", AND .\" TO THE MAXIMUM EXTENT PERMITTED BY LAW, PACKET DESIGN MAKES NO .\" REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING .\" THIS SOFTWARE, INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED .\" WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, .\" OR NON-INFRINGEMENT. PACKET DESIGN DOES NOT WARRANT, GUARANTEE, .\" OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS .\" OF THE USE OF THIS SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, .\" RELIABILITY OR OTHERWISE. IN NO EVENT SHALL PACKET DESIGN BE .\" LIABLE FOR ANY DAMAGES RESULTING FROM OR ARISING OUT OF ANY USE .\" OF THIS SOFTWARE, INCLUDING WITHOUT LIMITATION, ANY DIRECT, .\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE, OR CONSEQUENTIAL .\" DAMAGES, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF .\" USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER 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 PACKET DESIGN IS ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/lib/libc/sys/kse.2,v 1.13 2003/12/10 02:38:51 marcel Exp % +.\" %FreeBSD: src/lib/libc/sys/kse.2,v 1.13.2.2 2005/02/28 03:32:34 brueffer Exp % .\" .\" $FreeBSD$ .\" .Dd September 10, 2002 .Dt KSE 2 .Os .Sh 名称 .Nm kse .Nd ユーザスレッドのためのカーネルサポート .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/kse.h .Ft int .Fn kse_create "struct kse_mailbox *mbx" "int newgroup" .Ft int .Fn kse_exit void .Ft int .Fn kse_release "struct timespec *timeout" .Ft int .Fn kse_switchin "mcontext_t *mcp" "long val" "long *loc" .Ft int .Fn kse_thr_interrupt "struct kse_thr_mailbox *tmbx" .Ft int .Fn kse_wakeup "struct kse_mailbox *mbx" .Sh 解説 これらのシステムコールはマルチスレッド化されたプロセスのための カーネルサポートを実装しています。 .\" .Ss 概要 .\" 伝統的にユーザスレッディングは、次の 2 つの方法の 1 つで実装されてきました。 全てのスレッドはユーザ空間で管理され、カーネルは全てのスレッディングを 認識しない方法 .Dq ( "N 対 1" としても知られています)。 または、個々のスレッドのために共通のメモリ空間を分け合う 分離したプロセスを作成する方法 .Dq ( "N 対 N" としても知られています)。 これらのアプローチは長所と短所を持っています: .Bl -column "- システムコールのラッピング必須" "+ システムコールのラッピング不要" .It Sy "ユーザスレッディング カーネルスレッディング" .It "+ 軽量 - 重量" .It "+ ユーザ制御スケジューリング - カーネル制御スケジューリング" .It "- システムコールのラッピング必須 + システムコールのラッピング不要" .It "- マルチ CPU の有効活用不可 + マルチ CPU の有効活用可能" .El .Pp KSE システムはユーザスレッディングおよびカーネルスレッディングの両方の 長所を成し遂げる混成のアプローチです。 KSE システムの根本的な哲学は、スケジューリングを決定するための ユーザスレッディングライブラリの能力を全く取り除くことなく、 ユーザスレッディングのためのカーネルサポートを与えることです。 カーネルからユーザスレッドへの upcall 機構は、スケジューリングの決定が 必要とされるときにはいつでも、ユーザスレッディングライブラリに制御を 移すために使用されます。 任意の数のユーザスレッドは、カーネルによって供給される固定数の仮想 CPU 上に 多重化されます。 これは .Dq "N 対 M" スレッディング機構と考えることができます。 .Pp このアプローチのいくつかの一般的な裏の意味は以下を含みます: .Bl -bullet .It ユーザプロセスはマルチプロセッサマシン上で複数のスレッドを 同時に実行することが可能です。 カーネルは、プロセス仮想 CPU がそれが望むようにスケジュールすることを 承諾します。これらは、実際の複数の CPU 上で同時に実行されることができます。 .It スレッドがブロックされたときにユーザプロセスが他のスレッドをスケジュール できるように、カーネル内でブロックする全ての操作は非同期になります。 .It 同じプロセス内の複数のスレッドスケジューラが可能で、それらは互いに独立して 操作することができます。 .El .\" .Ss 定義 .\" KSE はユーザプロセスが実際に同時の複数の .Sy スレッド の実行を可能にします。 これらの幾つかは、その他のスレッドが実行中またはユーザ空間で ブッロクされている間に、カーネルの中でブロックされることが可能です。 .Sy カーネルスケジューリングの実体 (kernel scheduling entity, KSE) はスレッドの実行のためにプロセスに承諾された .Dq "仮想 CPU" です。 現在実行されているスレッドは常に、厳密に 1 つのユーザ空間または カーネルの中で動作しているどちらかの KSE に関連付けられています。 その KSE はそのスレッドに .Sy 割り当てられている と言われます。 .Pp その KSE が関連付けられた .Sy メールボックス (下記参照) を持っていて、そのスレッドが関連付けられた .Sy スレッドメールボックス (これも下記参照) を持っていて、さらに以下のどれかが発生したときに、その KSE が .Sy 割り当てられていない 状態になり、関連付けられたスレッドは停止されます: .Bl -bullet .It そのスレッドがブロックを伴うシステムコールを実行する。 .It スレッドが、カーネルがすぐには満たすことが可能ではない他の全ての要求を行う。 例えばディスクからデータを読み出すために必要なメモリページに アクセスすることでページフォルト発生させることです。 .It カーネル内で先にブロックされていた他のスレッドが、カーネル内のその作業を 完了し (または .Sy 割り込まれ ) 、ユーザ空間へ戻る準備ができ、さらに現在のスレッドがユーザ空間に 戻ろうとしている。 .It シグナルがプロセスに配信され、この KSE がそのシグナルを配信するために 選択される。 .El .Pp 言い換えると、スケジューリングの決定が行われなければならなくなるとすぐに、 その KSE は割り当てられていない状態になります。 なぜならば、カーネルはそのプロセスの他のどの実行可能なスレッドを スケジュールするべきかを推定しないからです。 割り当てられていない KSE は常に可能な限り早く、 ユーザプロセスが次に利用するべき KSE をどのように決定するかを可能にする .Sy upcall 機構 (下記に記述されています) を介してユーザ空間に戻ります。 KSE は常に、割り当てが解除される前に、カーネル内で可能な限り多くの作業を 完了させます。 .Pp .Sy "KSE グループ" は均等にスケジュールされ、その KSE グループに関連付けられた同一のスレッドの プールへのアクセスを共有する KSE の集合です。 KSE グループはカーネルスケジューリングの優先度が割り当てられることができる 最小の実体です。 プロセスのスケジューリングとアカウンティングのため、それぞれの KSE グループは 伝統的なスレッド化されていないプロセスと同様にカウントします。 KSE グループの中の個々の KSE は実際上、見分けがつきません。 また、KSE グループの中のあらゆる KSE は、その KSE グループに 関連付けられた (カーネル内の) あらゆる実行可能なスレッドに、 カーネルによって割り当てられることができます。 実際問題として、カーネルはキャッシュの動作を最適化するために、スレッドと 実際の CPU との密接な関係を保存しようと試みますが、 これはユーザプロセスには不可視です。 (密接な関係はまだ実装されていません) .Pp それぞれの KSE はユーザプロセスによって供給された唯一の .Sy "KSE メールボックス" を持っています。 メールボックスは .Sy "upcall 関数" へのポインタを含む制御構造体とユーザスタックで構成されています。 KSE は割り当てを解除されると必ずこの関数を実行します。 カーネルはこの構造体を、実行可能になっているスレッド、およびそれぞれの upcall の前に配信されたシグナルについての情報を更新します。 upcall はクリティカルセクションの間は、ユーザスレッドの スケジューリングコードによって一時的にブロックされることがあります。 .Pp 同様にそれぞれのユーザスレッドは唯一の .Sy "スレッドメールボックス" を持っています。 カーネルとユーザスレッドスケジューラが通信するときに、 スレッドはこれらのメールボックスへのポインタを使用して参照されます。 それぞれの KSE のメールボックスは、その KSE が現在実行している ユーザスレッドのメールボックスへのポインタを含んでいます。 このポインタはカーネル内でスレッドがブロックするときに、保存されます。 .Pp カーネル内でブロックされていたスレッドがユーザ空間に戻る準備ができたときには 必ず、そのスレッドは KSE グループの .Sy 完了した スレッドのリストに追加されます。 このリストはスレッドメールボックスのリンクされたリストとして、 次の upcall でユーザコードに公開されます。 .Pp カーネルの中で同時にブロックされることができる KSE グループの中の スレッド数には、カーネルに起因する制限があります (現在、この数はユーザには 不可視です)。 この制限に達したときには、スレッドの 1 つが完了するまでの間 (または シグナルが配信されるまでの間)、upcall はブロックされ、 その KSE グループのための作業は何も実行されません。 .\" .Ss KSE の管理 .\" マルチスレッド化するためには、プロセスは初めに .Fn kse_create を実行しなければなりません。 .Fn kse_create システムコールは新しい KSE を 作成します (本当に最初の実行を除く、下記を参照してください)。 その KSE は .Fa mbx によって指されるメールボックスと関連付けられます。 .Fa newgroup が 0 ではない場合には、その KSE を含む新しい KSE グループも作成されます。 そうでない場合には、その新しい KSE は現在の KSE グループに追加されます。 新しく作成される KSE は最初は割り当てられていません。 そのため、それらの KSE は直ちに upcall します。 .Pp それぞれのプロセスは初めは 1 つのユーザスレッドを 実行する 1 つの KSE グループの中の 1 つの KSE を持っています。 その KSE は関連付けられたメールボックスを持っていないため、そのスレッドに 割り当てられたままでなければならず、upcall を全く実行しません。 この結果は伝統的で、スレッド化されていない様式の操作です。 そのため、特別な場合として、 .Fa newgroup を 0 にしたこの最初のスレッドによる .Fn kse_create の最初の呼び出しは、新しい KSE を作成しません。 代わりに、単に現在の KSE を与えられた KSE メールボックスに関連付け、 直ちに upcall しない結果となります。 しかしながら、次にそのスレッドがブロックし、要求された条件になったときに、 upcall がトリガされます。 .Pp カーネルは 1 つの KSE グループの中にシステムの物理的な CPU の数 (この数は .Xr sysctl 3 変数の .Va hw.ncpu として利用可能です) より多い KSE の存在を許可しません。 CPU より多い KSE を持つことは、その追加の KSE が単に その他の KSE と実 CPU へのアクセスを競合するだけであるため、 ユーザプロセスにとって全く価値を増やさないでしょう。 そのため、余分な KSE は常に脇に追いやられ、その結果アプリケーションは まさにより少ない KSE を持っていることと同じになるでしょう。 どんなに多くの任意のユーザスレッドが存在することになっても、 利用可能な KSE へのアプリケーションのユーザスレッドの割り当てを取り扱う ためのユーザスレッドスケジューラに渡ります。 .Pp .Fn kse_exit システムコールは、現在実行しているスレッドに割り当てられている KSE を 破壊させます。 この KSE がこの KSE グループの中の最後の 1 つの場合には、その KSE グループに 関連付けられているスレッドがカーネル内でブロックされたまま残ってはなりません。 このシステムコールはエラーが無い場合には、戻りません。 .Pp 特別な場合として、最後に残っている KSE グループの中の最後に残っている KSE が このシステムコールを実行する場合には、その KSE は破壊されません。 代わりに、その KSE はそのメールボックスとの関連付けを失うだけで、 .Fn kse_exit は正常に戻ります。 これはそのプロセスを元に、つまりスレッド化されていない状態に戻します。 -(これはまだ実装されていません) .Pp .Fn kse_release システムコールは、必要でなくなったときに、現在実行しているスレッドに 関連付けられている KSE を .Dq 一時保管 するために使用されます。 例えば、実行可能なユーザスレッドよりも利用可能な KSE の方が多いときです。 そのスレッドは upcall に変化しますが、そのようにするための新しい理由が 発生するまでの間スケジュールされることはありません。 例えば、以前にブロックされていたスレッドが実行可能になる、または タイムアウトが発生するなどです。 成功の場合には、 .Fn kse_release は呼び出し側に戻りません。 .Pp .Fn kse_switchin システムコールは、新しいスレッドがそのスレッドのコンテキストに 切り替わるために、UTS によって使用されることが可能です。 .Fn kse_switchin の使用はマシンに依存します。 あるプラットフォームでは新しいコンテキストに切り替わるためのシステムコールを 必要としません。 一方、他のプラットフォームでは同様の場合に要求されます。 .Pp .Fn kse_wakeup システムコールは .Fn kse_release の反対です。 .Fa mbx によって指されているメールボックスに関連付けられた (一時保管された) KSE を upcall にすることで起こします。 その KSE がすでに他の理由で起こされていた場合には、このシステムコールは 何も起こりません。 .Fa mbx 引数は .Dq "現在の KSE グループの中の全ての KSE" を指定するために .Dv NULL にすることができます。 .Pp .Fn kse_thr_interrupt システムコールは、現在ブロックされているスレッドに 割り込むために使用されます。 そのスレッドはカーネルの中でブロックされているか、 KSE に割り当てられて (例えば、実行中) いなければなりません。 そのスレッドはその後、割り込まれたという印を付けられます。 スレッドが割り込みを発生させるシステムコールを実行するとできるだけ 早く (または、スレッドがカーネルの中ですでにブロックされてると直ちに)、 カーネル操作が完了していないかもしれないのにもかかわらず、 そのスレッドは再度実行可能にされます。 割り込まれたシステムコール上のこの効果は、すでにシグナルによって 割り込まれていた場合と同様です。 通常、これは .Va errno に .Er EINTR が設定されてエラーが返されたことを意味します。 .\" .Ss シグナル .\" -プロセスがメールボックスに関連付けられた少なくとも 1 つの KSE を -持っているときには、シグナルはもはやそのプロセスのスタックには配信されない -かもしれません。 -代わりに、シグナルは upcall を介して配信されることができます。 -複数のシグナルは 1 つの upcall で配信されることができます。 -(この機能はまだコード化されていません) -.Pp -そのプロセスの中に複数の KSE グループが存在する場合には、そのシグナルを -配信するためにどの KSE グループが選ばれるのかは、明確ではありません。 +.Pp +現在の実装は特別のシグナルスレッドを作成します。 +プロセス内のカーネルスレッド (KSE) はすべてのシグナルをマスクし、 +シグナルスレッドだけがプロセスへ配信されるシグナルを待ちます。 +シグナルスレッドはユーザスレッドへのシグナルの +ディスパッチに対して責任があります。 +.\" responsible for = 《be 〜》〜に対して責任がある、〜に関与する +.Pp +この弱点は、多重スレッドが +.Fn execve +システムコールを呼び出すなら、そのシグナルマスクとペンディングシグナルは +カーネルで利用可能でないかもしれないことです。 +それらはユーザランドで格納され、カーネルはどこでそれらが得られるか知りません。 +しかしながら、 +.Tn POSIX +ではそれらは復元され、新しいプロセスに渡す必要があります。 +.Fn execve +呼び出しの前のスレッドのマスク設定は、 +古いプロセスがブロックされている状態かもしれない任意のペンディングシグナルを +カーネルに再配信されないとき、問題に近似しています。 +そして、新しいシグナルがマスクの設定と +.Fn execve +の間のプロセスに配信されるかもしれないウィンドウを許可します。 +.\" is only a close approximation to the problem の訳はあやしい +.Pp +当分、この問題は特別の組み合わせ +.Fn kse_thr_interrupt Ns / Ns Fn execve +モードを +.Fn kse_thr_interrupt +システムコールに追加することによって解決されています。 +.\" For now = 差し当たり、当分は +.Fn kse_thr_interrupt +システムコールはサブコマンド +.Dv KSE_INTR_EXECVE +があり、それは +.Vt kse_execv_args +構造体を受け付けることができ、シグナルを調整して、次に不可分に +.Fn execve() +呼び出しに変換できます。 +.\" 原文: .Fn execve() は .Fn execve の誤り。 +追加のペンディングシグナルと正しいシグナルマスクは +このようにしてカーネルに渡すことができます。 +.\" in this way = かくのごとく、こういう調子に、このような方法で、このように(して)、 +スレッドライブラリは、 +.Fn execve +スステムコールをくつがえして、それを +.Fn kse_intr_interrupt +呼び出しに変換し、多重スレッドを +.Fn exec +を行なう前にペンディングシグナルと正しいシグナルマスクに +復元できるようにします。 +この問題の解決法は変更するかもしれません。 .\" .Ss KSE メールボックス .\" -それぞれの KSE はユーザとカーネルの通信のための唯一のメールボックスを -持っています: -.Bd -literal -/* upcall 関数型 */ -typedef void kse_func_t(struct kse_mailbox *); - -/* KSE メールボックス */ -struct kse_mailbox { - int km_version; /* バージョン */ - struct kse_thr_mailbox *km_curthread; /* 現在のスレッド */ - struct kse_thr_mailbox *km_completed; /* 完了したスレッド */ - sigset_t km_sigscaught; /* 捕ったシグナル */ - unsigned int km_flags; /* KSE フラグ */ - kse_func_t *km_func; /* UTS 関数 */ - stack_t km_stack; /* UTS 環境 */ - void *km_udata; /* UTS によって使用 */ - struct timespec km_timeofday; /* upcall の時間 */ -}; -.Ed +それぞれの KSE は +.In sys/kse.h +で定義されたユーザとカーネルの通信のための唯一のメールボックスがあります。 +そのフィールドのいくつかは次の通りです: .Pp .Va km_version はこの構造体のバージョンを表し、 .Dv KSE_VER_0 でなければなりません。 .Va km_udata はカーネルによって無視される不透明なポインタです。 .Pp .Va km_func はその KSE の upcall 関数を指します。 これは、その KSE が存在している間は有効であり続けなければならない .Va km_stack を使用して実行されます。 .Pp .Va km_curthread は常に、もしあれば現在この KSE に割り当てられているスレッドを、または そうでなければ .Dv NULL を指しています。 このフィールドは、カーネルとユーザプロセスの両方によって以下のように 更新されます。 .Pp .Va km_curthread が .Dv NULL ではないときには、 それは現在実行中のスレッドのメールボックスを指しているものとみなされ、 割り当て解除されることができます。 例えば、スレッドがカーネル内でブロックする場合です。 それから、カーネルはブロックされたスレッドの .Va km_curthread の内容を保存して .Va km_curthread を .Dv NULL に設定し、 .Fn km_func を実行するために upcall します。 .Pp .Va km_curthread が .Dv NULL のときには、カーネルはこの KSE の upcall を決して実行しません。 言い換えると、KSE はたとえブロックしたとしても、そのスレッドに 割り当てられたままとなります。 その KSE が間に入り込む upcall によって混乱するであろうクリティカルな ユーザスレッドスケジューラのコードを実行している間、特に .Fn km_func それ自身を実行している間は、 .Va km_curthread は .Dv NULL でなければなりません。 .Pp 全ての upcall の中で .Fn km_func を実行する前に、カーネルは常に .Va km_curthread を .Dv NULL に設定します。 一度、ユーザスレッドスケジューラが実行するべき新しいスレッドを選んだら、 そのスレッドのメールボックスの .Va km_curthread を指すようにし、upcall を再度有効化し、それからそのスレッドを再開するべきです。 .Em 注意 : ユーザスレッドスケジューラによる .Va km_curthread の変更は、 新しいスレッドのコンテキストのロードについて不可分でなければなりません。 依然として有効な情報がそこから読み出されるべき時に、 ブロッキング非同期操作によってスレッドのコンテキスト領域が 変更されるかもしれない状況を避けるためです。 .Pp .Va km_completed は最近の upcall 以降にカーネル内での処理を終えたユーザスレッドの リンクされたリストを指しています。 そのユーザスレッドスケジューラは、これらのスレッドを スケジューラが所有する実行可能キューに戻すべきです。 upcall に帰着する (同期または非同期に) カーネル操作を 完了した KSE グループ内の各々のスレッドは、確実に 1 つの KSE の .Va km_completed にリンクされることが保証されます。 しかしながら、そのグループの中のどの KSE かは不定です。 その上、その完了はたった 1 つの upcall でしか報告されません。 .Pp .Va km_sigscaught はその前のプロセス内の全ての KSE への upcall 以降に、 このプロセスによって捕まえられたシグナルのリストが含まれています。 そのユーザプロセスの中に、 メールボックスに関連付けられた KSE が 1 つ以上存在する限りは、 シグナルは伝統的な方法ではなくこの方法で配信されます。 (これはまだ実装されておらず、変更されるかもしれません) .Pp .Va km_timeofday は、それぞれの upcall の前にカーネルによって現在のシステム時刻に設定されます。 .Pp .Va km_flags は以下の全てのビット毎の OR を含むことができます: .Bl -tag -width indent -.It \& -(まだフラグは全く定義されていません) +.It Dv KMF_NOUPCALL +upcalls が起きないようにブロックします。 +スレッドは何らかのクリティカルセクション (危険域) にあります。 +.It Dv KMF_NOCOMPLETED , KMF_DONE , KMF_BOUND +このスレッドは、永久に KSE に結びつけられると考えられるべきで、 +スレッド化されていないプロセスとそっくりに扱われます。 +.\" 原文: considerred は considered の誤り。 +.\" considered to be = 《be 〜》〜であると考えられている[目されている] +.\" much like = そっくりの、酷似の +それはある意味では +.Dv KMF_NOUPCALL +の +.Dq 長期 +バージョンです。 +.\" in some ways = ある点[意味]で(は)、いろいろな意味で、いくつかの点で +.It Dv KMF_WAITSIGEVENT +シグナル配信スレッドに必要な特性を実装します。 +.\" 原文: charactersitics は # characteristics の誤り。 .El .\" .Ss スレッドメールボックス .\" -それぞれのユーザスレッドはそれに関連付けられた唯一の +それぞれのユーザスレッドはそれに関連付けられた +.In sys/kse.h +で定義された唯一の .Vt "struct kse_thr_mailbox" -を持たなければなりません: -.Bd -literal -/* スレッドメールボックス */ -struct kse_thr_mailbox { - ucontext_t tm_context; /* ユーザスレッド環境 */ - unsigned int tm_flags; /* スレッドフラグ */ - struct kse_thr_mailbox *tm_next; /* リスト中の次スレッド */ - void *tm_udata; /* UTS によって使用 */ - unsigned int tm_uticks; /* ユーザ時間カウンタ */ - unsigned int tm_sticks; /* カーネル時間カウンタ */ -}; -.Ed +がなければなりません。 +それは次のフィールドを含んでいます: .Pp .Va tm_udata はカーネルによって無視された不明瞭なポインタです。 .Pp .Va tm_context はユーザ空間内でスレッドがブロックされた時に、そのスレッドのための コンテキストを保存します。 このフィールドは完了したスレッドが .Va km_completed を介してユーザスレッドスケジューラに戻る前に、カーネルによっても更新されます。 .Pp .Va tm_next はカーネルの upcall により戻った時に、 .Va km_completed スレッドにリンクします。 このリストの最後は .Dv NULL でマークされます。 .Pp .Va tm_uticks および .Va tm_sticks はそれぞれ、ユーザモードおよびカーネルモードの実行のための時間カウンタです。 これらのカウンタは統計クロック .Xr ( clocks 7 を参照してください) の刻みをカウントします。 カーネル内でいずれかのスレッドがアクティブに実行中の間は、対応する .Va tm_sticks カウンタがインクリメントされます。 ユーザ空間でいずれかの KSE 実行中で、その KSE の .Va km_curthread ポインタが .Dv NULL と等しくない間は、対応する .Va tm_uticks カウンタがインクリメントされます。 .Pp .Va tm_flags は以下の全てのビット毎の OR を含むことができます: .Bl -tag -width indent -.It \& -(まだフラグは全く定義されていません) +.It Dv TMF_NOUPCALL +.Dv KMF_NOUPCALL +と同様です。 +このフラグはクリティカルセクション (危険域) への upcall を禁止します。 +いくつかのアーキテクチャは、ある場所ともう片方でいくつかにあることを +必要とします。 .El .Sh 戻り値 成功の場合には .Fn kse_create , .Fn kse_wakeup および .Fn kse_thr_interrupt システムコールは 0 を返します。 成功の場合には .Fn kse_exit および .Fn kse_release システムコールは戻りません。 .Pp エラーの場合には、これら全てのシステムコールは 0 ではない エラーコードを返します。 .Sh エラー .Fn kse_create システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er ENXIO 既に KSE グループの中にハードウェアプロセッサと同じ数の KSE が存在しています。 .It Bq Er EAGAIN 実行下の KSE グループのトータル数についてのシステムに課せられた制限を 超過します。 この制限は .Xr sysctl 3 MIB 変数 .Dv KERN_MAXPROC によって与えられます。 (この制限はスーパユーザのためを除き、実際にはこれより 10 小さい値です) .It Bq Er EAGAIN ユーザがスーパユーザではなく、1 ユーザによる実行下の KSE グループの トータル数についてのシステムに課せられた制限を超過します。 この制限は .Xr sysctl 3 MIB 変数 .Dv KERN_MAXPROCPERUID によって与えられます。 .It Bq Er EAGAIN ユーザがスーパユーザではなく、 .Fa resource 引数 .Dv RLIMIT_NPROC に対応するソフトリソース制限を超過します .Xr ( getrlimit 2 を参照してください)。 .It Bq Er EFAULT .Fa mbx 引数がプロセスのアドレス空間の有効ではない部分のアドレスを指しています。 .El .Pp .Fn kse_exit システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EDEADLK 現在の KSE はその KSE グループ内の最後であり、 カーネル内でブロックされたその KSE グループに関連付けられたスレッドが 依然として 1 つ以上存在しています。 .It Bq Er ESRCH 現在の KSE は関連付けられたメールボックスを持っていません。 例えば、そのプロセスが伝統的なスレッド化されていないモードで、 実行しています (この場合はプロセスを終了するために .Xr _exit 2 を使用します)。 .El .Pp .Fn kse_release システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er ESRCH 現在の KSE は関連付けられたメールボックスを持っていません。 例えば、そのプロセスが伝統的なスレッド化されていないモードで、 実行しています。 .El .Pp .Fn kse_wakeup システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er ESRCH .Fa mbx 引数が .Dv NULL ではなく、 .Fa mbx によって指されるメールボックスそのメールボックスが、そのプロセス内の いずれの KSE にも関連付けられていません。 .It Bq Er ESRCH .Fa mbx 引数が .Dv NULL で、現在の KSE が関連付けられたメールボックスを持っていません。 例えば、そのプロセスが伝統的なスレッド化されていないモードで、 実行しています。 .El .Pp .Fn kse_thr_interrupt システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er ESRCH .Fa tmbx に対応するスレッドが、現在プロセス内のいずれの KSE にも割り当てられていないか、 カーネル内でブロックされています。 .El .Sh 関連項目 .Xr rfork 2 , .Xr pthread 3 , .Xr ucontext 3 .Rs .%A "Thomas E. Anderson" .%A "Brian N. Bershad" .%A "Edward D. Lazowska" .%A "Henry M. Levy" .%J "ACM Transactions on Computer Systems" .%N Issue 1 .%V Volume 10 .%D February 1992 .%I ACM Press .%P pp. 53-79 .%T "Scheduler activations: effective kernel support for the user-level management of parallelism" .Re .Sh 歴史 KSE システムコール群は .Fx 5.0 ではじめて登場しました。 .Sh 作者 KSE は初めに .An -nosplit -.An "Julian Elischer" Aq julian@FreeBSD.org , +.An "Julian Elischer" Aq julian@FreeBSD.org が実装し、 .An "Jonathan Mini" Aq mini@FreeBSD.org , -.An "Daniel Eischen" Aq deischen@FreeBSD.org , +.An "Daniel Eischen" Aq deischen@FreeBSD.org および .An "David Xu" Aq davidxu@FreeBSD.org が追加の貢献をしました。 .Pp このマニュアルページは .An "Archie Cobbs" Aq archie@FreeBSD.org -が書きました。 +によって書かれました。 .Sh バグ KSE のコードは開発中です。 .\" .Ud . .\" .Ud マクロは日本語では実装されていません。(池内) diff --git a/ja_JP.eucJP/man/man2/lseek.2 b/ja_JP.eucJP/man/man2/lseek.2 index 6e7cb4ae7a..daa438c613 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.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 +.Fa fildes 引数がオープンファイル記述子ではありません。 .It Bq Er EINVAL .Fa whence 引数が正しい値ではないか、計算結果のファイルオフセットが キャラクタ型ではない特殊ファイルに使う負の値となりました。 .It Bq Er EOVERFLOW 計算結果のファイルオフセットが、 .Fa off_t 型のオブジェクトでは正しく表現できない値となりました。 .It Bq Er ESPIPE -.Em fildes +.Fa 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/minherit.2 b/ja_JP.eucJP/man/man2/minherit.2 index 9d38587410..89f4f8631a 100644 --- a/ja_JP.eucJP/man/man2/minherit.2 +++ b/ja_JP.eucJP/man/man2/minherit.2 @@ -1,137 +1,137 @@ .\" %FreeBSD: src/lib/libc/sys/minherit.2,v 1.19 2002/12/18 09:22:31 ru Exp % .\" .\" 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. .\" .\" @(#)minherit.2 8.1 (Berkeley) 6/9/93 .\" .\" $FreeBSD$ .Dd February 17, 1996 .Dt MINHERIT 2 .Os .Sh 名称 .Nm minherit .Nd ページの継承を制御する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/mman.h .Ft int .Fn minherit "void *addr" "size_t len" "int inherit" .Sh 解説 .Fn minherit システムコールは、指定のページが継承の際の特性として .Fa inherit を持つように変更します。 すべての実装において、継承の際の特性がページ単位で設定できることが 保証されるているわけではありません。 変更の単位はリージョン全体かもしれません。 .Fx は、ページ毎に継承特性を調整する機能を持ちます。 継承は、 .Fn fork で作成された子供に対してのみ影響します。 .Fn exec には影響ありません。 exec されたプロセスは、アドレス空間全体を置き換えます。 このシステムコールは親のアドレス空間に対してもまた影響ありません (親子によるアドレス空間の共有は潜在的にあり得ますが、これは除外します)。 .Pp 継承は難解な機能であり、ほとんどが .Fn mmap の .Dv MAP_SHARED 機能で置き換えられています。 しかしながら、 .Fn minherit を使用して、 .Dv MAP_PRIVATE でマップされたメモリブロックを親子間で共有可能です。 これにより、親もしくは子による修正は共有されますが、 元々下層にあるファイルは変更されません。 -.Bl -tag -width MAP_HASSEMAPHORE +.Bl -tag -width ".Dv INHERIT_SHARE" .It Dv INHERIT_SHARE 本オプションは、対象のアドレス空間を親子間で共有させます。 本オプションは、 元々下層にあるバッキングストアがどのようにマップされるかには、影響しません。 .It Dv INHERIT_NONE 本オプションは、対象のアドレス空間の継承を完全に防止します。 当該アドレス空間は子の中ではアンマップされます。 .It Dv INHERIT_COPY 本オプションは、アドレス空間を子に対しコピーオンライトで継承させます。 本オプションには不幸な副作用があり、 親が fork するときにアドレス空間がコピーオンライトになってしまいます。 元々のマッピングが .Dv MAP_SHARED の場合、 親が fork した後にはこれは親においては共有されません。 また、元の共有バッキングストアマッピングは、 親においてアンマップして再マップする以外に回復しようがありません。 .El .Sh 戻り値 .Rv -std minherit .Sh エラー .Fn minherit システムコールは次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa addr 引数と .Fa len 引数によって指定される仮想アドレス範囲が有効ではありません。 .It Bq Er EACCES .Fa inherit 引数によって指定されるフラグが、 .Fa addr 引数と .Fa len 引数によって指定されたページに対して適切ではありませんでした。 .El .Sh バグ 一度 .Dv MAP_PRIVATE もしくは .Dv MAP_SHARED しているものに継承を設定すると、領域をアンマップして再マップする以外に もともとのコピーオンライトの意味を回復させることはできません。 .Sh 関連項目 .Xr fork 2 , .Xr madvise 2 , .Xr mincore 2 , .Xr mprotect 2 , .Xr msync 2 , .Xr munmap 2 , .Xr rfork 2 .Sh 歴史 .Fn minherit システムコールは .Ox ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mkfifo.2 b/ja_JP.eucJP/man/man2/mkfifo.2 index 309c807c8d..041689726b 100644 --- a/ja_JP.eucJP/man/man2/mkfifo.2 +++ b/ja_JP.eucJP/man/man2/mkfifo.2 @@ -1,118 +1,118 @@ .\" Copyright (c) 1990, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. +.\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)mkfifo.2 8.1 (Berkeley) 6/4/93 +.\" @(#)mkfifo.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/mkfifo.2,v 1.17 2002/12/19 09:40:25 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt MKFIFO 2 .Os .Sh 名称 .Nm mkfifo .Nd fifo ファイルを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/stat.h .Ft int .Fn mkfifo "const char *path" "mode_t mode" .Sh 解説 .Fn mkfifo システムコールは、 .Fa path という名前の新しい fifo ファイルを作成します。 アクセス許可は .Fa mode によって指定され、呼び出しプロセスの .Xr umask 2 の制約を受けます。 .Pp fifo の所有者 ID は、プロセスの実効ユーザ ID に設定されます。 fifo のグループ ID は、それが作成される親ディレクトリの ID に設定されます。 .Sh 戻り値 .Rv -std mkfifo .Sh エラー .Fn mkfifo システムコールは、次の場合に処理を失敗し、fifo は作成されません: .Bl -tag -width Er .It Bq Er ENOTSUP カーネルが fifo をサポートするように構成されていません。 .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 EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EEXIST 指定のファイルがすでに存在します。 .It Bq Er ENOSPC 新しい fifo 用のエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステムに空き容量が残っていません。 .It Bq Er ENOSPC fifo を作成するファイルシステム上に未使用の inode がありません。 .It Bq Er EDQUOT 新しい fifo 用のエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステム上のディスクブロックのユーザの クォータが枯渇しました。 .It Bq Er EDQUOT fifo を作成中のファイルシステム上のユーザの inode のクォータが 枯渇しました。 .It Bq Er EIO ディレクトリエントリの作成中、あるいは inode を割り当て中に .Tn I/O (入出力) エラーが発生しました。 .It Bq Er EIO ファイルシステムに読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .It Bq Er EFAULT .Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Sh 関連項目 .Xr chmod 2 , .Xr mknod 2 , .Xr stat 2 , .Xr umask 2 .Sh 規格 .Fn mkfifo システムコールは .St -p1003.1-90 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/mlock.2 b/ja_JP.eucJP/man/man2/mlock.2 index b2186d5718..d69b6651da 100644 --- a/ja_JP.eucJP/man/man2/mlock.2 +++ b/ja_JP.eucJP/man/man2/mlock.2 @@ -1,160 +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.18 2004/08/10 16:38:19 green Exp % +.\" %FreeBSD: src/lib/libc/sys/mlock.2,v 1.18.2.2 2005/02/28 03:32:34 brueffer Exp % .\" .\" $FreeBSD$ .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 mlockall 2 , .Xr mmap 2 , +.Xr munlockall 2 , .Xr munmap 2 , .Xr setrlimit 2 , .Xr getpagesize 3 .Sh バグ 固定されたメモリを多く割り当て過ぎることは、そこから回復するために リブートを要求するメモリ割り当てのデッドロックにつながる可能性があります。 .Pp プロセスごとのリソースの限界はロックされた仮想メモリの量への制限で、 システム全体に共通の制限はロックされた物理ページの数についてのものです。 このように、2 つの別々のマッピングから同じ物理ページを ロックするとプロセスごとの制限に対しては 2 ページとしてカウントされ、 システム制限では 1 ページだけとしてカウントされます。 .Pp プロセスごとのリソース制限は現時点ではサポートされていません。 .Sh 歴史 .Fn mlock システムコールと .Fn munlock システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mount.2 b/ja_JP.eucJP/man/man2/mount.2 index 6280a89ace..a2db7e2601 100644 --- a/ja_JP.eucJP/man/man2/mount.2 +++ b/ja_JP.eucJP/man/man2/mount.2 @@ -1,361 +1,363 @@ .\" 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.40 2004/08/13 14:33:03 roam Exp % +.\" %FreeBSD: src/lib/libc/sys/mount.2,v 1.40.2.1 2005/02/26 04:44:54 trhodes Exp % .\" .\" $FreeBSD$ -.Dd August 13, 2004 +.Dd February 23, 2005 .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 +.Va 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 マニュアルページに記述されています。 +UFS と UFS2 として知られているデフォルトのファイルシステムのための +マニュアルページが存在しないことに注意しなくてはなりません。 .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 +.Fa 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/mprotect.2 b/ja_JP.eucJP/man/man2/mprotect.2 index 6b856491c6..812651bf5a 100644 --- a/ja_JP.eucJP/man/man2/mprotect.2 +++ b/ja_JP.eucJP/man/man2/mprotect.2 @@ -1,96 +1,96 @@ .\" 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. .\" .\" @(#)mprotect.2 8.1 (Berkeley) 6/9/93 .\" %FreeBSD: src/lib/libc/sys/mprotect.2,v 1.17 2003/02/23 01:47:48 ru Exp % .\" .\" $FreeBSD$ .Dd June 9, 1993 .Dt MPROTECT 2 .Os .Sh 名称 .Nm mprotect .Nd ページの保護属性を制御する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/mman.h .Ft int .Fn mprotect "const void *addr" "size_t len" "int prot" .Sh 解説 .Fn mprotect システムコールは指定のページが保護属性 .Fa prot を持つように変更します。 すべての場合においてページ単位での保護属性を保証するわけではありません。 保護属性変更の細かさはリージョン全体と同じ大きさかもしれません。 リージョンは .Vt "struct vm_map_entry" の start (開始) と end (終了) のアドレスで定義される仮想アドレス空間です。 .Pp 現在、以下の OR をとって組み合わせることが可能な保護ビットが知られています。 .Pp .Bl -tag -width ".Dv PROT_WRITE" -compact .It Dv PROT_NONE 全く保護しません。 -.It PROT_READ +.It Dv PROT_READ ページは読取り可能です。 .It Dv PROT_WRITE ページは書込み可能です。 .It Dv PROT_EXEC ページは実行可能です。 .El .Sh 戻り値 .Rv -std mprotect .Sh エラー .Fn mprotect システムコールは次の場合に処理を失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa addr 引数と .Fa len 引数で指定している仮想アドレス範囲は有効ではありません。 .It Bq Er EACCES 呼び出しプロセスは .Fa prot 引数によって指定される値に保護属性を変更することを許可されていません。 .El .Sh 関連項目 .Xr madvise 2 , .Xr mincore 2 , .Xr msync 2 , .Xr munmap 2 .Sh 歴史 .Fn mprotect システムコールは .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/nanosleep.2 b/ja_JP.eucJP/man/man2/nanosleep.2 index 8457e72ede..6889929f99 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 % +.\" %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.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 424991c231..ea1cecc75a 100644 --- a/ja_JP.eucJP/man/man2/nfssvc.2 +++ b/ja_JP.eucJP/man/man2/nfssvc.2 @@ -1,260 +1,265 @@ .\" 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.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 で +.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 の文は前に移動。 .Xr nfsd 8 ユーティリティは、Kerberos 認証チケットを受信するたびに、 .Fn nfssvc から .Va errno == -.Er ENEEDAUTH で戻ります。 +.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 +.\" .Pp +.\" .Tn NFS, .Xr nfsd 8 の文は前に移動。 .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/open.2 b/ja_JP.eucJP/man/man2/open.2 index 9b293c530b..05c80dd5b2 100644 --- a/ja_JP.eucJP/man/man2/open.2 +++ b/ja_JP.eucJP/man/man2/open.2 @@ -1,303 +1,304 @@ .\" 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.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_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 581a81dc8e..06bb7635b4 100644 --- a/ja_JP.eucJP/man/man2/pathconf.2 +++ b/ja_JP.eucJP/man/man2/pathconf.2 @@ -1,222 +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.17 2004/07/08 20:27:38 wollman Exp % +.\" %FreeBSD: src/lib/libc/sys/pathconf.2,v 1.17.2.1 2005/02/28 03:32:34 brueffer 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 構成要素が -.Brq Li NAME_MAX +.Brq Dv NAME_MAX よりも長いパス名を使用しようとすると .Bq Er ENAMETOOLONG エラーを引き起こす場合は、0 より大きい値を返します。 そうでない場合には、このような構成要素は -.Brq Li NAME_MAX +.Brq Dv 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 パス名の構成要素が .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/poll.2 b/ja_JP.eucJP/man/man2/poll.2 index bdfe532592..e44866570d 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.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 -構造体のフィールドは次のとおりです: +.Fa struct 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 53693371e9..7e8ff643a3 100644 --- a/ja_JP.eucJP/man/man2/ptrace.2 +++ b/ja_JP.eucJP/man/man2/ptrace.2 @@ -1,368 +1,368 @@ .\" %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 が (その結果の動作として) トレースするプロセスに .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 +.In ( 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" +.Do +.Vt "struct fpreg" +.Dc .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 58270a93cf..ff66800c85 100644 --- a/ja_JP.eucJP/man/man2/read.2 +++ b/ja_JP.eucJP/man/man2/read.2 @@ -1,232 +1,233 @@ .\" 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.25 2004/07/02 23:52:13 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/read.2,v 1.25.2.1 2004/11/13 11:55:41 yar Exp % .\" .\" $FreeBSD$ -.Dd February 26, 1994 +.Dd October 16, 2004 .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 以下であるか、または .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 -指定のファイルオフセットが有効ではありません。 +.Fa offset +の値が負です。 .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 e476b7e32d..b661ae1eb0 100644 --- a/ja_JP.eucJP/man/man2/recv.2 +++ b/ja_JP.eucJP/man/man2/recv.2 @@ -1,299 +1,318 @@ .\" 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.21 2004/07/16 17:15:37 harti Exp % +.\" %FreeBSD: src/lib/libc/sys/recv.2,v 1.21.2.2 2005/02/28 03:32:34 brueffer 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 でなく、ソケットが接続指向でない場合、 +が NULL ポインタでなく、ソケットが接続指向でない場合、 ここにはメッセージのソースアドレスが保存されます。 .Fa fromlen 引数は値と結果の引数であり、 .Fa from に対応するバッファのサイズに初期化され、 戻り時には保存されたアドレスの実際のサイズを示すように変更されます。 .Pp .Fn recv システムコールは、通常 .Em 接続された ソケット上だけで使用され .Pf ( Xr connect 2 を参照)、 .Fa from -引数に nil を指定した +引数に NULL ポインタを指定した .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 関数への +.Fn recv +関数への .Fa flags 引数は、次の値の 1 つまたは複数の論理和 .\".Em or Ap ing .Em ( or ) から成ります: -.Bl -column MSG_DONTWAIT -offset indent +.Bl -column ".Dv 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 フラグは受信待ち行列の先頭からデータを除去することなく、 +.Dv MSG_PEEK +フラグは受信待ち行列の先頭からデータを除去することなく、 そのデータを返します。 したがって、後続の受信呼び出しは同じデータを返します。 -MSG_WAITALL フラグは要求が完全に満たされるまでブロックするように要求します。 +.Dv MSG_WAITALL +フラグは要求が完全に満たされるまでブロックするように要求します。 しかし、シグナルが捕捉された場合、エラーまたは切断が発生した場合、 または受信する次のデータが返されたタイプと異なる 場合、呼び出しは要求されたより少ないデータを返す可能性があります。 -MSG_DONTWAIT フラグは、フラグが指定されてなかったらブロックするような時に、 +.Dv MSG_DONTWAIT +フラグは、フラグが指定されてなかったらブロックするような時に、 戻ることを要求します。 利用可能なデータが無い場合には、 .Va errno が .Er EAGAIN に設定されます。 -このフラグは、厳格な ANSI または C99 のコンパイルモードでは利用できません。 +このフラグは、厳格な +.Tn ANSI +または C99 のコンパイルモードでは利用できません。 .Pp .Fn recvmsg システムコールは、直接に指定される引数の数を最小にするために .Fa msghdr 構造体を使用します。 この構造体は .In sys/socket.h で定義されているように、次の形式になっています: .Pp .Bd -literal struct msghdr { - caddr_t msg_name; /* アドレス(オプション) */ + 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 を要求して、 +システムコールの直後に、データバッファを伴わずに +.Fn 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 EMSGSIZE +.Fn recvmsg +システムコールは、接続時にデータをやりとりする権利 (ファイル記述子) +を受信するために使用されました。 +.\" rights (file descriptors) that were in flight の訳は良くわからない。 +しかしながら、受信プログラムには受け付けるための +空きファイル記述子スロットがありませんでした。 +この場合、記述子がクローズされ、 +.Fn recvmsg +への別の呼び出しによって、 +どんなペンディング (未解決) のデータも返すことができます。 .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/semop.2 b/ja_JP.eucJP/man/man2/semop.2 index 66047ba45d..c3dbbdd04a 100644 --- a/ja_JP.eucJP/man/man2/semop.2 +++ b/ja_JP.eucJP/man/man2/semop.2 @@ -1,277 +1,276 @@ .\" .\" 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/semop.2,v 1.18 2003/01/25 21:27:37 alfred Exp % .\" .\" WORD: atomic 不可分な [POSIX] .\" WORD: adjust on exit 終了時調整 .\" $FreeBSD$ .Dd September 22, 1995 .Dt SEMOP 2 .Os .Sh 名称 .Nm semop .Nd セマフォ集合に対する不可分な操作の配列 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/ipc.h .In sys/sem.h .Ft int .Fn semop "int semid" "struct sembuf *array" "size_t nops" .Sh 解説 .Fn semop システムコールは、 .Fa semid が示すセマフォ集合に対して、 .Fa array が示す操作の配列を不可分に実行します。 .Fa array の長さは .Fa nops で示します。 各操作は .Vt "struct sembuf" 内にエンコードされており、 -.Fa "struct sembuf" -は次のように定義されます: +それは次のように定義されます: .Bd -literal .\" .\" From .\" struct sembuf { u_short sem_num; /* セマフォ番号 */ short sem_op; /* セマフォ操作 */ short sem_flg; /* 操作フラグ */ }; .Ed .Pp .Fa array 内の各要素に関し、 .Va sem_op と .Va sem_flg は、集合内のセマフォ番号 .Va sem_num に対して実行される操作を決定します。 指定した操作の動作を変更するために、 .Dv SEM_UNDO と .Dv IPC_NOWAIT -の値の論理和 ( -.Em OR -) を取って +の値の論理和 +.Em ( OR ) +を取って .Va sem_flg メンバに入れることが可能です。 .Pp 実行される操作は次のように .Va sem_op の値に依存します: .\" .\" This section is based on the description of semop() in .\" Stevens, _Advanced Programming in the UNIX Environment_, .\" and the semop(2) description in The Open Group Unix2 specification. .\" .Bl -bullet .It .Va sem_op が正であり、プロセスが別のパーミッションを持っている場合、セマフォの値を .Va sem_op の値だけ増加させます。 .Dv SEM_UNDO を指定した場合、セマフォの終了時調整値を .Va sem_op の値だけ減少させます。 .Va sem_op についての正の値は、一般に、 セマフォに結び付けられた資源をリリースするプロセスに対応します。 .It .Va sem_op が負であり、プロセスが別のパーミッション持っている場合の動作は、 セマフォの現在の値に依存します: .Bl -bullet .It セマフォの現在の値が .Va sem_op の絶対値と等しいかそれより大きい場合、セマフォの値を .Va sem_op の絶対値だけ減少させます。 .Dv SEM_UNDO が指定されている場合、セマフォの終了時調整値を .Va sem_op の絶対値だけ増加させます。 .It セマフォの現在値が .Va sem_op の絶対値より小さい場合、次のどれかが発生します: .\" XXX a *second* sublist? .Bl -bullet .It .Dv IPC_NOWAIT を指定した場合、 .Fn semop は戻り値 .Er EAGAIN でただちに復帰します。 .It それ以外の場合、呼び出し元プロセスは、以下の条件の 1 つが満足されるまで 休眠状態になります: .\" XXX We already have two sublists, why not a third? .Bl -bullet .It .Xr semctl 2 の .Dv IPC_RMID オプションを用いて、他のプロセスがセマフォを削除した場合。 この時 .Fn semop は、戻り値 .Er EIDRM でただちに復帰します。 .It プロセスが、捕らえるべきシグナルを受け取った場合。 この時そのプロセスは、 .Xr sigaction 2 で定義されたように実行を再開します。 .It セマフォの値が .Va sem_op の絶対値以上になった場合。 この条件が真となった時、セマフォの値を .Va sem_op の絶対値だけ減少させ、セマフォの終了時調整値を .Va sem_op の絶対値だけ増加させます。 .El .El .El .Pp .Va sem_op が負の値であるときは、一般に、 資源が利用可能になるのをプロセスが待っているということです。 .It .Va sem_op が 0 でプロセスが読取り許可を持つ場合、次のどれかが発生します: .Bl -bullet .It 現在のセマフォの値が 0 の場合、 .Fn semop はただちに復帰します。 .It .Dv IPC_NOWAIT が指定された場合、 .Fn semop は戻り値 .Er EAGAIN でただちに復帰します。 .It それ以外の場合、呼び出し元プロセスは、以下の条件の 1 つが満足されるまで 休眠状態になります: .\" XXX Another nested sublists .Bl -bullet .It .Xr semctl 2 の .Dv IPC_RMID オプションを用いて、他のプロセスがセマフォを削除した場合。 この時 .Fn semop は、戻り値 .Er EIDRM でただちに復帰します。 .It プロセスが、捕らえるべきシグナルを受け取った場合。 この時そのプロセスは、 .Xr sigaction 2 で定義されたように実行を再開します。 .It セマフォの値が 0 となった場合。 .El .El .El .Pp プロセスが使用しているセマフォごとに、カーネルは、先に述べたように .Dq 終了時調整 値を保持します。 自発的であれ非自発的にであれ、プロセスが終了するときには、 各セマフォに対する終了時調整値がセマフォの値に追加されます。 これを、プロセスが予期せず終了してしまう場合に 資源を必ず解放することを保証するのに使用可能です。 .Sh 戻り値 .Rv -std semop .Sh エラー .Fn semop システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EINVAL .Fa semid に対応するセマフォ集合がないか、システムで定義されるプロセス毎の .Dv SEM_UNDO 構造体の数の制限が超過しました。 .It Bq Er EACCES 操作とセマフォ集合のモードの間で不一致があるため、 パーミッションが拒否されました。 .It Bq Er EAGAIN セマフォはそのプロセスを休眠状態に移行させる値ですが、 .Dv IPC_NOWAIT が指定されました。 .It Bq Er E2BIG あまりに多くの操作が指定されました。 .Bq Dv SEMOPM .It Bq Er EFBIG .\" .\" I'd have thought this would be EINVAL, but the source says .\" EFBIG. .\" .Va sem_num が集合に対する有効なセマフォの範囲内にありませんでした。 .It Bq Er EIDRM セマフォの組は、システムから削除されました。 .It Bq Er EINTR .Fn semop システムコールは、シグナルによって中断されました。 .It Bq Er ENOSPC システムの .Dv SEM_UNDO プール .Bq Dv SEMMNU が、いっぱいになりました。 .It Bq Er ERANGE 要求された操作によって、現在のセマフォの値 .Bq Dv SEMVMX 、もしくはその終了時調整値 .Bq Dv SEMAEM が、システムによって課されている限界を越えようとしています。 .El .Sh 関連項目 .Xr semctl 2 , .Xr semget 2 , .Xr sigaction 2 .Sh バグ .Fn semop システムコールは、 .Dv IPC_NOWAIT が指定されていてもメモリ待ちでブロックすることがあります。 diff --git a/ja_JP.eucJP/man/man2/send.2 b/ja_JP.eucJP/man/man2/send.2 index 91670f3728..d9a67f8cdd 100644 --- a/ja_JP.eucJP/man/man2/send.2 +++ b/ja_JP.eucJP/man/man2/send.2 @@ -1,217 +1,219 @@ .\" 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.27 2004/07/02 23:52:13 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/send.2,v 1.27.2.1 2005/01/31 00:27:01 keramida 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 を参照) を実装するのに使用されます。 .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 EISCONN +宛先アドレスが指定され、そしてソケットは既に接続されています。 .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 ソケットがこれ以上データを送信できません .Dv ( SBS_CANTSENDMORE がそのソケットに設定されています)。 これは通常、そのソケットが接続されていないことを意味します。 .El .Sh バグ .Fn sendmsg はデータが転送されてしまうまで必ずしもブロックしないので、 オープンされているファイル記述子を .Dv AF_UNIX ドメインソケット .Xr ( recv 2 を参照) 経由で送信し、それから実際に送信される前に .Fn close する可能性があります。 その結果、受信側は閉じたファイル記述子を得ることになります。 これを防止する確認メカニズムの実装は、 アプリケーションで行う必要があります。 .Sh 関連項目 .Xr fcntl 2 , .Xr getsockopt 2 , .Xr recv 2 , .Xr select 2 , .Xr socket 2 , .Xr write 2 .Sh 歴史 .Fn send 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sendfile.2 b/ja_JP.eucJP/man/man2/sendfile.2 index 55b535288d..c38e1ec033 100644 --- a/ja_JP.eucJP/man/man2/sendfile.2 +++ b/ja_JP.eucJP/man/man2/sendfile.2 @@ -1,240 +1,253 @@ .\" 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.23 2004/06/30 20:09:10 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.23.2.2 2005/02/28 03:32:34 brueffer Exp % .\" .\" $FreeBSD$ -.Dd November 5, 1998 +.Dd October 16, 2004 .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" +.Fo sendfile +.Fa "int fd" "int s" "off_t offset" "size_t nbytes" +.Fa "struct sf_hdtr *hdtr" "off_t *sbytes" "int flags" +.Fc .Sh 解説 .Fn sendfile システムコールは、記述子 .Fa fd によって指定された通常のファイルを、記述子 .Fa s によって指定されたストリームソケットから送信します。 .Pp .Fa offset 引数はファイルのどこから開始すべきかを指定します。 +.Fa offset +がファイルの終りを超えていた場合は、システムは +次に説明されるように成功を返して、0 バイトを送信したと報告します。 .Fa nbytes 引数は、ファイルの何バイトを送信する必要があるかを指定します。 0 は、ファイルの終わりまで送信するという特殊な意味を持ちます。 .Pp オプションのヘッダまたはトレーラ、またはその両方は、構造体 sf_hdtr を 指すポインタを指定することによってファイルの前と後で送信できます。 -構造体 sf_hdtr の構造は次のとおりです: +.Vt "struct 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 構造の配列を指します。 +ポインタは、 +.Dv NULL +でない場合に +.Vt "struct iovec" +構造体の配列を指します。 iovec 構造体の詳細については、 .Fn writev システムコールを参照してください。 これらの配列内の iovecs の数は、 .Fa hdr_cnt と .Fa trl_cnt によって指定されます。 .Pp -NULL でない場合に、システムは、ソケット上に送信された合計バイト数を、 +.Dv NULL +でない場合に、システムは、ソケット上に送信された合計バイト数を、 .Fa sbytes によって指された変数に書き込みます。 .Pp .Fa flags 引数として利用できる値は 1 つです: -.Dv SF_NODISKIO 。 +.Dv SF_NODISKIO +。 このフラグは、ディスク入出力でブロックされるであろうすべての .Fn sendfile 呼び出しに対して、代わりに .Er EBUSY を返させます。 ブロックされる転送要求を 1 つの分離された入出力ワーカスレッドにすることで、 忙しいサーバには役に立つことがあります。 .Pp 非ブロッキング入出力用に指定されたソケットを使用するときに、 .Fn sendfile は要求されたよりも少ないバイトを送信することがあります。 この場合、正常に書き込まれたバイト数が .Fa *sbytes (指定されている場合) に返され、エラー .Er EAGAIN が返されます。 .Sh 実装に関する注 .Fn sendfile の .Fx での実装は「0 コピー」です。 すなわち、ファイルデータのコピーが回避されるように最適化されています。 .Sh チューニング 内部ではこのシステムコールは、クライアントへの送信ファイルデータを 取り扱うために、特別な .Fn sendfile バッファ .Pq Vt "struct sf_buf" を使用しています。 送信ソケットがブロックされていて、 利用可能な .Fn sendfile バッファが十分でない場合には、 .Fn sendfile はブロックされ、 .Dq Li sfbufa の状態を報告します。 送信ソケットがブロックされておらず、利用可能な .Fn sendfile バッファが十分でない場合には、 この呼び出しはブロックされ、呼び出しを終了する前に必要なバッファが 利用可能になるのを待ちます。 .Pp .Vt sf_buf の割り当てられた数は、 .Fn sendfile を介してクライアントにデータを送信するために使用される nmbclusters の数に、 比例しているべきです。 ブロッキングを避けるために適宜にチューンしましょう! .Fn sendfile を広範囲に使用する忙しい装置が、 .Va kern.ipc.nmbclusters に展開されるこれらの値を増加させたくなるかもしれません (詳細は .Xr tuning 7 を参照してください)。 .Pp 利用可能な .Fn sendfile バッファの数は、 .Xr loader.conf 5 の中の .Va kern.ipc.nsfbufs 変数または .Dv NSFBUFS カーネルコンフィギュレーション調整のどちらかによって、ブート時に決定されます。 .Fn sendfile バッファの数は .Va kern.maxusers に合わせて調整されます。 .Va kern.ipc.nsfbufsused および .Va kern.ipc.nsfbufspeak の読み取り専用の .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 完全な転送を完了するにはディスク入出力が必要となるため、中断されました。 部分的なデータは送られたかもしれません (このエラーは .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 .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/setpgid.2 b/ja_JP.eucJP/man/man2/setpgid.2 index 61eb1c7728..28b324304c 100644 --- a/ja_JP.eucJP/man/man2/setpgid.2 +++ b/ja_JP.eucJP/man/man2/setpgid.2 @@ -1,104 +1,104 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)setpgid.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/setpgid.2,v 1.14 2004/02/08 12:38:30 das Exp % .\" .\" $FreeBSD$ .Dd February 8, 2004 .Dt SETPGID 2 .Os .Sh 名称 .Nm setpgid , .Nm setpgrp .Nd プロセスグループを設定する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn setpgid "pid_t pid" "pid_t pgrp" .Ft int .Fn setpgrp "pid_t pid" "pid_t pgrp" .Sh 解説 .Fn setpgid システムコールは、指定されたプロセス .Fa pid のプロセスグループを指定された -.Ar pgrp +.Fa pgrp に設定します。 .Fa pid が 0 の場合、呼び出しは現在のプロセスに適用されます。 .Pp 影響されるプロセスが実行したプロセスでない場合には、 それは実行したプロセスの子プロセスでなければならず、既に .Xr exec 3 操作を実行していてはならず、両方のプロセスが同じセッション中に なければなりません。 要求されたプロセスグループ ID は呼び出し側のセッション中に既に存在 していなければならないか、または目的のプロセス ID と同一でなければなりません。 .Sh 戻り値 .Rv -std setpgid .Sh エラー .Fn setpgid システムコールは、次の場合に処理を失敗し、プロセスグループは変更されません: .Bl -tag -width Er .It Bq Er EINVAL 要求されたプロセスグループ ID は正当ではありません。 .It Bq Er ESRCH 要求されたプロセスが存在しません。 .It Bq Er ESRCH 目的のプロセスが、呼び出したプロセスでも、呼び出したプロセスの 子プロセスでもありません。 .It Bq Er EACCES 要求されたプロセスが呼び出したプロセスの子プロセスですが、 .Xr exec 3 操作を既に行っています。 .It Bq Er EPERM 目的のプロセスがセッションリーダです。 .It Bq Er EPERM 要求されたプロセスグループ ID が呼び出し側のセッションの中に無く、 目的のプロセスのプロセス ID とも等しくありません。 .El .Sh 関連項目 .Xr getpgrp 2 .Sh 規格 .Fn setpgid システムコールは .St -p1003.1-90 に適合しています。 .Sh 互換性 .Fn setpgrp システムコールは、 .Fn setpgid と同一であり、 .Bx の旧バージョンとの呼び出し規約互換のために保持されています。 diff --git a/ja_JP.eucJP/man/man2/setresuid.2 b/ja_JP.eucJP/man/man2/setresuid.2 index 342493407d..594ecde9a6 100644 --- a/ja_JP.eucJP/man/man2/setresuid.2 +++ b/ja_JP.eucJP/man/man2/setresuid.2 @@ -1,92 +1,93 @@ .\" Copyright (c) 2000 .\" Sheldon Hearn. 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 .\" .\" %FreeBSD: src/lib/libc/sys/setresuid.2,v 1.14 2002/12/18 09:22:31 ru Exp % .\" .\" $FreeBSD$ .Dd April 13, 2001 .Dt SETRESUID 2 .Os .Sh 名称 .Nm getresgid , .Nm getresuid , .Nm setresgid , .Nm setresuid .Nd ユーザまたはグループの実 ID、実効 ID、退避 ID を取得もしくは設定する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In unistd.h .Ft int .Fn getresgid "gid_t *rgid" "gid_t *egid" "gid_t *sgid" .Ft int .Fn getresuid "uid_t *ruid" "uid_t *euid" "uid_t *suid" .Ft int .Fn setresgid "gid_t rgid" "gid_t egid" "gid_t sgid" .Ft int .Fn setresuid "uid_t ruid" "uid_t euid" "uid_t suid" .Sh 解説 -.Nm setresuid +.Fn setresuid システムコールは、 現在のプロセスのユーザの実 ID、実効 ID、退避 ID をセットします。 同様に -.Nm setresgid +.Fn setresgid はグループの実 ID、実効 ID、退避 ID をセットします。 .Pp 特権を持つプロセスは、これらの ID を任意の値にセットできます。 特権を持たないプロセスは、新しい ID のそれぞれが現在の ID のうちの いずれかと一致しなければならないという制限を受けます。 .Pp 値を変更したくない場合は、対応する引数に -1 を渡します。 +.Pp .Fn getresgid 呼び出しと .Fn getresuid 呼び出しは、それぞれ現在のプロセスのユーザもしくはグループの 実 ID、実効 ID、退避 ID を取得します。 .Sh 戻り値 .Rv -std .Sh エラー .Bl -tag -width Er -.It Er EPERM +.It Bq Er EPERM 呼び出し元プロセスが特権を持っておらず、1 つ以上の ID を 現在の実 ID、実効 ID、退避 ID 以外の値に変更しようとしました。 .It Bq Er EFAULT .Fn getresgid もしくは .Fn getresuid に渡されたアドレスは不正です。 .El .Sh 関連項目 .Xr getegid 2 , .Xr geteuid 2 , .Xr getgid 2 , .Xr getuid 2 , .Xr issetugid 2 , .Xr setgid 2 , .Xr setregid 2 , .Xr setreuid 2 , .Xr setuid 2 .Sh 規格 これらのシステムコールを持たないプラットホームはたくさんあります。 これらは GNU libc2 とリンクされた Linux バイナリを .Fx でサポートするために用意されています。 .Sh 歴史 これらの関数は HP-UX ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/shmget.2 b/ja_JP.eucJP/man/man2/shmget.2 index 70a77b66c5..041fbe516d 100644 --- a/ja_JP.eucJP/man/man2/shmget.2 +++ b/ja_JP.eucJP/man/man2/shmget.2 @@ -1,134 +1,136 @@ .\" .\" 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.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 -引数に渡す以下の定数の論理和で決まります: +引数に渡す以下の定数の論理和 +.Em ( OR ) +で決まります: .Bl -tag -width XSHM_WXX6XXX .It Dv SHM_R ユーザ用の読取りアクセス -.It SHM_W +.It Dv 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 3c0e51fbde..e48d44a95e 100644 --- a/ja_JP.eucJP/man/man2/sigaction.2 +++ b/ja_JP.eucJP/man/man2/sigaction.2 @@ -1,651 +1,653 @@ .\" 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.55 2004/07/03 22:30:09 ru Exp % .\" .\" 2001/01/01 horikawa@jp.FreeBSD.org .\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新 .\" してください。 .\" .\" $FreeBSD$ .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 ブロックされた +状態で動作しますが、その他のシグナルが発生する可能性は あります。 グローバルの .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 を実行するまで、そのシグナルハンドラは設置されたままです。 .Va sa_handler を .Dv SIG_DFL に設定することで、 シグナルごとに固有なデフォルトアクションにリセットすることができます。 デフォルトとは、プロセスの終了 (コアダンプが取られることもあります)、 アクションなし、プロセスの停止、プロセスの継続です。 それぞれのシグナルのデフォルトアクションについては、 下記のシグナルリストを参照してください。 .Va sa_handler が .Dv SIG_DFL である場合、シグナルのデフォルトアクションはシグナルの破棄になります。 また、シグナルが保留になっている場合でも、シグナルがマスクされていても 保留中のシグナルは破棄されます。 .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 +.It Dv SA_NOCLDWAIT .Dv SIGCHLD シグナルで .Fn sigaction を呼び出す場合にこのビットを設定すると、システムは、呼び出し側プロセスの 子プロセスが終了したときにゾンビプロセスを作成しなくなります。 そのあと、呼び出し側プロセスが .Xr wait 2 (かそれに相当する関数) を実行すると、呼び出し側プロセスのすべて の子プロセスが終了するまでブロックし、次に .Va errno を .Er ECHILD に設定して \-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 このビットが設定されている場合、ハンドラ関数は、 .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 SIGIO No " シグナルの破棄" " 記述子への" Tn "I/O" +可能 +.Xr ( fcntl 2 参照) -.It Dv SIGXCPU No " プロセスの終了" " cpu 制限時間の超過 (" -.Xr setrlimit 2 +.It Dv SIGXCPU No " プロセスの終了" " cpu 制限時間の超過" +.Xr ( setrlimit 2 参照) -.It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過 (" -.Xr setrlimit 2 +.It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過" +.Xr ( setrlimit 2 参照) -.It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム (" -.Xr setitimer 2 +.It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム" +.Xr ( setitimer 2 参照) -.It Dv SIGPROF 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 に指定する .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 .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 Tn ANSI C: +.It Tn ANSI C : .Ft void .Fn handler int ; .It 伝統的な BSD スタイル: .Ft void .Fn handler int "int code" "struct sigcontext *scp" ; -.It Tn POSIX の Dv SA_SIGINFO: +.It Tn POSIX の Dv SA_SIGINFO : .Ft void .Fn handler int "siginfo_t *info" "ucontext_t *uap" ; .El .Pp .Va sa_flags フラグ中で .Dv SA_SIGINFO ビットが設定されている場合、ハンドラ関数は .Dv SA_SIGINFO プロトタイプに一致しなくてはなりません。 その場合、 .Vt "struct sigaction" 構造体の .Va sa_sigaction メンバがハンドラ関数を指していなければなりません。 この方法で .Dv SIG_DFL あるいは .Dv SIG_IGN を割り当ててはいけないことに注意してください。 .Pp .Dv SA_SIGINFO フラグが設定されていない場合、ハンドラ関数は .Tn ANSI C もしくは伝統的な .Bx プロトタイプのどちらかに一致しなくてはならず、 .Vt "struct sigaction" 構造体の .Va sa_handler メンバがハンドラ関数を指していなければなりません。 実際には、 .Fx は常に後者である .Bx プロトタイプの 3 つの引数を送りますし、 .Tn ANSI C プロトタイプはそのサブセットになっていますので、どちらでも動作します。 .Fx インクルードファイルの .Va sa_handler メンバ宣言は、 .Tn ( POSIX の要求に従い) .Tn ANSI C のものです。 そのため、 .Bx スタイルの関数のポインタの場合、警告メッセージを無くして コンパイルするにはキャストする必要があります。 伝統的な .Bx スタイルは移植性がなく、その機能性も .Dv SA_SIGINFO ハンドラの完全な部分集合になっていますので、 .Bx スタイルを使うことは推奨されていません。 .Pp .Fa sig 引数はシグナル番号で、 .In signal.h の .Dv SIG... 値のうちの 1 つです。 .Pp .Bx スタイルのハンドラの .Fa code 引数および .Dv SA_SIGINFO ハンドラへの .Fa info 引数の .Va si_code メンバには、シグナルの発生理由を説明した数値コードが含まれています。 通常、この数値コードは .In sys/signal.h にある .Dv SI_... 値の 1 つであるか、もしくはシグナルに特化したコード、すなわち .Dv SIGFPE に対する .Dv FPE_... 値です。 .Pp .Bx スタイルのハンドラの .Fa scp 引数は .Vt "struct sigcontext" 構造体のインスタンスを指しています。 .Pp .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 +.\" と +.\" SA_SIGINFO フラグは、その他のオペレーティングシステムで一般的に見られるオプションです。 これらのフラグは .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/sigprocmask.2 b/ja_JP.eucJP/man/man2/sigprocmask.2 index 957f9f45a6..0b615b14e6 100644 --- a/ja_JP.eucJP/man/man2/sigprocmask.2 +++ b/ja_JP.eucJP/man/man2/sigprocmask.2 @@ -1,124 +1,122 @@ .\" 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. .\" .\" @(#)sigprocmask.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/sigprocmask.2,v 1.21 2003/09/08 19:57:16 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt SIGPROCMASK 2 .Os .Sh 名称 .Nm sigprocmask .Nd 現在のシグナルマスクを操作する .Sh ライブラリ .Lb libc .Sh 書式 .In signal.h .Ft int .Fo sigprocmask .Fa "int how" .Fa "const sigset_t * restrict set" .Fa "sigset_t * restrict oset" .Fc .Sh 解説 .Fn sigprocmask システムコールは、現在のシグナルマスク (配信がブロックされているシグナル) の 調査や変更を行います。 シグナルは、現在のシグナルマスクセットに含まれる場合にブロックされます。 .Pp .Fa set が NULL ではない場合、 .Fn sigprocmask の操作は、 .Fa how 引数の値によって決まります。 シグナルマスクは、指定した .Fa set と現在のマスクによって変更されます。 関数は、 .In signal.h で定義される以下の値を使用して -.Ar how +.Fa how で指定します。 .Bl -tag -width SIG_UNBLOCK .It Dv SIG_BLOCK 新しいマスクは、現在のマスクと指定した .Fa set の和集合になります。 -.Pp .It Dv SIG_UNBLOCK 新しいマスクは、現在のマスクと指定した .Fa set の補集合の交わりになります。 .It Dv SIG_SETMASK 現在のマスクは、指定した .Fa set に置き換えられます。 .El .Pp .Fa oset が NULL でない場合、前のシグナルマスクの値に設定されます。 .Fa set が NULL である場合、 .Fa how の値が無効になり、マスクは未設定のまま残るので、 シグナルマスクを修正せずに検査できるようになります。 .Pp システムでは、 .Dv SIGKILL や .Dv SIGSTOP のブロックが許可されていません。 .Sh 戻り値 .Rv -std sigprocmask .Sh エラー 以下が発生すると、 .Fn sigprocmask システムコールはエラーになり、シグナルマスクは変更されません。 -.Pp .Bl -tag -width Er .It Bq Er EINVAL .Fa how 引数が、ここでリストに挙げた以外の値になっています。 .El .Sh 関連項目 .Xr kill 2 , .Xr sigaction 2 , .Xr sigpending 2 , .Xr sigsuspend 2 , .Xr fpsetmask 3 , .Xr sigsetops 3 .Sh 規格 .Fn sigprocmask システムコールは、 .St -p1003.1-90 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/sigsuspend.2 b/ja_JP.eucJP/man/man2/sigsuspend.2 index 4147513023..f1c3261958 100644 --- a/ja_JP.eucJP/man/man2/sigsuspend.2 +++ b/ja_JP.eucJP/man/man2/sigsuspend.2 @@ -1,83 +1,83 @@ .\" 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. .\" .\" @(#)sigsuspend.2 8.2 (Berkeley) 5/16/95 .\" %FreeBSD: src/lib/libc/sys/sigsuspend.2,v 1.16 2003/06/24 15:41:19 yar Exp % .\" .\" $FreeBSD$ .Dd May 16, 1995 .Dt SIGSUSPEND 2 .Os .Sh 名称 .Nm sigsuspend .Nd ブロックされているシグナルの解放と割込み待ちを不可分に実行 .Sh ライブラリ .Lb libc .Sh 書式 .In signal.h .Ft int .Fn sigsuspend "const sigset_t *sigmask" .Sh 解説 .Fn sigsuspend システムコールは、 .Fa sigmask が指す集合に、ブロックされているシグナルマスクを一時的に変更してから、 シグナルの到着を待ちます。 復帰時に、マスクされたシグナルの前の集合が復元されます。 通常の場合、シグナルマスク集合は空で、呼び出しが続く間、 すべてのシグナルがブロックされないことを表わします。 .Pp 通常の用法では、 .Xr sigprocmask 2 でシグナルをブロックして重要なセクションを始め、 シグナルの発生で修正された変数を調べて 実行すべき仕事がないことを判断し、 .Xr sigprocmask 2 が返した以前のマスクで .Fn sigsuspend を使用することでプロセスが停止して仕事を待ちます。 .Sh 戻り値 .Fn sigsuspend システムコールは、常に割り込まれることで終了し、 .Va errno を .Er EINTR に設定し、-1 を返します。 .Sh 関連項目 .Xr sigaction 2 , .Xr sigpending 2 , .Xr sigprocmask 2 , .Xr sigsetops 3 .Sh 規格 -.Fn sigsupend +.Fn sigsuspend システムコールは、 .St -p1003.1-90 に適合しています。 diff --git a/ja_JP.eucJP/man/man2/sigvec.2 b/ja_JP.eucJP/man/man2/sigvec.2 index 562bc3eef6..ebb3817927 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.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 が呼び出されるまで) 設置されます。 このマスクは、現在のシグナルマスクに、配信されるシグナルを追加し、 -呼び出されるハンドラに関連したシグナルマスクとの論理和を -取って形成されます。 +呼び出されるハンドラに関連したシグナルマスクとの論理和 +.Em ( or ) +を取って形成されます。 .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 SIGIO No " シグナルの放棄" " 記述子に" Tn "I/O" +可能 +.Xr ( fcntl 2 参照) -.It Dv SIGXCPU No " プロセスの終了" " cpu 制限時間の超過 ( -.Xr setrlimit 2 +.It Dv SIGXCPU No " プロセスの終了" " cpu 制限時間の超過" +.Xr ( setrlimit 2 参照) -.It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過 (" -.Xr setrlimit 2 +.It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過" +.Xr ( setrlimit 2 参照) -.It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム (" -.Xr setitimer 2 +.It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム" +.Xr ( setitimer 2 参照) -.It Dv SIGPROF 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 +.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 +構造体 +.In ( signal.h で定義) へのポインタで、シグナル前にコンテキストを復元するために使用されます。 .Sh バグ このマニュアルページは不明確です。 diff --git a/ja_JP.eucJP/man/man2/stat.2 b/ja_JP.eucJP/man/man2/stat.2 index 31127be281..46d1bbd07a 100644 --- a/ja_JP.eucJP/man/man2/stat.2 +++ b/ja_JP.eucJP/man/man2/stat.2 @@ -1,265 +1,321 @@ .\" Copyright (c) 1980, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stat.2 8.4 (Berkeley) 5/1/95 -.\" %FreeBSD: src/lib/libc/sys/stat.2,v 1.36 2003/12/10 15:08:41 dds Exp % +.\" %FreeBSD: src/lib/libc/sys/stat.2,v 1.36.2.4 2005/02/28 03:32:34 brueffer Exp % .\" .\" $FreeBSD$ -.Dd February 15, 2002 +.Dd November 15, 2004 .Dt STAT 2 .Os .Sh 名称 .Nm stat , .Nm lstat , .Nm fstat .Nd ファイルステータスの取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/stat.h .Ft int .Fn stat "const char *path" "struct stat *sb" .Ft int .Fn lstat "const char *path" "struct stat *sb" .Ft int .Fn fstat "int fd" "struct stat *sb" .Sh 解説 .Fn stat システムコールは、 .Fa path が指すファイルの情報を取得します。 指定したファイルの読取り権、書込み権、実行権は必要ありません。 しかし、そのファイルへ至るパス名で列挙されたすべてのディレクトリは、 検索可能であることが必要です。 .Pp .Fn lstat 関数は .Fn stat に似ていますが、指定したファイルがシンボリックリンクである場合は異なります。 .Fn lstat はリンクの情報を戻しますが、 .Fn stat はリンクが参照するファイルの情報を返します。 .Pp .Fn fstat システムコールは、ファイル記述子 .Fa fd で区別されるオープンファイルについて、上と同じ情報を取得します。 .Pp 引数 .Fa sb は、構造体 .Vt stat へのポインタです。 これは、 .In sys/stat.h で定義され、ファイルに関する情報を保持します。 .Pp -.Fa struct stat +ファイルシステムに関連する +.Vt "struct stat" +のフィールドは以下のとおりです: +.Bl -tag -width ".Va st_nlink" +.It Va st_dev +ファイルを含むデバイスの数値 ID。 +.It Va st_ino +ファイルの i ノード番号。 +.It Va st_nlink +ファイルへのハードリンクの数。 +.El +.Pp +.Va st_dev +と +.Va st_ino +フィールドはともにシステム中で唯一のファイルを特定します。 +.Pp +.Vt "struct stat" の時刻に関するフィールドは、以下のとおりです: .Bl -tag -width ".Va st_birthtime" .It Va st_atime ファイルのデータが最後にアクセスされた時刻。 .Xr mknod 2 , .Xr utimes 2 , .Xr read 2 および .Xr readv 2 システムコールで変更されます。 .It Va st_mtime ファイルのデータが最後に修正された時刻。 .Xr mkdir 2 , .Xr mkfifo 2 , .Xr mknod 2 , .Xr utimes 2 , .Xr write 2 および .Xr writev 2 システムコールで変更されます。 .It Va st_ctime ファイルステータスが最後に変更された時刻 (inode データの修正)。 .Xr chflags 2 , .Xr chmod 2 , .Xr chown 2 , .Xr creat 2 , .Xr link 2 , .Xr mkdir 2 , .Xr mkfifo 2 , .Xr mknod 2 , .Xr rename 2 , .Xr rmdir 2 , .Xr symlink 2 , .Xr truncate 2 , .Xr unlink 2 , .Xr utimes 2 , .Xr write 2 および .Xr writev 2 システムコールで変更されます。 .It Va st_birthtime inode が作成されたときの時刻。 .El .Pp .Dv _POSIX_SOURCE が定義されていない場合、時刻に関するフィールドは以下のように定義されます: .Bd -literal #ifndef _POSIX_SOURCE #define st_atime st_atimespec.tv_sec #define st_mtime st_mtimespec.tv_sec #define st_ctime st_ctimespec.tv_sec #endif .Ed .Pp .Vt "struct stat" のサイズに関するフィールドは、以下のとおりです: -.Bl -tag -width XXXst_blksize -.It st_blksize +.Bl -tag -width ".Va st_blksize" +.It Va st_size +バイトで表されるファイルサイズ。 +.It Va st_blksize ファイルの最適な入出力ブロックサイズ。 -.It st_blocks +.It Va st_blocks ファイルに 512 バイト単位で割り当てられたブロックの実際の数。 短いシンボリックリンクが inode に保持されている場合、この数値が 0 になることがあります。 .El .Pp +.Vt "struct stat" +のアクセス関連のフィールドは以下のとおりです: +.Bl -tag -width ".Va st_mode" +.It Va st_uid +ファイルの所有者のユーザID。 +.It Va st_gid +ファイルのグループID。 +.It Va st_mode +ファイルの状態 (下記参照)。 +.El +.Pp ステータス情報ワード .Fa st_mode には、以下のようなビットがあります: .Bd -literal #define S_IFMT 0170000 /* ファイルのタイプ */ #define S_IFIFO 0010000 /* 名前付きパイプ (fifo) */ #define S_IFCHR 0020000 /* キャラクタ型特殊ファイル */ #define S_IFDIR 0040000 /* ディレクトリ */ #define S_IFBLK 0060000 /* ブロック型特殊ファイル */ #define S_IFREG 0100000 /* 通常 */ #define S_IFLNK 0120000 /* シンボリックリンク */ #define S_IFSOCK 0140000 /* ソケット */ #define S_IFWHT 0160000 /* ホワイトアウト */ #define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* 使用後にもスワップされたテキストを保存 */ #define S_IRUSR 0000400 /* 読取り権限の所有者 */ #define S_IWUSR 0000200 /* 書込み権限の所有者 */ #define S_IXUSR 0000100 /* 実行 / 検索権限の所有者 */ .Ed +.Pp アクセスモードのリストについては、 .In sys/stat.h , .Xr access 2 , .Xr chmod 2 を参照してください。 +以下のマクロは +.Fa m +引数で渡された +.Va st_mode +値が指定されたタイプのファイルに対応しているかどうか +テストするために利用可能です: +.Bl -tag -width ".Fn S_ISFIFO m" +.It Fn S_ISBLK m +ブロック特殊ファイルかどうかテストする。 +.It Fn S_ISCHR m +キャラクタ特殊ファイルかどうかテストする。 +.It Fn S_ISDIR m +ディレクトリかどうかテストする。 +.It Fn S_ISFIFO m +パイプか FIFO 特殊ファイルかどうかテストする。 +.It Fn S_ISLNK m +シンボリックリンクかどうかテストする。 +.It Fn S_ISREG m +通常のファイルかどうかテストする。 +.It Fn S_ISSOCK m +ソケットかどうかテストする。 +.It Fn S_ISWHT m +ホワイトアウトかどうかテストする。 +.El +.Pp +マクロは、テストが真なら 0 以外、またはテストが偽なら 0 に評価します。 .Sh 戻り値 .Rv -std .Sh 互換性 以前のバージョンのシステムでは、 -.Li st_dev , -.Li st_uid , -.Li st_gid , -.Li st_rdev , -.Li st_size , -.Li st_blksize , -.Li st_blocks +.Va st_dev , +.Va st_uid , +.Va st_gid , +.Va st_rdev , +.Va st_size , +.Va st_blksize , +.Va st_blocks フィールドに別のタイプを使用していました。 .Sh エラー .Fn stat システムコールと .Fn lstat システムコールは、以下のような場合にエラーとなります: .Bl -tag -width Er .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er EFAULT .Fa sb 引数または -.Em name +.Fa path 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムでの読み書き中に入出力エラーが発生しました。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er EOVERFLOW ファイルサイズのバイト数が、 .Fa sb で指されている構造体で正しく表現できません。 .El .Pp .Fn fstat システムコールは、以下のような場合にエラーとなります: .Bl -tag -width Er .It Bq Er EBADF .Fa fd 引数が、有効な記述子ではありません。 .It Bq Er EFAULT .Fa sb 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .It Bq Er EOVERFLOW ファイルサイズのバイト数が、 .Fa sb で指されている構造体で正しく表現できません。 .El .Sh 関連項目 .Xr access 2 , .Xr chmod 2 , .Xr chown 2 , .Xr utimes 2 , .Xr symlink 7 , .Xr sticky 8 .Sh バグ .Fn fstat をソケット (およびパイプ) に適用すると、ブロックサイズフィールド、 および固有デバイスと inode 番号以外に 0 の入ったバッファが戻されます。 .Sh 規格 .Fn stat システムコールと .Fn fstat システムコールは、 .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn stat システムコールと .Fn fstat システムコールは、 .At v7 で登場しました。 .Fn lstat システムコールは .Bx 4.2 で登場しました。 -.\" Amended by N.Kumagai 2000-3-18 diff --git a/ja_JP.eucJP/man/man2/statfs.2 b/ja_JP.eucJP/man/man2/statfs.2 index accedae790..5308ee1834 100644 --- a/ja_JP.eucJP/man/man2/statfs.2 +++ b/ja_JP.eucJP/man/man2/statfs.2 @@ -1,217 +1,219 @@ .\" 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.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 -ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +ファイルシステムに読み書きしている間に +.Tn 入出力 +エラーが発生しました。 .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 d6d24040b4..a0bf742cf4 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.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 +.Fx 5.0 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/unlink.2 b/ja_JP.eucJP/man/man2/unlink.2 index 2669007619..2fae17eb6b 100644 --- a/ja_JP.eucJP/man/man2/unlink.2 +++ b/ja_JP.eucJP/man/man2/unlink.2 @@ -1,113 +1,120 @@ .\" 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.17 2004/07/02 23:52:13 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/unlink.2,v 1.17.2.1 2005/02/26 06:08:07 trhodes Exp % .\" .\" $FreeBSD$ -.Dd June 4, 1993 +.Dd February 23, 2005 .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 +指定されたファイルはそれが変更不可 (immutable) であるか追加専用 +(append-only) のフラグが設定されています。 +詳しい情報に関しては +.Xr chflags 2 +マニュアルページを参照してください。 +.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 chflags 2 , .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/utimes.2 b/ja_JP.eucJP/man/man2/utimes.2 index 4f8d80102f..fe07cc1c5f 100644 --- a/ja_JP.eucJP/man/man2/utimes.2 +++ b/ja_JP.eucJP/man/man2/utimes.2 @@ -1,184 +1,189 @@ .\" %NetBSD: utimes.2,v 1.13 1999/03/22 19:45:11 garbled Exp % .\" .\" Copyright (c) 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. .\" .\" @(#)utimes.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/utimes.2,v 1.17 2002/12/19 09:40:25 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt UTIMES 2 .Os .Sh 名称 .Nm utimes , .Nm lutimes , .Nm futimes .Nd ファイルアクセス時刻と更新時刻の設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/time.h .Ft int .Fn utimes "const char *path" "const struct timeval *times" .Ft int .Fn lutimes "const char *path" "const struct timeval *times" .Ft int .Fn futimes "int fd" "const struct timeval *times" .Sh 解説 .Fa path で指定したファイルか .Fa fd が参照するファイルのアクセス時刻と更新時刻を、引数 .Fa times で指定されたように変更します。 .Pp .Fa times が .Dv NULL である場合、アクセス時刻と更新時刻は現在の時刻に設定されます。 呼び出し側はファイルの所有者でファイルの書込み権があるか、 スーパユーザである必要があります。 .Pp .Fa times -が NULL 以外である場合、 +が +.Dv NULL +以外である場合、 .Fa times は 2 つの timeval 構造体の配列を指していることが前提となります。 アクセス時刻は最初の要素に、更新時刻は次の要素に 設定します。 -( -.Dv UFS2 +.Pf ( Dv UFS2 のように) ファイルの誕生 (生成) 時刻をサポートしている ファイルシステムでは、2 番目の要素が現在設定されている誕生時刻よりも 前であれば、誕生時刻は 2 番目の要素の値で設定されます。 誕生時刻と更新時刻の両方を設定する場合は、2 回の呼び出しが必要です。 最初に誕生時刻を設定し、次に (より新しいであろう) 更新時刻を設定します。 理想的には、一度に 3 つの時刻すべてを設定できるシステムコールが 追加されるでしょう。 呼び出し側はファイルの所有者であるかスーパユーザである必要があります。 .Pp どちらの場合でも、ファイルの inode 変更時刻は現在の時刻に設定されます。 .Pp .Fn lutimes システムコールは指定したファイルがシンボリックリンク以外では .Fn utimes と同じです。 シンボリックリンクの場合 .Fn lutimes はリンクのアクセス時刻と更新時刻を変更するのに対し、 .Fn utimes はリンクが参照するファイルの時刻を変更します。 .Sh 戻り値 .Rv -std .Sh エラー .Fn utimes システムコールと .Fn lutimes システムコールは、以下のような場合にエラーとなります: .Bl -tag -width Er .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 あるいは .Fa times -引数が NULL で、プロセスの実効ユーザ ID がファイルの所有者と一致せず、 +引数が +.Dv NULL +で、プロセスの実効ユーザ ID がファイルの所有者と一致せず、 しかもスーパユーザでもなく、書込みアクセスが拒否されました。 .It Bq Er EFAULT .Fa path 引数または .Fa times 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO 変更される inode の読み書きの間に入出力エラーが発生しました。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENAMETOOLONG パス名の構成要素が .Dv NAME_MAX 文字を越えているか、またはパス名全体 .Dv PATH_MAX 文字を越えています。 .It Bq Er ENOENT 指定したファイルが存在しません。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er EPERM .Fa times -引数が NULL ではなく、呼び出し側プロセスの実効ユーザ ID が、 +引数が +.Dv NULL +ではなく、呼び出し側プロセスの実効ユーザ ID が、 ファイルの所有者と一致せず、しかもスーパユーザではありません。 .It Bq Er EROFS そのファイルを含むファイルシステムが、 読取り専用でマウントされています。 .El .Pp .Fn futimes システムコールは、以下の場合にエラーとなります: .Bl -tag -width Er .It Bq Er EBADF .Fa fd 引数が、有効な記述子を参照していません。 .El .Pp すべてのシステムコールは、以下の場合にエラーとなります。 .Bl -tag -width Er .It Bq Er EACCES .Fa times 引数が .Dv NULL であり、プロセスの実効ユーザ ID がファイルの所有者と一致せず、 しかもスーパユーザでもなく、書込みアクセスが拒否されました。 .It Bq Er EFAULT .Fa times 引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO 変更される inode の読み書き中に入出力エラーが発生しました。 .It Bq Er EPERM .Fa times 引数が .Dv NULL ではなく、呼び出し側プロセスの実効ユーザ ID が、 ファイルの所有者と一致せず、しかもスーパユーザでもありません。 .It Bq Er EROFS そのファイルを含むファイルシステムが読取り専用でマウントされています。 .El .Sh 関連項目 .Xr stat 2 , .Xr utime 3 .Sh 歴史 .Fn utimes システムコールは .Bx 4.2 で登場しました。 .Fn futimes システムコールと .Fn lutimes システムコールは .Fx 3.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/vfork.2 b/ja_JP.eucJP/man/man2/vfork.2 index 6f7485e5dd..d9c1080041 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.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 +を呼び出すか、終了する +.Pf ( 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 +親プロセスの標準入出力データ構造体を壊してしまいます +.Pf ( 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 3 .Sh 戻り値 .Xr fork 2 と同じです。 .Sh バグ このシステムコールは、適切なシステム共有メカニズムが実現したときに 削除されます。 削除された場合は、 .Xr fork 2 と同義になるので、 -.Xr vfork 2 +.Fn vfork のメモリ共有の現実装には依存しないでください。 .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 0f2d906ac6..001656c449 100644 --- a/ja_JP.eucJP/man/man2/wait.2 +++ b/ja_JP.eucJP/man/man2/wait.2 @@ -1,272 +1,275 @@ .\" 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.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 SIGTTIN , SIGTTOU , SIGTSTP , .Dv SIGSTOP シグナルのために停止したカレントプロセスの子にも、 そのステータスを報告させます。 +.Pp .Fa rusage が 0 以外である場合は、終了したプロセスと そのすべての子が使用したリソースのサマリが返されます (現在のところ、この情報は停止したプロセスについては使用できません)。 +.Pp .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 +wait 呼び出しで .Dv WUNTRACED -オプションを指定するか、子プロセスがトレースされている ( -.Xr ptrace 2 +オプションを指定するか、子プロセスがトレースされている +.Pf ( 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 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 bb01c4c3f9..e647448bc4 100644 --- a/ja_JP.eucJP/man/man2/write.2 +++ b/ja_JP.eucJP/man/man2/write.2 @@ -1,236 +1,238 @@ .\" 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.26 2004/07/02 23:52:13 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/write.2,v 1.26.2.1 2004/11/13 11:55:41 yar Exp % .\" .\" $FreeBSD$ -.Dd April 2, 1994 +.Dd October 16, 2004 .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 設定ファイルを -「捕えた」ユーザは、システムセキュリティを突破できなくなります。 +.Dq 捕えた +ユーザは、システムセキュリティを突破できなくなります。 .Pp ソケットのように、フロー制御の影響を受けるオブジェクトで 非ブロッキング I/O を使用すると、 .Fn write と .Fn writev は、要求したより少ないバイト数を書き込むことがあります。 戻り値に注意し、可能な場合にはオペレーションの残りを再度試してください。 .Sh 戻り値 処理が正常に完了すると、書き込まれたバイト数が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn write , -.Fn writev , +.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 -指定したファイルオフセットが正しくありません。 +.Fa offset +の値が負です。 .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 で登場しました。 diff --git a/ja_JP.eucJP/man/man6/banner.6 b/ja_JP.eucJP/man/man6/banner.6 index 9e3cf8f5f5..175e32b8b9 100644 --- a/ja_JP.eucJP/man/man6/banner.6 +++ b/ja_JP.eucJP/man/man6/banner.6 @@ -1,86 +1,86 @@ .\" Copyright (c) 1980, 1993, 1995 .\" 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: @(#)banner.6 8.2 (Berkeley) 4/29/95 .\" %FreeBSD: src/usr.bin/banner/banner.6,v 1.7 2001/07/15 08:01:06 dd Exp % .\" $FreeBSD$ .\" .\" 以下は参考にした Linux JM のクレジット .\" Japanese Version Copyright (c) 1997,1998 MAEHARA Kohichi .\" all rights reserved. .\" Translated Sat Feb 21 00:00:00 JST 1998 .\" by MAEHARA Kohichi .\" .Dd April 29, 1995 .Dt BANNER 6 .Os .Sh 名称 .Nm banner .Nd プリンタ用に大きな見出しを出力する .Sh 書式 -.Nm banner +.Nm .Op Fl d .Op Fl t .Op Fl w Ar width .Ar message ... .Sh 解説 .Nm banner は大きくてクオリティの高い見出し文字を標準出力に出力します。 message が省略された場合は、 プロンプトを出して標準入力から一行入力を読みとります。 .Pp 出力は、適切な幅の紙に切れ目無く印刷されるでしょう。 .Pp 次のオプションが使用可能です: .Bl -tag -width indent .It Fl d デバッグを有効化します。 .It Fl t トレースを有効化します。 .It Fl w Ar width 出力幅を 132 から .Ar width へ変更します。 狭い端末向きです。 .El .Sh バグ <、 >、 [、 ]、 \\、^、 _、{、 }、 |、 ~、といったいくつかの .Tn ASCII キャラクタは利用できません。 また、"、'、& はおかしな風に見えます (が役立つでしょう)。 .Pp .Fl w オプションは縦横を間引するように実装されています。 このため、あまり小さな数値が指定されると、出力がつぶれてしまいます。 また、文字がくっついてしまうこともあります。 .Sh 作者 .An Mark Horton .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja_JP.eucJP/man/man6/caesar.6 b/ja_JP.eucJP/man/man6/caesar.6 index becc0a302d..a082fd3257 100644 --- a/ja_JP.eucJP/man/man6/caesar.6 +++ b/ja_JP.eucJP/man/man6/caesar.6 @@ -1,83 +1,83 @@ .\" 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. .\" .\" @(#)caesar.6 8.2 (Berkeley) 11/16/93 .\" %FreeBSD: src/games/caesar/caesar.6,v 1.9 2003/05/16 21:26:39 ru Exp % .\" $FreeBSD$ .\" 以下は参考にした Linux LM のクレジット .\" .\" Japanese Version Copyright (c) 1997,1998 MAEHARA Kohichi .\" all rights reserved. .\" Translated Tue Feb 10 00:00:00 JST 1998 .\" by MAEHARA Kohichi .\" .Dd November 16, 1993 .Dt CAESAR 6 .Os .Sh 名称 .Nm caesar , rot13 .Nd シーザー式暗号法の解読 .Sh 書式 -.Nm caesar +.Nm .Op Ar rotation .Nm rot13 .Sh 解説 .Nm は英文字の出現頻度に関する統計を用いてシーザー式暗号法の解読を行なう ユーティリティです。 .Nm は標準入力から読み込み、標準出力へ書き出します。 .Pp オプション引数に数字で .Ar rotation を与えることにより、特定の回転値を指定できます。 .Nm rot13 として起動された場合、回転値 13 が使用されます。 .Pp 英文字の出現頻度は以下の通り(多いほうから少ないほうへ)。 .Pp .Bd -ragged -offset indent ETAONRISHDLFCMUGPYWBVKXJQZ .Ed .Pp これらの出現頻度をパーセントで示します: .Pp .Bd -ragged -offset indent E(13), T(10.5), A(8.1), O(7.9), N(7.1), R(6.8), I(6.3), S(6.1), H(5.2), D(3.8), L(3.4), F(2.9), C(2.7), M(2.5), U(2.4), G(2), P(1.9), Y(1.9), W(1.5), B(1.4), V(.9), K(.4), X(.15), J(.13), Q(.11), Z(.07). .Ed .Pp .Tn USENET への暗号化された投稿や、 .Xr fortune 6 プログラムが用いるデータベースのいくつかは、13 文字分回転されています。 diff --git a/ja_JP.eucJP/man/man6/fortune.6 b/ja_JP.eucJP/man/man6/fortune.6 index 47ca0f1667..d1e69d9001 100644 --- a/ja_JP.eucJP/man/man6/fortune.6 +++ b/ja_JP.eucJP/man/man6/fortune.6 @@ -1,199 +1,200 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Ken Arnold. .\" .\" 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. .\" .\" @(#)fortune.6 8.3 (Berkeley) 4/19/94 .\" %FreeBSD: src/games/fortune/fortune/fortune.6,v 1.17 2004/07/02 21:15:48 ru Exp % .\" $FreeBSD$ .\" .\" 以下は Linux JM のクレジット .\" Japanese Version Copyright (c) 1997,1998 MAEHARA Kohichi .\" Japanese Version Copyright (c) 1997,1998 HANAYAKA Sinya .\" all rights reserved. .\" Translated Tue Feb 10 00:00:00 JST 1998 .\" by HANATAKA Sinya .\" by MAEHARA Kohichi .\" .\" .Dd April 19, 1994 .Dt FORTUNE 6 .Os .Sh 名称 .Nm fortune .Nd "おもしろくためになる格言を無作為に表示する" .Sh 書式 .Nm .Op Fl aDefilosw .Op Fl m Ar pattern .Oo .Op Ar \&N% .Ar file/dir/all .Oc .Sh 解説 .Nm を引数なしで実行すると、無作為に選んだ格言を一つ表示します。 格言はいくつかの種類に分類されていて、それぞれの分類はさらに、 耳に痛いものとそうでないものとに分けられています。 オプションを以下に示します: .Bl -tag -width flag .It Fl a 耳に痛いものもそうでないものも、格言をすべて含めた リストから選びます (耳に痛いものについての詳細は .Fl o オプションを参照してください)。 .It Fl D 更なるデバッグ出力を有効にします。 本オプションを複数回指定すると、出力が更に冗長になります。 -DDEBUG 付きでコンパイルされている場合のみ、利用可能です。 .It Fl e すべての fortune のファイルが同一サイズであることを仮定します (複数ファイルの扱いについての下記の解説を参照してください)。 .It Fl f 検索されるファイルの一覧を表示し、格言は表示しません。 .It Fl l 長めの格言に限ります。 .It Fl m 正規表現 .Ar pattern に合致する格言を表示します。 正規表現のパターンの記述方法については .Xr regex 3 を参照してください。 .It Fl o 耳に痛い格言に限り、 その中から選んで出力します。 .Bf -symbolic ぜひ、ぜひ、ぜひとも、 耳に痛い格言を喜んで 受け入れられる気分であると心の底から確信しているときに限って、 耳に痛そうな格言を指定して下さい (そして、 もし受け入れられない気分のときなら、出てきた文言についてわれわれに 文句を言うことをせず、黙って .Fl o オプションの使用を止めるはずですよね)。 .Ef .Bd -unfilled -offset indent \&...人類愛について基本的かつ支配的な哲学を心に留めるよう にしよう、これは以下の言葉に簡潔にまとめられている: 心からの笑いは健康のためによい -- 必要とあらば全人類を 犠牲にしたとしても。 --H. Allen Smith, "Rude Jokes" .Ed .It Fl s 短めの格言に限ります。 .It Fl i .Fl m オプションで指定された (正規表現の) パターンについて、 大文字小文字の別を無視します。 .It Fl w 終了前に、メッセージの文字数に応じた長さから算出される時間だけ停止します。 ログアウト手順に組み込んだ場合、 スクリーンがクリアされる前に メッセージを読み取る時間を確保するのに役に立ちます。 .El .Pp 別の格言集の使用を指定することができます。この指定では、 特定のファイル、1 つ以上のファイルを含むディレクトリ、 もしくは標準データベース全てを使用するという .Em all という特殊語のいずれかを指定可能です。 これらの前にはパーセンテージを付けることが可能です。 パーセンテージは、0 以上 100 以下の数字 .Ar N に .Ar % を続けたものです。 パーセンテージを指定した場合、ある格言が .Ar N パーセントの確率でそのファイルあるいはディレクトリから選択されます。 パーセントの合計が 100 に満たず、パーセント無しの指定がある場合、 残りのパーセントが、パーセント無しのファイルとディレクトリに割当てられます。 この場合、パーセント無しのものが選択される確率は、これらのサイズに依存します。 .Pp 例として、2 個のデータベース .Em funny と .Em not-funny とを用います。この時 .Em funny が 2 倍の大きさとするならば、 .Bd -literal -offset indent fortune funny not-funny .Ed .Pp と指示すると 3 回に 2 回の割合で .Em funny から選択されます。 コマンドを .Bd -literal -offset indent fortune 90% funny 10% not-funny .Ed .Pp のように指定すると 90 % を .Em funny から選び出します (この場合残りが 10% であることが明らかなので .Dq 10% not-funny は不要です)。 .Fl e オプションを指定すると、全てのファイルから均等に選び出します; すなわち .Bd -literal -offset indent fortune \-e funny not-funny .Ed .Pp とするのは .Bd -literal -offset indent fortune 50% funny 50% not-funny .Ed -.Pp +.\" 次の .sp は翻訳で追加、.Pp でもよいが制御文の比較のために .sp とした。 +.sp と指定するのと同等です。 .Sh 関連ファイル .Bl -tag -width Pa -compact .It Pa /usr/games/fortune .Pp .It Pa /usr/share/games/fortune/* fortune のデータベース (名前が .Dq -o で終るファイルには、 .Bf -symbolic 耳に痛い .Ef 格言が含まれます) .El .Sh 関連項目 .Xr regcomp 3 , .Xr regex 3 , .Xr strfile 8 .\" Amended by kuma, based on fortune.6,v 1.2 1998/02/24 14:51:07 horikawa Stab .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja_JP.eucJP/man/man6/number.6 b/ja_JP.eucJP/man/man6/number.6 index 8e2bd2e628..b8daa3591f 100644 --- a/ja_JP.eucJP/man/man6/number.6 +++ b/ja_JP.eucJP/man/man6/number.6 @@ -1,61 +1,61 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)number.6 8.2 (Berkeley) 3/31/94 .\" %FreeBSD: src/games/number/number.6,v 1.5 2000/11/20 12:06:18 ru Exp % .\" $FreeBSD$ .\" .Dd March 31, 1994 .Dt NUMBER 6 .Os .Sh 名称 .Nm number .Nd アラビア数字を英語に変換する .Sh 書式 -.Nm number +.Nm .Op Fl l .Op Ar \&# ... .Sh 解説 .Nm ユーティリティは数値を英語で表記したものを標準出力に出力します。 この際、10^3 の単位ごとに行を変えて表示を行います。 引数を指定しない場合、 .Nm 標準入力から行を読み込みます。 .Pp オプションを以下に示します: .Bl -tag -width Ds .It Fl l 数値を一行に表示します。 .El .Sh バグ .Nm は小数を理解するものの、指数は理解しません。 diff --git a/ja_JP.eucJP/man/man6/random.6 b/ja_JP.eucJP/man/man6/random.6 index f7cc4f9600..5fe79cdaba 100644 --- a/ja_JP.eucJP/man/man6/random.6 +++ b/ja_JP.eucJP/man/man6/random.6 @@ -1,121 +1,121 @@ .\" Copyright (c) 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 acknowledgment: .\" 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. .\" .\" @(#)random.6 8.2 (Berkeley) 3/31/94 .\" %FreeBSD: src/games/random/random.6,v 1.7 2003/02/23 01:44:14 ru Exp % .\" $FreeBSD$ .\" .Dd February 8, 2003 .Dt RANDOM 6 .Os .Sh 名称 .Nm random .Nd ファイルからのランダムな行選択、あるいは乱数 .Sh 書式 -.Nm random +.Nm .Op Fl elrUuw .Op Fl f Ar filename .Op Ar denominator .Sh 解説 .Nm は 2 つの異なる動作モードがあります。 デフォルトは、標準入力の行を読み取り、 1 / .Ar denominator の確率でそれらを標準出力へ書き込むことです。 この動作モードでのデフォルトの .Ar denominator は 2 であり、各行が表示される確率は 50/50 です。 .Pp 第 2 の動作モードは、 .Ar filename からファイルを読み取り、ファイルの中身をかき混ぜ、 これを標準出力へ送るというものです。 ファイル内容は、改行または .Xr isspace 3 で判定される空白文字をもとに、かき混ぜられます。 この動作モードでのデフォルトの .Ar denominator は 1 であり、各行は表示されますが .Xr random 3 順となります。 .Pp オプションは以下の通りです。 .Bl -tag -width Ds .It Fl e .Fl e オプションが指定されていると、 .Nm は何も読み書きせず、 0 から .Ar denominator \&- 1 までの整数からランダムに選んだ値を返り値として そのまま終了します。 .It Fl f Ar filename .Fl f オプションは、読み取る .Ar filename を指定するために使用されます。 .Ar filename が .Sq Fl の場合、標準入力が使用されます。 .It Fl l 改行で入力をかき混ぜます (デフォルト)。 .It Fl r .Fl r オプションは、出力がバッファリングされないことを保証します。 .It Fl U かき混ぜた出力を作成するときに、同じ行や語を再利用して良いことを .Xr random 6 に指示します。 .It Fl u 同じ行または語をファイルから選択しないよう .Xr random 6 に指示します (デフォルト)。 入力に同じトークンが複数個ある場合には一意性を保証しませんが、 同じトークンが複数回選択されることは妨げます。 .It Fl w 改行ではなく、 .Xr isspace 3 で区切られる語を、かき混ぜます。 .El .Sh 関連項目 .Xr random 3 , .Xr fortune 6 .Sh バグ トークン表示時にはインデックスを使用していません。 このため、大きなファイル (10MB+) では遅くなるでしょう。 性能の影響を受ける領域でこれを使用するのでしたらば、工夫したでしょう。 しかしながら、小さなファイルに対しては十分に高速で効率的です。 .Sh 歴史 行や語をかき混ぜる機能は、2003 に .An "Sean Chittenden" Aq seanc@FreeBSD.org が追加しました。