diff options
Diffstat (limited to 'documentation/manual-pages/ja/man2')
160 files changed, 25488 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man2/_exit.2 b/documentation/manual-pages/ja/man2/_exit.2 new file mode 100644 index 0000000000..e870a6fe3f --- /dev/null +++ b/documentation/manual-pages/ja/man2/_exit.2 @@ -0,0 +1,121 @@ +.\" Copyright (c) 1980, 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. +.\" +.\" @(#)_exit.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/_exit.2,v 1.16 2002/12/18 13:33:04 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt EXIT 2 +.Os +.Sh 名称 +.Nm _exit +.Nd 呼び出し元プロセスを終了する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft void +.Fn _exit "int status" +.Sh 解説 +.Fn _exit +システムコールはプロセスを終了させ、以降のような結果をもたらします: +.Bl -bullet +.It +呼び出し元プロセス内のすべての記述子が閉じられます。 +これには遅延が伴うことがあります。 +たとえば、出力がすべて出されてしまうのを待機することです。 +この状態のプロセスは既に死にかけているので、新たに kill はできません。 +.It +呼び出し元プロセスの親プロセスに、未解決の +.Xr wait 2 +呼び出しがある場合または +.Dv SIGCHLD +シグナルを捕捉した場合、呼び出し元プロセスの終了が親プロセスに通知され、 +.Xr wait 2 +で定義されたように +.Fa status +が設定されます。 +.It +呼び出し元プロセスに子プロセスが存在するなら、それらすべての子プロセスの +親プロセス ID は 1 に設定されます。 +初期化プロセス +.Pf ( Xr intro 2 +の +.Sx 定義 +セクションを参照) +が、これらの各プロセスを継承します。 +.It +プロセスの終了によっていずれかのプロセスグループが親のない子になる場合 +(通常はグループのメンバ全員に対する親が終了したため。 +.Xr intro 2 +の +.Dq 親のないプロセスグループ (Orphaned Process Group) +を参照)、そして親のないグループのメンバのいずれかが停止されている場合、 +その新たな親のないプロセスグループのすべてのメンバに +.Dv SIGHUP +シグナルと +.Dv SIGCONT +シグナルが送信されます。 +.It +プロセスが制御プロセスの場合 +.Pf ( Xr intro 2 +を参照)、 +.Dv SIGHUP +シグナルが制御端末のフォアグラウンドプロセスグループに送信され、 +制御端末への現在のすべてのアクセスが無効にされます。 +.El +.Pp +ほとんどの C プログラムはライブラリルーチン +.Xr exit 3 +を呼び出します。 +これはバッファをフラッシュし、ストリームを閉じ、 +一時ファイルをアンリンクするなどした後に +.Fn _exit +を呼び出します。 +.Sh 戻り値 +.Fn _exit +システムコールは決して戻りません。 +.Sh 関連項目 +.Xr fork 2 , +.Xr sigaction 2 , +.Xr wait 2 , +.Xr exit 3 +.Sh 規格 +.Fn _exit +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn _exit +関数は +.At v7 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/accept.2 b/documentation/manual-pages/ja/man2/accept.2 new file mode 100644 index 0000000000..dfda258c48 --- /dev/null +++ b/documentation/manual-pages/ja/man2/accept.2 @@ -0,0 +1,170 @@ +.\" Copyright (c) 1983, 1990, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)accept.2 8.2 (Berkeley) 12/11/93 +.\" %FreeBSD: src/lib/libc/sys/accept.2,v 1.30 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd December 11, 1993 +.Dt ACCEPT 2 +.Os +.Sh 名称 +.Nm accept +.Nd ソケット上の接続を受け入れる +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn accept "int s" "struct sockaddr * restrict addr" "socklen_t * restrict addrlen" +.Sh 解説 +引数 +.Fa s +は +.Xr socket 2 +で作成され、 +.Xr bind 2 +でアドレスにバインドされ、 +.Xr listen 2 +も済ませて接続を待ち受けているソケットです。 +.Fn accept +システムコールは、待ち行列上の最初の接続要求を取り出し、 +新しいソケットを作成し、オリジナルのソケット +.Fa s +から +.Dv O_NONBLOCK +プロパティの状態を継承した +そのソケットへ新しいファイル記述子を割り当てます。 +.Pp +接続要求が待ち行列上に存在せず、 +しかもオリジナルのソケットが非ブロッキングとマークされていない場合、 +.Fn accept +は接続要求があるまで呼び出し側をブロックします。 +オリジナルのソケットが非ブロッキングとマークされており、 +しかも待ち行列に接続要求が存在しない場合、 +.Fn accept +は後述のようにエラーを返します。 +接続が成立したソケットは、それ以上の接続を受け入れるために +使用できません。 +オリジナルのソケット +.Fa s +は開いたままです。 +.Pp +引数 +.Fa addr +は結果の引数で、 +通信レイヤに既知の接続エンティティのアドレスで埋められます。 +.Fa addr +引数の正確な形式は通信が行われるドメインで決まります。 +アドレス情報が要望されない場合には、 +.Fa addr +にヌルポインタを指定することができます。 +この場合は +.Fa addrlen +は使用されず、これもヌルであるべきです。 +そうでない場合には +.Fa addrlen +は、値と結果の引数です。 +これは最初は +.Fa addr +が指す空間のサイズを含んでいなければなりません。 +戻り時には、返されるアドレスの実際の長さ (バイト単位) を含むことになります。 +この呼び出しは、コネクションをベースとしたソケットタイプ、 +現在では +.Dv SOCK_STREAM +とともに使用されます。 +.Pp +読取りでソケットを +.Xr select 2 +することによって、 +.Fn accept +するソケットを選ぶことができます。 +.Pp +.Tn ISO +または +.Tn DATAKIT +のような明瞭な確認が必要な特定のプロトコルでは、 +.Fn accept +は単に次の接続要求を待ち行列から除くだけで、 +確認は行わないと考えられます。 +確認は、新しいファイル記述子についての +通常の読取りまたは書込みによって行うことができ、 +拒絶は新しいソケットを閉じる事によって実現できます。 +.Pp +ある種のアプリケーションにおいては、内向きの接続を +.Xr accept_filter 9 +で前処理することにより、性能が向上するかもしれません。 +.Sh 戻り値 +システムコールはエラーがあった場合 \-1 を返します。 +処理が正常に完了した場合、受け付けたソケットの +記述子である非負整数を返します。 +.Sh エラー +.Fn accept +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +記述子が有効ではありません。 +.It Bq Er EINTR +.Fn accept +操作が割り込まれました。 +.It Bq Er EMFILE +プロセスの記述子テーブルが満杯です。 +.It Bq Er ENFILE +システムファイルテーブルが満杯です。 +.It Bq Er ENOTSOCK +記述子がファイルを参照しておりソケットではありません。 +.It Bq Er EINVAL +.Xr listen 2 +がソケット記述子に対して呼び出されていません。 +.It Bq Er EFAULT +.Fa addr +引数がユーザアドレス空間の書込み可能な部分にありません。 +.It Bq Er EWOULDBLOCK +ソケットが非ブロッキングとマークされ、さらに +受け付けるべき接続要求が存在しません。 +.It Bq Er ECONNABORTED +接続要求が到着しましたが、待ち行列で待機している +間に閉じてしまいました。 +.El +.Sh 関連項目 +.Xr bind 2 , +.Xr connect 2 , +.Xr getpeername 2 , +.Xr listen 2 , +.Xr select 2 , +.Xr socket 2 , +.Xr accept_filter 9 +.Sh 歴史 +.Fn accept +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/access.2 b/documentation/manual-pages/ja/man2/access.2 new file mode 100644 index 0000000000..ae65abcc9f --- /dev/null +++ b/documentation/manual-pages/ja/man2/access.2 @@ -0,0 +1,148 @@ +.\" 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. +.\" +.\" @(#)access.2 8.2 (Berkeley) 4/1/94 +.\" %FreeBSD: src/lib/libc/sys/access.2,v 1.18 2002/12/19 09:40:24 ru Exp % +.\" +.\" $FreeBSD$ +.Dd September 21, 2001 +.Dt ACCESS 2 +.Os +.Sh 名称 +.Nm access , eaccess +.Nd ファイルのアクセス可能性をチェックする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn access "const char *path" "int mode" +.Ft int +.Fn eaccess "const char *path" "int mode" +.Sh 解説 +.Fn access +システムコールと +.Fn eaccess +システムコールは、 +.Fa mode +引数によって示されたアクセス許可について +.Fa path +引数で指定されるファイルのアクセス可能性をチェックします。 +.Fa mode +の値は、チェックされるアクセス許可 (読取り許可については +.Dv R_OK +、書込み許可については +.Dv W_OK +、実行 / 検索許可については +.Dv X_OK ) +のビット単位の OR、または存在試験 ( +.Dv F_OK +) のどちらかです。 +.Pp +さらなる情報は、 +.Xr intro 2 +の +.Sx ファイルアクセスパーミッション +セクションを参照してください。 +.Pp +.Fn eaccess +システムコールは、実効ユーザ ID とグループアクセスリストを用いて +要求を許可します。 +一方 +.Fn access +システムコールは、実効ユーザ ID の代わりに実ユーザ ID を、 +実効グループ ID の代わりに実グループと残りのグループアクセスリストを +用います。 +.Pp +プロセスの実ユーザもしくは実効ユーザに適切な特権があり、 +.Dv X_OK +について成功を示していても、実際にはファイルの実行許可ビットが +設定されていないことがあります。 +同じことが、 +.Dv R_OK +および +.Dv W_OK +にも該当します。 +.Sh 戻り値 +.Rv -std +.Sh エラー +ファイルへのアクセスは次の場合に拒絶されます: +.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 EROFS +読取り専用ファイルシステム上のファイルについて書込みアクセスが +要求されました。 +.It Bq Er ETXTBSY +現時点で実行中の純粋な手続き (共有テキスト) +ファイルについて書込みアクセスが要求されています。 +.It Bq Er EACCES +ファイルモードの許可ビットが要求されたアクセスを許容しないか、 +またはパスの構成要素について検索許可が拒絶されています。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh セキュリティに関する考察 +.Fn access +システムコールは、競合状態によって潜在的なセキュリティホールとなるので、 +使うべきではありません。 +ユーザ ID 設定とグループ ID 設定されたアプリケーションは、 +実効ユーザ ID もしくは実効グループ ID を復元するようにしてください。 +そして実ユーザ ID もしくは実グループ ID でのアクセスを、 +.Fn access +を使用して模擬的にチェックするのではなく、直接実行するべきです。 +不適切に使用された場合、 +.Fn eaccess +呼び出しも同様にして競合の対象となることがあります。 +.Sh 関連項目 +.Xr chmod 2 , +.Xr intro 2 , +.Xr stat 2 +.Sh 規格 +.Fn access +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn access +関数は +.At v7 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/acct.2 b/documentation/manual-pages/ja/man2/acct.2 new file mode 100644 index 0000000000..82d938eafc --- /dev/null +++ b/documentation/manual-pages/ja/man2/acct.2 @@ -0,0 +1,126 @@ +.\" 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. +.\" +.\" @(#)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/documentation/manual-pages/ja/man2/adjtime.2 b/documentation/manual-pages/ja/man2/adjtime.2 new file mode 100644 index 0000000000..96dbcb470a --- /dev/null +++ b/documentation/manual-pages/ja/man2/adjtime.2 @@ -0,0 +1,107 @@ +.\" 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. +.\" +.\" @(#)adjtime.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/adjtime.2,v 1.13 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt ADJTIME 2 +.Os +.Sh 名称 +.Nm adjtime +.Nd "システムクロックとの同期化ができるように時刻を訂正する" +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/time.h +.Ft int +.Fn adjtime "const struct timeval *delta" "struct timeval *olddelta" +.Sh 解説 +.Fn adjtime +システムコールは、 +.Xr gettimeofday 2 +が返すようなシステム時刻を微調整します。 +時間値 +.Fa delta +で指定された時間だけシステム時刻を進ませる、または遅らせます。 +.Fa delta +が負の場合、 +訂正が完了するまでクロックをよりゆっくりと増加させることによって +クロックを低速化します。 +.Fa delta +が正の場合は通常より大きな増分を使用します。 +訂正を実行するために使用されるずれは、 +一般には 1 パーセントの割合です。 +これにより、時刻は常に単調増加関数となります。 +以前の +.Fn adjtime +呼び出しによる時刻訂正が、再び +.Fn adjtime +が呼び出された時に完了していない可能性があります。 +.Fa olddelta +が nil でない場合、指し示されている構造体は、 +以前の呼び出しからの、依然として +訂正する必要のあるマイクロ秒単位の数が戻り時に格納されているでしょう。 +.Pp +この呼び出しは、ローカルエリアネットワーク内のコンピュータのクロックを +同期するタイムサーバが使用することがあります。 +このようなタイムサーバはマシンのクロックを低速化、または +高速化して、それらを平均ネットワーク時刻にします。 +.Pp +.Fn adjtime +システムコールはスーパユーザに限定されています。 +.Sh 戻り値 +.Rv -std adjtime +.Sh エラー +.Fn adjtime +システムコールは次の場合に処理を失敗します: +.Bl -tag -width Er +.It Bq Er EFAULT +引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EPERM +プロセスの実効ユーザ ID がスーパユーザのものではありません。 +.El +.Sh 関連項目 +.Xr date 1 , +.Xr gettimeofday 2 , +.Xr timed 8 , +.Xr timedc 8 +.Rs +.%T "TSP: The Time Synchronization Protocol for UNIX 4.3BSD" +.%A R. Gusella +.%A S. Zatti +.Re +.Sh 歴史 +.Fn adjtime +システムコールは +.Bx 4.3 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/aio_cancel.2 b/documentation/manual-pages/ja/man2/aio_cancel.2 new file mode 100644 index 0000000000..fc584d262d --- /dev/null +++ b/documentation/manual-pages/ja/man2/aio_cancel.2 @@ -0,0 +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 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/documentation/manual-pages/ja/man2/aio_error.2 b/documentation/manual-pages/ja/man2/aio_error.2 new file mode 100644 index 0000000000..2ba2311228 --- /dev/null +++ b/documentation/manual-pages/ja/man2/aio_error.2 @@ -0,0 +1,95 @@ +.\" Copyright (c) 1999 Softweyr LLC. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL Softweyr LLC OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/aio_error.2,v 1.19 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 2, 1999 +.Dt AIO_ERROR 2 +.Os +.Sh 名称 +.Nm aio_error +.Nd 非同期入出力操作のエラー状態を取り出す (REALTIME) +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In aio.h +.Ft int +.Fn aio_error "const struct aiocb *iocb" +.Sh 解説 +.Fn aio_error +システムコールは、 +.Fa iocb +の指す構造体に対応する非同期入出力要求のエラー状態を返します。 +.Sh 戻り値 +非同期入出力要求が成功した上で正常に完了している場合に +.Fn aio_error +は 0 を返します。 +要求がまだ完了していない場合は +.Er EINPROGRESS +が返されます。 +要求が失敗した上で完了している場合、 +.Xr read 2 , +.Xr write 2 , +.Xr fsync 2 +に記述されているようなエラー状態が返されます。 +処理が失敗した場合に +.Fn aio_error +は +.Dv -1 +を返し、 +.Dv errno +を設定してエラー状態を示します。 +.Sh エラー +.Fn aio_error +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa iocb +引数が未解決の非同期 I/O 要求を参照していません。 +.El +.Sh 関連項目 +.Xr aio_cancel 2 , +.Xr aio_read 2 , +.Xr aio_return 2 , +.Xr aio_suspend 2 , +.Xr aio_write 2 , +.Xr fsync 2 , +.Xr read 2 , +.Xr write 2 , +.Xr aio 4 +.Sh 規格 +.Fn aio_error +システムコールは +.St -p1003.1 +に適合しています。 +.Sh 歴史 +.Fn aio_error +システムコールは +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルページは +.An Wes Peters Aq wes@softweyr.com +が作成しました。 diff --git a/documentation/manual-pages/ja/man2/aio_read.2 b/documentation/manual-pages/ja/man2/aio_read.2 new file mode 100644 index 0000000000..d4a6833227 --- /dev/null +++ b/documentation/manual-pages/ja/man2/aio_read.2 @@ -0,0 +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 +.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/documentation/manual-pages/ja/man2/aio_return.2 b/documentation/manual-pages/ja/man2/aio_return.2 new file mode 100644 index 0000000000..f59596b533 --- /dev/null +++ b/documentation/manual-pages/ja/man2/aio_return.2 @@ -0,0 +1,97 @@ +.\" Copyright (c) 1999 Softweyr LLC. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL Softweyr LLC OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/aio_return.2,v 1.17 2003/01/13 10:37:11 tjr Exp % +.\" +.\" $FreeBSD$ +.Dd June 2, 1999 +.Dt AIO_RETURN 2 +.Os +.Sh 名称 +.Nm aio_return +.Nd 非同期入出力操作の戻り状態を取り出す (REALTIME) +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In aio.h +.Ft int +.Fn aio_return "struct aiocb *iocb" +.Sh 解説 +.Fn aio_return +システムコールは +.Fa iocb +が指す構造体に対応する非同期入出力要求の最終状態を返します。 +.Pp +.Xr aio_error 2 +が +.Er EINPROGRESS +以外の何かを返した時の非同期入出力操作の最終状態を得るためには +.Fn aio_return +システムコールを 1 回だけしか呼び出してはいけません。 +.Sh 戻り値 +非同期入出力要求が完了すると +.Xr read 2 , +.Xr write 2 +または +.Xr fsync 2 +で説明したような状態が返されます。 +処理を失敗した場合に +.Fn aio_return +は +.Dv -1 +を返し、エラー状態を指すように +.Dv errno +を設定します。 +.Sh エラー +.Fn aio_return +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa iocb +引数が未解決の非同期入出力要求を参照しません。 +.El +.Sh 関連項目 +.Xr aio_cancel 2 , +.Xr aio_error 2 , +.Xr aio_suspend 2 , +.Xr aio_waitcomplete 2 , +.Xr aio_write 2 , +.Xr fsync 2 , +.Xr read 2 , +.Xr write 2 , +.Xr aio 4 +.Sh 規格 +.Fn aio_return +システムコールは +.St -p1003.1 +に適合しています。 +.Sh 歴史 +.Fn aio_return +システムコールは +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルページは +.An Wes Peters Aq wes@softweyr.com +が作成しました。 diff --git a/documentation/manual-pages/ja/man2/aio_suspend.2 b/documentation/manual-pages/ja/man2/aio_suspend.2 new file mode 100644 index 0000000000..405fd129e5 --- /dev/null +++ b/documentation/manual-pages/ja/man2/aio_suspend.2 @@ -0,0 +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 +引数は、非同期入出力要求への +.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/documentation/manual-pages/ja/man2/aio_waitcomplete.2 b/documentation/manual-pages/ja/man2/aio_waitcomplete.2 new file mode 100644 index 0000000000..2ae47b7eea --- /dev/null +++ b/documentation/manual-pages/ja/man2/aio_waitcomplete.2 @@ -0,0 +1,137 @@ +.\" Copyright (c) 1999 Christopher M Sedore. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/aio_waitcomplete.2,v 1.13 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd January 19, 2000 +.Dt AIO_WAITCOMPLETE 2 +.Os +.Sh 名称 +.Nm aio_waitcomplete +.Nd 非同期入出力要求の完了までの待機 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In aio.h +.Ft int +.Fn aio_waitcomplete "struct aiocb **iocbp" "struct timespec *timeout" +.Sh 解説 +.Fn aio_waitcomplete +システムコールは非同期入出力の完了まで待ちます。 +完了次第、 +.Fn aio_waitcomplete +はその関数の結果を返し、 +元の要求に関連する構造体へのポインタを +.Fa iocbp +に設定します。 +もし、 +.Fn aio_waitcomplete +関数が呼び出される前に非同期入出力要求が完了していた場合には、 +完了した要求の結果を即座に返します。 +.Pp +.Fa timeout +が NULL ポインタでない場合、それは非同期入出力要求が完了するまで +待機する最大時間を指定します。 +.Fa timeout +が NULL ポインタの場合は、 +.Fn aio_waitcomplete +は無期限に待機します。 +ポーリングする場合は、 +引数 +.Fa timeout +は NULL ではなく、0 の値を持つ timeval 構造体を指すようにするべきです。 +.Pp +.Fn aio_waitcomplete +システムコールは +.Fn aio_return +の役割もします。 +従って、制御ブロックは +.Fa iocbp +で返されているので、 +.Fn aio_return +を呼び出すべきではありません。 +.Sh 戻り値 +非同期入出力要求が完了した場合、 +.Fa iocbp +に元の要求から渡された制御ブロックを指すポインタを設定し、 +.Xr read 2 , +.Xr write 2 , +.Xr fsync 2 +で述べられているのと同様の状態を返します。 +失敗した場合、 +.Fn aio_waitcomplete +は +.Dv -1 +を返し、iocbp に +.Dv NULL +を設定します。 +そして、 +.Va errno +にエラーの状況を設定します。 +.Sh エラー +.Fn aio_waitcomplete +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +指定された制限時間が無効です。 +.It Bq Er EAGAIN +プロセスはまだ +.Fn aio_read +や +.Fn aio_write +を呼び出していません。 +.It Bq Er EINTR +タイムアウトする前で、かつ +非同期入出力要求が完了する前にシグナルが届きました。 +.It Bq Er EWOULDBLOCK +.It Bq Er EINPROGRESS +非同期入出力要求が完了する前に、指定された制限時間に達しました。 +.El +.Sh 関連項目 +.Xr aio_cancel 2 , +.Xr aio_error 2 , +.Xr aio_read 2 , +.Xr aio_return 2 , +.Xr aio_suspend 2 , +.Xr aio_write 2 , +.Xr fsync 2 , +.Xr read 2 , +.Xr write 2 , +.Xr aio 4 +.Sh 規格 +.Fn aio_waitcomplete +システムコールは +.Fx +特有の拡張です。 +.Sh 歴史 +.Fn aio_waitcomplete +システムコールは +.Fx 4.0 +ではじめて登場しました。 +.Sh 作者 +.Fn aio_waitcomplete +システムコールとこのマニュアルページは +.An Christopher M Sedore Aq cmsedore@maxwell.syr.edu +が作成しました。 diff --git a/documentation/manual-pages/ja/man2/aio_write.2 b/documentation/manual-pages/ja/man2/aio_write.2 new file mode 100644 index 0000000000..7434a06c2e --- /dev/null +++ b/documentation/manual-pages/ja/man2/aio_write.2 @@ -0,0 +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_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/documentation/manual-pages/ja/man2/bind.2 b/documentation/manual-pages/ja/man2/bind.2 new file mode 100644 index 0000000000..d19953dead --- /dev/null +++ b/documentation/manual-pages/ja/man2/bind.2 @@ -0,0 +1,129 @@ +.\" Copyright (c) 1983, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)bind.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/bind.2,v 1.27 2002/12/19 09:40:24 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt BIND 2 +.Os +.Sh 名称 +.Nm bind +.Nd ローカルプロトコルアドレスをソケットに割り当てる +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn bind "int s" "const struct sockaddr *addr" "socklen_t addrlen" +.Sh 解説 +.Fn bind +システムコールは、ローカルプロトコルアドレスをソケットに割り当てます。 +ソケットは、 +.Xr socket 2 +で作成される時にアドレスファミリ空間に存在しますが、 +プロトコルアドレスは割り当てられていません。 +.Fn bind +システムコールはソケットに +.Fa addr +を割り当てることを要求します。 +.Sh 注 +UNIX ドメイン内でのアドレスのバインドによってファイルシステム内に +ソケットが作成されます。 +これは、必要なくなったときに呼び出し側が +.Pf ( Xr unlink 2 +を使用して) 削除する必要があります。 +.Pp +アドレスのバインドで使用される規則は通信ドメイン間で異なります。 +詳細については、 +セクション 4 のマニュアルエントリを参照してください。 +.Pp +移植性を最大にするためには、ソケット構造体は、使用前 +つまりこれを +.Fn bind +に渡す前に、0 で埋めるべきです。 +.Sh 戻り値 +.Rv -std bind +.Sh エラー +.Fn bind +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EAGAIN +要求を満たすためのカーネルリソースが一時的に利用できません。 +.It Bq Er EBADF +.Fa s +引数が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +.Fa s +引数がソケットではありません。 +.It Bq Er EADDRNOTAVAIL +指定のアドレスがローカルマシンから利用できません。 +.It Bq Er EADDRINUSE +指定のアドレスは既に使用中です。 +.It Bq Er EACCES +要求されたアドレスは保護されており、現在のユーザが持っているパーミッションは +それにアクセスするのには不適切です。 +.It Bq Er EFAULT +.Fa addr +引数が有効なユーザアドレス空間ではありません。 +.El +.Pp +次のエラーは UNIX ドメイン内のバインドアドレスに固有のものです。 +.Bl -tag -width EADDRNOTAVA +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +パス名の接頭辞構成要素が存在しません。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EIO +ディレクトリエントリを作成している間、または inode を割り振りしている間に +入出力エラーが発生しました。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EISDIR +空のパス名が指定されました。 +.El +.Sh 関連項目 +.Xr connect 2 , +.Xr getsockname 2 , +.Xr listen 2 , +.Xr socket 2 +.Sh 歴史 +.Fn bind +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/brk.2 b/documentation/manual-pages/ja/man2/brk.2 new file mode 100644 index 0000000000..2542c5415b --- /dev/null +++ b/documentation/manual-pages/ja/man2/brk.2 @@ -0,0 +1,163 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)brk.2 8.4 (Berkeley) 5/1/95 +.\" %FreeBSD: src/lib/libc/sys/brk.2,v 1.24 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd July 12, 1999 +.Dt BRK 2 +.Os +.Sh 名称 +.Nm brk , +.Nm sbrk +.Nd データセグメントのサイズを変更する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In unistd.h +.Ft int +.Fn brk "const void *addr" +.Ft void * +.Fn sbrk "intptr_t incr" +.Sh 解説 +.Bf -symbolic +.Fn brk +関数と +.Fn sbrk +関数は、現代的な仮想メモリ管理が現れる以前の、古いインタフェースです。 +.Ef +.Pp +.Fn brk +関数と +.Fn sbrk +関数は、プロセスのデータセグメントに割り当てられた +メモリ量を変更するために使用されます。 +これは、 +.Dq ブレーク +位置を移動することで実現します。 +ブレークとは、プロセスの初期化されていないデータ ( +.Dq BSS +としても知られています) の後の最初のアドレスのことです。 +.Pp +.Fn brk +関数は、ブレークを +.Fa addr +に設定します。 +.Pp +.Fn sbrk +関数は、ブレークを +.Fa incr +バイトだけ増し、結果として少なくとも +.Fa incr +バイトの新規メモリをデータセグメントに割り当てます。 +.Fa incr +が負の場合、ブレークは +.Fa incr +バイトだけ減らされます。 +.Sh 注 +カーネルが管理する実際のプロセスデータセグメントサイズは +ページ単位でのみ増減しますが、 +これらの関数は、ブレークを境界にあわない値に設定することを許します +(すなわち、データセグメントの最終ページ中の任意のアドレスを指して構いません)。 +.Pp +プログラムのブレークの現在値は、 +.Fn sbrk 0 +を呼び出すことで判定可能です。 +.Xr end 3 +も参照してください。 +.Pp +.Xr getrlimit 2 +システムコールは、 +データ +セグメントの許容できる最大のサイズを決定するのに利用できます。 +.Dq Va etext No + Va rlim.rlim_max +を越えるブレークを設定することはできません。 +.Va rlim.rlim_max +は +.Fn getrlimit RLIMIT_DATA &rlim +の呼び出しから返された値です +.Pf ( Va etext +の定義については +.Xr end 3 +を参照してください)。 +.Sh 戻り値 +.Rv -std brk +.Pp +.Fn sbrk +関数は、成功すると古いブレーク値を返します。 +失敗すると、値 +.Po Vt "void *" Pc Ns \-1 +が返し、グローバル変数 +.Va errno +にエラーを表す値を設定します。 +.Sh エラー +.Fn brk +および +.Fn sbrk +関数は、次の場合に処理に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +要求されたブレーク値がデータセグメントの先頭を越えています。 +.It Bq Er ENOMEM +.Xr setrlimit 2 +が設定したデータセグメントサイズの限界を越えています。 +.It Bq Er ENOMEM +データセグメントの拡張に必要なスワップ領域内の空間が不充分です。 +.El +.Sh 関連項目 +.Xr execve 2 , +.Xr getrlimit 2 , +.Xr mmap 2 , +.Xr end 3 , +.Xr free 3 , +.Xr malloc 3 +.Sh バグ +.Fn brk +または +.Fn sbrk +と、 +.Xr malloc 3 , +.Xr free 3 +やこれに類する関数を混在させると、移植性のないプログラム動作となります。 +.Pp +ブレークの設定は、スワップ空間の一時的な不足のために処理が失敗する +可能性があります。 +これは +.Xr getrlimit 2 +を使用しないと、データセグメントの最大サイズを越えたことに起因する +失敗と区別することはできません。 +.Sh 歴史 +.Fn brk +関数は +.At v7 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/chdir.2 b/documentation/manual-pages/ja/man2/chdir.2 new file mode 100644 index 0000000000..ccfabcd52c --- /dev/null +++ b/documentation/manual-pages/ja/man2/chdir.2 @@ -0,0 +1,124 @@ +.\" 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. +.\" +.\" @(#)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/documentation/manual-pages/ja/man2/chflags.2 b/documentation/manual-pages/ja/man2/chflags.2 new file mode 100644 index 0000000000..80f766cb1b --- /dev/null +++ b/documentation/manual-pages/ja/man2/chflags.2 @@ -0,0 +1,186 @@ +.\" Copyright (c) 1989, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)chflags.2 8.3 (Berkeley) 5/2/95 +.\" %FreeBSD: src/lib/libc/sys/chflags.2,v 1.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 +指定されたフラグは次の値の論理和 +.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 +記述子が有効ではありません。 +.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/documentation/manual-pages/ja/man2/chmod.2 b/documentation/manual-pages/ja/man2/chmod.2 new file mode 100644 index 0000000000..da96a709b6 --- /dev/null +++ b/documentation/manual-pages/ja/man2/chmod.2 @@ -0,0 +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.2.1 2005/01/05 19:20:57 trhodes Exp % +.\" +.\" $FreeBSD$ +.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 __BSD_VISIBLE +#define S_ISTXT 0001000 /* スティッキビット */ +#endif +.Ed +.Pp +.Fx +VM システムは、実行可能モジュールについてスティッキビット +.Pq Dv ISTXT +を完全に無視します。 +UFS をベースとしたファイルシステム (FFS, LFS) では、 +スティッキビットはディレクトリにだけ設定できます。 +.Pp +.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/documentation/manual-pages/ja/man2/chown.2 b/documentation/manual-pages/ja/man2/chown.2 new file mode 100644 index 0000000000..31b672d018 --- /dev/null +++ b/documentation/manual-pages/ja/man2/chown.2 @@ -0,0 +1,166 @@ +.\" 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. +.\" +.\" @(#)chown.2 8.4 (Berkeley) 4/19/94 +.\" %FreeBSD: src/lib/libc/sys/chown.2,v 1.21 2002/12/19 04:40:24 ru Exp % +.\" +.\" $FreeBSD$ +.Dd April 19, 1994 +.Dt CHOWN 2 +.Os +.Sh 名称 +.Nm chown , +.Nm fchown , +.Nm lchown +.Nd ファイルの所有者とグループを変更する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn chown "const char *path" "uid_t owner" "gid_t group" +.Ft int +.Fn fchown "int fd" "uid_t owner" "gid_t group" +.Ft int +.Fn lchown "const char *path" "uid_t owner" "gid_t group" +.Sh 解説 +.Fa path +で指定された、または +.Fa fd +で参照されたファイルの所有者 ID およびグループ ID を、 +引数に指定された +.Fa owner +および +.Fa group +に変更します。 +ファイルの所有者は、 +.Fa group +に自分が所属している任意のグループを指定できます。 +しかし、 +.Fa owner +を変更することができるのはスーパユーザのみです。 +.Pp +.Fn chown +システムコールは、スーパユーザによって実行される場合をのぞいて、 +ファイル上のユーザ ID 設定ビットとグループ ID 設定ビットをクリアします。 +これは、ユーザ ID 設定あるいはグループ ID 設定されたプログラムが +偶然、またはいたずらで作成されるのを防止するためです。 +.Fn chown +システムコールは、シンボリックリンクをたどり、 +リンク自体ではなくリンクのターゲットに作用します。 +.Pp +.Fn fchown +システムコールが特に便利なのは、ファイルロッキングプリミティブとともに +使用するときです +.Pf ( Xr flock 2 +を参照)。 +.Pp +.Fn lchown +システムコールは、 +.Fn chown +に類似していますが、シンボリックリンクをたどりません。 +.Pp +所有者 ID またはグループ ID として -1 を指定した場合、 +その ID は変更されません。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fn chown +と +.Fn lchown +は、次の場合に処理を失敗して、ファイルは変更されません: +.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 がスーパユーザでありません。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Pp +.Fn fchown +システムコールは、次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +引数が有効な記述子ではありません。 +.It Bq Er EINVAL +.Fa fd +引数がファイルではなくソケットを参照しています。 +.It Bq Er EPERM +実効ユーザ ID がスーパユーザではありません。 +.It Bq Er EROFS +指定のファイルは読取り専用ファイルシステムに常駐しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr chgrp 1 , +.Xr chmod 2 , +.Xr flock 2 , +.Xr chown 8 +.Sh 規格 +.Fn chown +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn chown +関数は +.At v7 +で登場しました。 +.Fn fchown +システムコールは +.Bx 4.2 +で登場しました。 +.Pp +.Fn chown +システムコールは +.Bx 4.4 +でシンボリックリンクをたどるように変更されました。 +.Fn lchown +システムコールは、機能の欠落を補充するために +.Fx 3.0 +で追加されました。 diff --git a/documentation/manual-pages/ja/man2/chroot.2 b/documentation/manual-pages/ja/man2/chroot.2 new file mode 100644 index 0000000000..3b64e52473 --- /dev/null +++ b/documentation/manual-pages/ja/man2/chroot.2 @@ -0,0 +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/documentation/manual-pages/ja/man2/clock_gettime.2 b/documentation/manual-pages/ja/man2/clock_gettime.2 new file mode 100644 index 0000000000..45f3ff2f4d --- /dev/null +++ b/documentation/manual-pages/ja/man2/clock_gettime.2 @@ -0,0 +1,130 @@ +.\" $OpenBSD: clock_gettime.2,v 1.4 1997/05/08 20:21:16 kstailey Exp $ +.\" +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.20 2004/07/02 23:52:13 ru Exp % +.\" $FreeBSD$ +.\" +.Dd June 17, 2004 +.Dt CLOCK_GETTIME 2 +.Os +.Sh 名称 +.Nm clock_gettime , +.Nm clock_settime , +.Nm clock_getres +.Nd 日付と時刻の取得/設定/精度の取得をする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/time.h +.Ft int +.Fn clock_gettime "clockid_t clock_id" "struct timespec *tp" +.Ft int +.Fn clock_settime "clockid_t clock_id" "const struct timespec *tp" +.Ft int +.Fn clock_getres "clockid_t clock_id" "struct timespec *tp" +.Sh 解説 +.Fn clock_gettime +と +.Fn clock_settime +は +.Fa clock_id +で指定するクロックの値を取得、設定します。 +.Pp +.Fa clock_id +引数には、次の 4 つの値のうちの 1 つを指定します。 +CLOCK_REALTIME は普通の時計のように進む時間、 +CLOCK_MONOTONIC は SI 単位系の秒で進む時間、 +CLOCK_VIRTUAL は呼び出しプロセスのために CPU がユーザモードで +実行されているときにだけ進む時間、 +CLOCK_PROF は、CPU がユーザモードまたはカーネルモードで実行されている +ときに進む時間です。 +.Pp +.Fa tp +によって指される構造体は +.In sys/time.h +内で次のように定義されています。 +.Pp +.Bd -literal +struct timespec { + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ +}; +.Ed +.Pp +時刻を設定できるのはスーパユーザだけです。 +システムの安全性レベル (securelevel) が 1 より大きい場合 +.Pf ( Xr init 8 +を参照)、 +時間は進めることだけができます。 +この制限は、悪意のあるスーパユーザがファイルに +任意のタイムスタンプを設定するのを防止するためのものです。 +しかし、システムが安全なモードの時でも、 +.Xr adjtime 2 +システムコールを使用すれば +システム時間を遅らせることができてしまいます。 +.Pp +クロックの精度 (細かさ) は、 +.Fn clock_getres +システムコールによって返されます。 +この値は、(非 NULL ポインタ) +.Fa *tp +内に格納されます。 +.Sh 戻り値 +.Rv -std +.Sh エラー +次のエラーコードが +.Va errno +に設定されます: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa clock_id +引数が有効な値ではありませんでした。 +.It Bq Er EFAULT +.Fa *tp +引数アドレスが無効なメモリを参照しています。 +.It Bq Er EPERM +スーパユーザ以外のユーザが時刻を設定しようとしました。 +.El +.Sh 関連項目 +.Xr date 1 , +.Xr adjtime 2 , +.Xr ctime 3 , +.Xr timed 8 +.Sh 規格 +.Fn clock_gettime , +.Fn clock_settime +および +.Fn clock_getres +システムコールは +.St -p1003.1b-93 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/close.2 b/documentation/manual-pages/ja/man2/close.2 new file mode 100644 index 0000000000..bf47bc8351 --- /dev/null +++ b/documentation/manual-pages/ja/man2/close.2 @@ -0,0 +1,135 @@ +.\" Copyright (c) 1980, 1991, 1993, 1994 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)close.2 8.2 (Berkeley) 4/19/94 +.\" %FreeBSD: src/lib/libc/sys/close.2,v 1.24 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd April 19, 1994 +.Dt CLOSE 2 +.Os +.Sh 名称 +.Nm close +.Nd 記述子を削除する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn close "int d" +.Sh 解説 +.Fn close +システムコールはプロセスのオブジェクト参照テーブルから記述子を削除します。 +これがそのオブジェクトへの最後の参照だった場合、 +オブジェクトはアクティブでなくなります。 +たとえば、ファイルに対する最後のクローズで、そのファイルに結び付けられた現在の +.Em seek +ポインタは失われます。 +.Xr socket 2 +に対する最後のクローズで、そのソケットに結び付けられた +命名情報と待ち行列内のデータは破棄されます。 +問合せ型ロックを保持している +ファイルに対する最後のクローズで、ロックは解放されます +(詳細は +.Xr flock 2 +を参照)。 +しかし、System V と +.St -p1003.1-88 +では、あるプロセスがファイルに対して保持しているすべての +.Xr fcntl 2 +問合せ型レコードロックは、そのファイルについてのファイル記述子の +.Em いずれか +がそのプロセスによって閉じられるときに削除される、と規定しています。 +.Pp +プロセスが終了するとき、プロセスに結び付けられた +ファイル記述子はすべて解放されます。 +しかし、アクティブな記述子の個数にはプロセスごとに制限があるので、 +大量のファイル記述子を処理するときは、 +.Fn close +システムコールが便利です。 +.Pp +プロセスがフォークするとき +.Pf ( Xr fork 2 +参照)、新しい子プロセスの記述子はすべて、 +フォークの前に親プロセスの記述子が参照していたのと同じオブジェクトを +参照します。 +次に、新しいプロセスが +.Xr execve 2 +で実行される場合、そのプロセスは通常これらの記述子を継承します。 +ほとんどの記述子は +.Xr execve 2 +の前に +.Xr dup2 2 +で再配置されるか、 +.Fn close +で削除されます。 +もし execve が失敗した場合にこれらの記述子が必要になるのであれば、 +execve が成功した場合にのみ、それらをクローズするようにする必要があります。 +このために、 +.Dq Li fcntl(d, F_SETFD, FD_CLOEXEC) +呼び出しが準備されています。 +これは execve が成功した後で、記述子を閉じるように指示します。 +.Dq Li fcntl(d, F_SETFD, 0) +呼び出しはこれをデフォルトに戻します。 +デフォルトでは、記述子はクローズされません。 +.Sh 戻り値 +.Rv -std close +.Sh エラー +.Fn close +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa d +引数がアクティブな記述子ではありません。 +.It Bq Er EINTR +割り込みが受信されました。 +.It Bq Er ENOSPC +下層のオブジェクトとサイズが合わず、キャッシュされたデータが失われました。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr execve 2 , +.Xr fcntl 2 , +.Xr flock 2 , +.Xr open 2 , +.Xr pipe 2 , +.Xr socket 2 , +.Xr socketpair 2 +.Sh 規格 +.Fn close +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn close +関数は +.At v7 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/connect.2 b/documentation/manual-pages/ja/man2/connect.2 new file mode 100644 index 0000000000..ef7daeea63 --- /dev/null +++ b/documentation/manual-pages/ja/man2/connect.2 @@ -0,0 +1,157 @@ +.\" Copyright (c) 1983, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)connect.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/connect.2,v 1.26 2004/07/02 19:07:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt CONNECT 2 +.Os +.Sh 名称 +.Nm connect +.Nd ソケット上で接続を開始する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn connect "int s" "const struct sockaddr *name" "socklen_t namelen" +.Sh 解説 +.Fa s +引数はソケットです。 +このタイプが +.Dv SOCK_DGRAM +の場合、この呼び出しはソケットが結び付けられる +通信相手を指定します。 +このアドレスは送信データグラムの送信先であり、 +受信データグラムの送信元となる唯一のアドレスです。 +ソケットのタイプが +.Dv SOCK_STREAM +の場合、この呼び出しは通信相手のソケットに接続を確立 +しようとします。 +通信相手のソケットは +.Fa name +で指定されます。 +.Fa name +はソケット通信空間内のアドレスです。 +各通信空間は +.Fa name +引数を独自の方法で解釈します。 +一般に、ストリームソケットが正常に +.Fn connect +できるのは 1 回だけです。 +データグラムソケットは +.Fn connect +を複数回使用してその結び付けを変更できます。 +データグラムソケットは、NULL アドレスのような無効なアドレスに +接続することによって結び付けを解除できます。 +.Sh 戻り値 +.Rv -std connect +.Sh エラー +.Fn connect +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa s +引数が有効な記述子でありません。 +.It Bq Er ENOTSOCK +.Fa s +引数がソケットではなくファイルの記述子です。 +.It Bq Er EADDRNOTAVAIL +指定のアドレスがこのマシンでは利用できません。 +.It Bq Er EAFNOSUPPORT +指定のアドレスファミリ内のアドレスがこのソケットでは使用できません。 +.It Bq Er EISCONN +ソケットは既に接続されています。 +.It Bq Er ETIMEDOUT +接続を確立することなく、タイムアウトしました。 +.It Bq Er ECONNREFUSED +接続が強制的に拒絶されました。 +.It Bq Er ENETUNREACH +このホストからそのネットワークに到達できません。 +.It Bq Er EHOSTUNREACH +このホストからそのリモートホストに到達できません。 +.It Bq Er EADDRINUSE +アドレスが既に使用中です。 +.It Bq Er EFAULT +.Fa name +引数はプロセスアドレス空間の外側の領域を指定しています。 +.It Bq Er EINPROGRESS +非ブロッキングのソケットで、接続がすぐには確立できませんでした。 +ソケットへの書込みを +.Xr select 2 +で待つことによって、接続完了を待つことができます。 +.It Bq Er EINTR +接続の試みは、シグナルの配信により割り込まれました。 +その接続は +.Er EINPROGRESS +の場合と同じようにバックグラウンドで確立されます。 +.It Bq Er EALREADY +前の接続の試みが未だ完了していません。 +.It Bq Er EACCES +ブロードキャストの機能を提供していないソケットを通して、 +.Dv ( INADDR_BROADCAST +定数または +.Dv INADDR_NONE +戻り値を通して獲得した) ブロードキャストアドレスに接続しようとしています。 +.El +.Pp +以降のエラーは、UNIX ドメインの接続名に固有です。 +これらのエラーは、UNIX IPC ドメインの将来の +バージョンには適用されない可能性があります。 +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定のソケットが存在しません。 +.It Bq Er EACCES +指定されたパスには、検索が許可されていないディレクトリが含まれています。 +.It Bq Er EACCES +指定のソケットへの書込みアクセスが拒絶されています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr getpeername 2 , +.Xr getsockname 2 , +.Xr select 2 , +.Xr socket 2 +.Sh 歴史 +.Fn connect +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/creat.2 b/documentation/manual-pages/ja/man2/creat.2 new file mode 100644 index 0000000000..258ae5815c --- /dev/null +++ b/documentation/manual-pages/ja/man2/creat.2 @@ -0,0 +1,66 @@ +.\" Copyright (c) 1989, 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. +.\" +.\" @(#)creat.2 8.1 (Berkeley) 6/2/93 +.\" %FreeBSD: src/lib/libc/compat-43/creat.2,v 1.10 2002/12/18 12:45:08 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 2, 1993 +.Dt CREAT 2 +.Os +.Sh 名称 +.Nm creat +.Nd 新しいファイルを作成する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In fcntl.h +.Ft int +.Fn creat "const char *path" "mode_t mode" +.Sh 解説 +.Bf -symbolic +このインタフェースは +.Xr open 2 +によって旧式のものとなっています。 +.Ef +.Pp +.Fn creat +関数は次のものと同じです。 +.Bd -literal -offset indent +open(path, O_CREAT | O_TRUNC | O_WRONLY, mode); +.Ed +.Sh 関連項目 +.Xr open 2 +.Sh 歴史 +.Fn creat +関数は +.At v6 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/dup.2 b/documentation/manual-pages/ja/man2/dup.2 new file mode 100644 index 0000000000..9f89334695 --- /dev/null +++ b/documentation/manual-pages/ja/man2/dup.2 @@ -0,0 +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 ) +。 +引数 +.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/documentation/manual-pages/ja/man2/execve.2 b/documentation/manual-pages/ja/man2/execve.2 new file mode 100644 index 0000000000..74e0b38070 --- /dev/null +++ b/documentation/manual-pages/ja/man2/execve.2 @@ -0,0 +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 書式 +.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 +の影響を受けません。 +.Fn execve +が呼び出された時に標準の記述子 (0, 1 そして / または 2) がクローズされ、 +ID 設定の結果、そのプロセスが特権を得た場合には、 +それらの記述子は自動的にオープンされます。 +特権を持っているかどうかに関わらず、どのプログラムも +.Fn execve +の呼び出しの前後で、これらの記述子が閉じたままとなると +仮定すべきではありません。 +.Pp +呼び出しプロセスで無視するように設定されたシグナルは、 +新しいプロセス内でも無視されるように設定されます。 +呼び出しプロセスイメージ内で捕捉されるように設定されたシグナルは、 +新しいプロセスイメージ内でデフォルトのアクションに +設定されます。 +ブロックされたシグナルは、 +シグナルアクションの変化とは無関係にブロックされたままになります。 +シグナルスタックは未定義にリセットされます (詳細については +.Xr sigaction 2 +を参照してください)。 +.Pp +新しいプロセスイメージファイルにユーザ ID 設定モードビット +が設定されている場合 +.Pf ( Xr chmod 2 +を参照)、新しいプロセスイメージの実効ユーザ ID は、 +新しいプロセスイメージファイルの所有者 ID に設定されます。 +新しいプロセスイメージファイルにグループ ID 設定モードビットが +設定されている場合、新しいプロセスイメージの実効グループ ID は新しい +プロセスイメージファイルのグループ ID に設定されます +(実効グループ ID はグループリストの最初の要素です)。 +新しいプロセスの実ユーザ ID、実グループ ID、およびその他の +グループ ID は、呼び出しプロセスイメージと同じになります。 +ユーザ ID 設定およびグループ ID 設定処理の後、実効ユーザ ID は +退避ユーザ ID として記録され、実効グループ ID は +退避グループ IDとして記録されます。 +これらの値は、後で実効 ID を変更するのに使用できます +.Pf ( Xr setuid 2 +を参照)。 +.Pp +該当するファイルシステムで +.Cm nosuid +オプションが有効な場合、または新しいプロセスファイルがインタプリタ +ファイルの場合、ID 設定ビットは意味を持ちません。 +実効 ID が変更された場合、システムコールのトレースは +無効になります。 +.Pp +また、新しいプロセスは呼び出しプロセスから次の属性を継承します。 +.Pp +.Bl -column ファイルモードマスク -offset indent -compact +.It プロセス ID Ta Xr getpid 2 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 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 +で課された最大値 +以上の仮想メモリを必要とします。 +.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/documentation/manual-pages/ja/man2/extattr_get_file.2 b/documentation/manual-pages/ja/man2/extattr_get_file.2 new file mode 100644 index 0000000000..8873ab1b18 --- /dev/null +++ b/documentation/manual-pages/ja/man2/extattr_get_file.2 @@ -0,0 +1,264 @@ +.\" +.\" Copyright (c) 2001 Dima Dorfman <dima@unixfreak.org> +.\" Copyright (c) 2003 Robert Watson <rwatson@FreeBSD.org> +.\" 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.2.1 2005/03/01 16:16:20 csjp Exp % +.\" +.\" $FreeBSD$ +.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 (ヌル) 文字によって分離された、要求された名前空間の中に存在する +属性のリストを返します。 +.Fn extattr_get_file +および +.Fn extattr_list_file +呼び出しは +.Xr read 2 +の形式で +.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/documentation/manual-pages/ja/man2/fcntl.2 b/documentation/manual-pages/ja/man2/fcntl.2 new file mode 100644 index 0000000000..0e61c4df77 --- /dev/null +++ b/documentation/manual-pages/ja/man2/fcntl.2 @@ -0,0 +1,583 @@ +.\" Copyright (c) 1983, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94 +.\" %FreeBSD: src/lib/libc/sys/fcntl.2,v 1.44 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd January 12, 1994 +.Dt FCNTL 2 +.Os +.Sh 名称 +.Nm fcntl +.Nd ファイル制御 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In fcntl.h +.Ft int +.Fn fcntl "int fd" "int cmd" "..." +.Sh 解説 +.Fn fcntl +システムコールは、記述子の制御機能を提供します。 +引数 +.Fa fd +は、後述する +.Fa cmd +によって操作される記述子です。 +.Fa cmd +の値によっては、 +.Fn fcntl +は 3 つめの引数 +.Fa "int arg" +を取ることができます。 +.Bl -tag -width F_GETOWNX +.It Dv F_DUPFD +次のような新しい記述子を返します: +.Pp +.Bl -bullet -compact -offset 4n +.It +.Fa arg +以上で最小番号をもつ利用可能な記述子 +.It +オリジナルの記述子と同じオブジェクトを参照 +.It +オブジェクトがファイルだった場合、 +同じファイルオフセットを共有 +.It +同じアクセスモード (読取り、書込み、または読取りと書込み) +.It +同じファイル状態フラグ (すなわち、 +両方のファイル記述子が同じファイル状態フラグを共有) +.It +close-on-exec フラグは、 +.Xr execve 2 +システムコールの後でも +記述子をオープンしたままでいるように設定 +.El +.It Dv F_GETFD +ファイル記述子 +.Fa fd +に結び付けられた close-on-exec フラグを、 +.Dv FD_CLOEXEC +として取得します。 +返された値と +.Dv FD_CLOEXEC +の論理積が 0 の場合、ファイルは +.Fn exec +を実行してもオープンされたままになります。 +そうでない場合、ファイルは +.Fn exec +の実行でクローズされます +.Fa ( arg +は無視されます)。 +.It Dv F_SETFD +.Fa fd +に結び付けられた close-on-exec フラグを +.Fa arg +に設定します。 +.Fa arg +は 0 または前述の +.Dv FD_CLOEXEC +です。 +.It Dv F_GETFL +後述するように記述子の状態フラグを取得します +.Fa ( arg +は無視されます)。 +.It Dv F_SETFL +記述子状態フラグを +.Fa arg +で指定される値に設定します。 +.It Dv F_GETOWN +現時点で +.Dv SIGIO +シグナルと +.Dv SIGURG +シグナルを受信しているプロセス ID またはプロセスグループを取得 +します。 +プロセスグループは負の値として返されます +.Fa ( arg +は無視されます)。 +.It Dv F_SETOWN +プロセスまたはプロセスグループが +.Dv SIGIO +シグナルおよび +.Dv SIGURG +シグナルを受信するように設定します。 +プロセスグループは +.Fa arg +を負数にして与えることによって指定されます。 +そうでない場合、 +.Fa arg +はプロセス ID として解釈されます。 +.El +.Pp +.Dv F_GETFL +および +.Dv F_SETFL +用のフラグは次のとおりです: +.Bl -tag -width O_NONBLOCKX +.It Dv O_NONBLOCK +非ブロッキング入出力。 +.Xr read 2 +システムコールで読み取るべきデータが無い場合、または +.Xr write 2 +操作がブロックするであろう場合に、読取り呼び出しまたは書込み呼び出しはエラー +.Er EAGAIN +で -1 を返します。 +.It Dv O_APPEND +各書込みがファイルの末尾に追加されるようにします。 +.Xr open 2 +の +.Dv O_APPEND +フラグに対応します。 +.It Dv O_DIRECT +読み書きにおけるキャッシュ効果を最小化または無くします。 +システムは、読み書きするデータのキャッシングを避けようとします。 +データのキャッシングが避けられない場合、 +データのキャッシュに対する影響を最小化します。 +注意せずに使用すると、本フラグは劇的に性能を劣化させます。 +.It Dv O_ASYNC +たとえば、読み取るべきデータが用意できたときなど、 +入出力が可能になったときに +.Dv SIGIO +シグナルがプロセスグループに送信されるようにします。 +.El +.Pp +問合せ型ファイルロックを行うためにいくつかのコマンドが利用できます。 +これらのコマンドはすべて次の構造体で操作します: +.ne 7v +.Bd -literal +struct flock { + off_t l_start; /* 開始位置のオフセット */ + off_t l_len; /* len = 0 はファイル末尾までという意味 */ + pid_t l_pid; /* ロック所有者 */ + short l_type; /* ロックタイプ: 読取り / 書込みなど */ + short l_whence; /* l_start のタイプ */ +}; +.Ed +問合せ型レコードロックに利用できるコマンドは次のとおりです: +.Bl -tag -width F_SETLKWX +.It Dv F_GETLK +3 番めの引数 +.Fa arg +を +.Fa "struct flock" +(前記を参照) へのポインタと解釈して、それによって指定される +ロック記述をブロックする最初のロックを取得します。 +取り出された情報は、 +.Fn fcntl +に渡された +.Fa flock +構造体内の情報に上書きされます。 +このロックが作成されるのを妨げるロックが見つからない場合は、 +構造体はこのシステムコール呼び出しによっても変更されません。 +ただし、ロックタイプが +.Dv F_UNLCK +に設定されている場合は除きます。 +.It Dv F_SETLK +3 番めの引数 +.Fa arg +を +.Fa "struct flock" +(前記を参照) へのポインタと解釈して、それによって指定される +ロック記述に従ってファイルセグメントロックを設定またはクリアします。 +.Dv F_SETLK +は、共有 (または読取り) ロック +.Pq Dv F_RDLCK +または排他的 (または書込み) ロック +.Pq Dv F_WRLCK +を確立、ならびにいずれかのタイプのロックを解除 +.Pq Dv F_UNLCK +するのに使用されます。 +共有ロックまたは排他的ロックが設定できない場合、 +.Fn fcntl +は +.Er EAGAIN +でただちに戻ります。 +.It Dv F_SETLKW +このコマンドは +.Dv F_SETLK +と同じですが、共有ロックまたは排他的ロックが他のロックによって +ブロックされる場合に、 +要求が満たされるまでプロセスが待機する点が異なります。 +.Fn fcntl +がある領域を確保するために待機している間に +捕捉されるべきシグナルを受信して、シグナルハンドラが +.Dv SA_RESTART +.Pf ( Xr sigaction 2 +を参照) を +指定していない場合、 +.Fn fcntl +は中断されます。 +.El +.Pp +共有ロックがファイルのあるセグメントに設定されている場合、 +他のプロセスはそのセグメントまたはその +一部に共有ロックを設定できます。 +共有ロックは、保護しているどの領域にも、 +他のプロセスが排他的ロックを設定するのを防止します。 +ファイル記述子が読取りアクセスで開かれていない場合、 +共有ロックの要求は処理を失敗します。 +.Pp +排他的ロックは、保護している領域に他のプロセスが +共有ロックまたは排他的ロックを設定するのを防止します。 +ファイルが書込みアクセスで開かれていない場合、 +排他的ロックの要求は失敗します。 +.Pp +.Fa l_whence +の値は +.Dv SEEK_SET , +.Dv SEEK_CUR +または +.Dv SEEK_END +で、これらは相対オフセット +.Fa l_start +バイトが、それぞれファイルの先頭、現在位置、 +またはファイルの末尾から測定されることを指示します。 +.Fa l_len +の値はロックされる連続領域のバイト数です。 +.Fa l_len +が負の場合、 +.Fa l_start +は領域の終端を表しています。 +.Fa l_pid +フィールドは、 +ブロックするロックを保持しているプロセスのプロセス ID を返すために +.Dv F_GETLK +でのみ使用されます。 +.Dv F_GETLK +要求が正常に完了すると +.Fa l_whence +の値は +.Dv SEEK_SET +になります。 +.Pp +ロックは現在のファイル末尾以降で開始したり、 +ファイル末尾を越えて延長することはできますが、 +ファイルの先頭より前で開始したり、 +ファイルの先頭を越えて延長することはできません。 +.Fa l_len +が 0 に設定されている場合、ロックはそのファイルの +ファイルオフセットの可能な最大の値まで延長されます。 +.Fa l_whence +と +.Fa l_start +がファイルの先頭を指しており、しかも +.Fa l_len +が 0 の場合はファイル全体がロックされます。 +アプリケーションがファイル全体をロックしようとしているだけなら、 +.Xr flock 2 +システムコールの方がはるかに効率的です。 +.Pp +ファイル内の各バイトについて最大で 1 つのタイプのロックが設定されます。 +呼び出しプロセスが +.Dv F_SETLK +要求、または +.Dv F_SETLKW +要求で指定した領域内に既存のロックを保持しているとき、 +要求から正常に戻る前に、 +指定の領域内の各バイトについて以前の +ロックタイプが新しいロックタイプで置き換えられます。 +共有ロックと 排他的ロックのところで前述したように、 +別のプロセスが指定の領域内にロックを保持しており、しかもそれらのロック +のタイプが要求で指定されたタイプと競合するとき、 +.Dv F_SETLK +要求は失敗し、 +.Dv F_SETLKW +要求はブロックします。 +.Pp +このインタフェースは、System V と +.St -p1003.1-88 +が要求する不毛なセマンティクスに完全に従っています。 +つまり、あるプロセスが保持している、 +あるファイルと結び付けられたすべてのロックは、 +そのファイルの記述子の +.Em いずれか +がそのプロセスによって +クローズされたときに解除されます。 +これは、サブルーチンライブラリがアクセスする可能性のあるファイル全てを +アプリケーションが認識している必要があることを意味します。 +たとえば、パスワードファイルを更新するアプリケーションが、 +更新を行うためにパスワードファイルデータベースをロックし、 +レコードを取り出すために +.Xr getpwnam 3 +を呼び出したとしましょう。 +.Xr getpwnam 3 +はパスワードデータベースをオープンし、読み取り、 +そしてクローズするので、ロックは失われます。 +データベースをクローズすると、ライブラリルーチン +がデータベースへのロックを要求したことがない場合でさえ、 +プロセスがデータベースに結び付けたすべての +ロックが解放されてしまうのです。 +このインタフェースの別のさほど重要でないセマンティクス上の問題は、 +ロックが +.Xr fork 2 +システムコールを使用して作成された子プロセスによって継承されないことです。 +.Xr flock 2 +インタフェースは、はるかに合理的な last close セマンティクスを採用し、 +ロックが子プロセスによって継承されるようになっています。 +ライブラリを使用するときにロックの整合性を確実にする、 +またはロックを子プロセスに渡したいアプリケーションについては +.Xr flock 2 +システムコールをお勧めします。 +.Pp +.Fn fcntl , +.Xr flock 2 +および +.Xr lockf 3 +のロックは互換性があります。 +異なったロックのインタフェースを使用するプロセスは、 +同じファイルを安全に使用することができます。 +しかしながら、同じプロセスの内部では +これらのインタフェースのうちの 1 つのみが使用されるべきです。 +.Fn fcntl +を介してあるプロセスによってあるファイルがロックされている場合、 +.Xr flock 2 +または +.Xr lockf 3 +を使用している他のプロセスの視点からは、 +そのファイルの中のあらゆるレコードはロックされているかのように見えます。 +また、その逆も同様です。 +ブロックするロックを保持しているプロセスがファイル記述子を以前に +.Xr flock 2 +でロックしていた場合、 +.Fn fcntl F_GETLK +は +.Fa l_pid +に \-1 を入れて戻ります。 +.Pp +プロセスの、あるファイルに結び付けられたすべてのロックは +そのプロセスが終了するときに解除されます。 +.Pp +.Xr execve 2 +の呼び出し前に取得されたすべてのロックは、 +新規プログラムがそれらを解放するまで有効なままです。 +新規プログラムがロックについて知らないならば、 +プログラム終了まで解放されません。 +.Pp +あるロックした領域を制御しているプロセスが、 +別のプロセスがロックした領域をロックしようとして +休眠状態にされる場合に、デッドロックが発生する可能性があります。 +この実装では、ロックされた領域がアンロックされるまでの休眠が +デッドロックを引き起こす可能性を検出すると、 +.Er EDEADLK +エラーで失敗します。 +.Sh 戻り値 +処理が正常に完了した場合、返される値は +.Fa cmd +に応じて次のようになります: +.Bl -tag -width F_GETOWNX -offset indent +.It Dv F_DUPFD +新しいファイル記述子 +.It Dv F_GETFD +フラグの値 (下位ビットだけが定義されます) +.It Dv F_GETFL +フラグの値 +.It Dv F_GETOWN +ファイル記述子所有者の値 +.It その他 +\-1 以外の値 +.El +.Pp +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn fcntl +システムコールは、次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EAGAIN +引数 +.Fa cmd +は +.Dv F_SETLK +であり、ロックのタイプ +.Pq Fa l_type +は共有ロック +.Pq Dv F_RDLCK +、または +排他的ロック +.Pq Dv F_WRLCK +で、ロックされるはずのファイルの +セグメントは既に別のプロセスによって排他的に +ロックされています。 +または、タイプが排他的なロックで、ロックされるファイルのセグメントの一部が +既に別のプロセスによって共有ロックまたは排他的ロックされています。 +.It Bq Er EBADF +.Fa fd +引数が有効なオープンファイル記述子ではありません。 +.Pp +引数 +.Fa cmd +が +.Dv F_SETLK +または +.Dv F_SETLKW +で、かつロックタイプ +.Pq Fa l_type +が共有ロック +.Pq Dv F_RDLCK +のとき、 +.Fa fd +は読取り用に開かれた有効なファイル記述子ではありません。 +.Pp +引数 +.Fa cmd +が +.Dv F_SETLK +または +.Dv F_SETLKW +で、かつロックタイプ +.Pq Fa l_type +が排他的ロック +.Pq Dv F_WRLCK +のとき、 +.Fa fd +は書込み用に開かれた有効なファイル記述子ではありません。 +.It Bq Er EDEADLK +引数 +.Fa cmd +が +.Dv F_SETLKW +であり、デッドロック条件が検出されました。 +.It Bq Er EINTR +引数 +.Fa cmd +が +.Dv F_SETLKW +であり、このシステムコールがシグナルによって割り込まれました。 +.It Bq Er EINVAL +.Fa cmd +が +.Dv F_DUPFD +で、 +.Fa arg +が負であるかまたは許容される最大値より大きくなっています +.Pf ( Xr getdtablesize 2 +を参照)。 +.Pp +引数 +.Fa cmd +が +.Dv F_GETLK , +.Dv F_SETLK +または +.Dv F_SETLKW +で、 +.Fa arg +が指すデータが有効でありません。 +.It Bq Er EMFILE +引数 +.Fa cmd +が +.Dv F_DUPFD +であり、プロセスについて許容される最大数までファイル記述子が +既に使用されています。 +.Fa arg +で指定された以上のファイル記述子は利用できません。 +.It Bq Er ENOLCK +引数 +.Fa cmd +が +.Dv F_SETLK +または +.Dv F_SETLKW +であり、ロック要求またはアンロック要求を満たすことによって、 +システムが課した限界を越える数のロックされた領域がシステム内に +できてしまいます。 +.It Bq Er EOPNOTSUPP +引数 +.Fa cmd +に +.Dv F_GETLK , +.Dv F_SETLK +または +.Dv F_SETLKW +が指定されましたが、 +.Fa fd +はロックをサポートしていないファイルを参照しています。 +.It Bq Er EOVERFLOW +引数 +.Fa cmd +に +.Dv F_GETLK , +.Dv F_SETLK +または +.Dv F_SETLKW +が指定されましたが、 +.Fa off_t +の計算がオーバフローしました。 +.It Bq Er EPERM +.Fa cmd +引数は、 +.Dv F_SETOWN +であり、引数として指定されたプロセス ID またはプロセスグループ +は、呼び出し側と異なるセッション内にあります。 +.It Bq Er ESRCH +.Fa cmd +引数は +.Dv F_SETOWN +であり、引数として指定されたプロセス ID が使用されていません。 +.El +.Pp +さらに、 +.Fa fd +が (ソケット上で開いている記述子とは反対に) +端末デバイス上で開いている記述子を参照する場合、 +.Fa cmd +で +.Dv F_SETOWN +を指定すると +.Xr tcsetpgrp 3 +と同じ理由で処理を失敗する可能性があり、 +.Xr tcgetpgrp 3 +で述べたような +理由で +.Fa cmd +で +.Dv F_GETOWN +を指定した場合に処理に失敗する可能性があります。 +.Sh 関連項目 +.Xr close 2 , +.Xr execve 2 , +.Xr flock 2 , +.Xr getdtablesize 2 , +.Xr open 2 , +.Xr sigvec 2 , +.Xr lockf 3 , +.Xr tcgetpgrp 3 , +.Xr tcsetpgrp 3 +.Sh 歴史 +.Fn fcntl +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/fhopen.2 b/documentation/manual-pages/ja/man2/fhopen.2 new file mode 100644 index 0000000000..5a58241d47 --- /dev/null +++ b/documentation/manual-pages/ja/man2/fhopen.2 @@ -0,0 +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 +が設定されます。 +.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/documentation/manual-pages/ja/man2/flock.2 b/documentation/manual-pages/ja/man2/flock.2 new file mode 100644 index 0000000000..bcc1a1c7bf --- /dev/null +++ b/documentation/manual-pages/ja/man2/flock.2 @@ -0,0 +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 lockf 3 +.Sh 歴史 +.Fn flock +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/fork.2 b/documentation/manual-pages/ja/man2/fork.2 new file mode 100644 index 0000000000..eb4ce5b787 --- /dev/null +++ b/documentation/manual-pages/ja/man2/fork.2 @@ -0,0 +1,134 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)fork.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/fork.2,v 1.19 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt FORK 2 +.Os +.Sh 名称 +.Nm fork +.Nd 新しいプロセスを作成する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In unistd.h +.Ft pid_t +.Fn fork void +.Sh 解説 +.Fn fork +システムコールによって新しいプロセスの作成が行われます。 +新しいプロセス (子プロセス)は、 +以下の項目を除いた呼び出しプロセス (親プロセス) の正確なコピーです。 +.Bl -bullet -offset indent +.It +子プロセスはユニークなプロセス ID を持ちます。 +.It +子プロセスは異なる親プロセス ID を持ちます +(すなわち、親プロセスのプロセス ID です)。 +.It +子プロセスは、専用の、親の記述子のコピーを持ちます。 +それらの記述子は下層の同じオブジェクトを参照します。 +つまり子と親の間で、たとえばファイルオブジェクト内の +ファイルポインタが共有されます。 +そのため子プロセスの記述子への +.Xr lseek 2 +が、その後の親による +.Xr read 2 +または +.Xr write 2 +に影響を及ぼします。 +この記述子コピーは、新しく作成されたプロセス用の標準入出力を確立するために、 +およびパイプをセットアップするために、シェルによっても使用されます。 +.It +子プロセスのリソース使用状況は 0 に設定されます。 +.Xr setrlimit 2 +を参照してください。 +.It +すべてのインターバルタイマがクリアされます。 +.Xr setitimer 2 +を参照してください。 +.El +.Sh 戻り値 +正常に完了した場合、 +.Fn fork +は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに返します。 +そうでない場合は -1 が親プロセスに返され、子プロセスは作成されずに、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +次の場合に +.Fn fork +システムコールは処理に失敗し、子プロセスは作成されません: +.Bl -tag -width Er +.It Bq Er EAGAIN +実行中のプロセスの合計数がシステムの限界を超えます。 +限界値は +.Xr sysctl 3 +の MIB 変数の +.Dv KERN_MAXPROC +によって指定されます (スーパユーザを除いて、 +実際には限界はこれより 10 個少なくなります)。 +.It Bq Er EAGAIN +ユーザがスーパユーザでなく、 +1 人のユーザによって実行中のプロセスの合計数が、システムの限界を越えます。 +限界は +.Xr sysctl 3 +の MIB 変数の +.Dv KERN_MAXPROCPERUID +によって指定されます。 +.It Bq Er EAGAIN +ユーザがスーパユーザでなく、 +.Fa resource +引数の +.Dv RLIMIT_NPROC +に対応するソフトリソース限界を越えます +.Pf ( Xr getrlimit 2 +を参照)。 +.It Bq Er ENOMEM +新しいプロセス用のスワップ空間が不充分です。 +.El +.Sh 関連項目 +.Xr execve 2 , +.Xr rfork 2 , +.Xr setitimer 2 , +.Xr setrlimit 2 , +.Xr vfork 2 , +.Xr wait 2 +.Sh 歴史 +.Fn fork +関数は +.At v6 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/fsync.2 b/documentation/manual-pages/ja/man2/fsync.2 new file mode 100644 index 0000000000..2ceba84668 --- /dev/null +++ b/documentation/manual-pages/ja/man2/fsync.2 @@ -0,0 +1,84 @@ +.\" Copyright (c) 1983, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)fsync.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/fsync.2,v 1.18 2002/12/19 09:40:24 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt FSYNC 2 +.Os +.Sh 名称 +.Nm fsync +.Nd "ファイルに変更を同期する" +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn fsync "int fd" +.Sh 解説 +.Fn fsync +システムコールによって、 +.Fa fd +の修正されたすべてのデータと属性が永続的なストレージデバイスに移動されます。 +これによって、対応するファイルに関するバッファのすべての +メモリ上のコピーで、修正された物がディスクに書き込まれる結果になるのが +普通です。 +.Pp +.Fn fsync +システムコールは、ファイルが既知の状態にあることを要求するプログラムによって +使用される必要があります。 +たとえば、簡単なトランザクション機能の構築です。 +.Sh 戻り値 +.Rv -std fsync +.Sh エラー +.Fn fsync +は次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +引数が有効な記述子ではありません。 +.It Bq Er EINVAL +.Fa fd +引数がファイルではなくソケットを参照しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr sync 2 , +.Xr syncer 4 , +.Xr sync 8 +.Sh 歴史 +.Fn fsync +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/getdirentries.2 b/documentation/manual-pages/ja/man2/getdirentries.2 new file mode 100644 index 0000000000..d0d59e5791 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getdirentries.2 @@ -0,0 +1,179 @@ +.\" Copyright (c) 1989, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getdirentries.2 8.2 (Berkeley) 5/3/95 +.\" %FreeBSD: src/lib/libc/sys/getdirentries.2,v 1.23 2002/12/19 09:40:24 ru Exp % +.\" +.\" $FreeBSD$ +.Dd May 3, 1995 +.Dt GETDIRENTRIES 2 +.Os +.Sh 名称 +.Nm getdirentries , +.Nm getdents +.Nd "ファイルシステムに独立なフォーマットのディレクトリエントリを取得する" +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In dirent.h +.Ft int +.Fn getdirentries "int fd" "char *buf" "int nbytes" "long *basep" +.Ft int +.Fn getdents "int fd" "char *buf" "int nbytes" +.Sh 解説 +.Fn getdirentries +システムコールと +.Fn getdents +システムコールは、ファイル記述子 +.Fa fd +が参照するディレクトリから +.Fa buf +が指すバッファ内に、ファイルシステムに独立なフォーマットの +ディレクトリエントリを読み取ります。 +最高で +.Fa nbytes +までのデータが転送されます。 +.Fa nbytes +引数は、ファイルに対応するブロックサイズ以上である必要があります。 +.Xr stat 2 +を参照してください。 +このサイズより小さいバッファでは、 +これらのシステムコールをサポートしない可能性のあるファイルシステムがあります。 +.Pp +バッファ内のデータは +.Vt dirent +構造体の連続で、それぞれ次のエントリが入っています: +.Bd -literal -offset indent +u_int32_t d_fileno; +u_int16_t d_reclen; +u_int8_t d_type; +u_int8_t d_namlen; +char d_name[MAXNAMELEN + 1]; /* 下記を参照 */ +.Ed +.Pp +.Fa d_fileno +エントリは、ファイルシステム内の異なるファイル毎に一意の数値です。 +ハードリンクでリンクされたファイル +.Pf ( Xr link 2 +を参照) は同じ +.Fa d_fileno +を持ちます。 +.Fa d_reclen +エントリは、ディレクトリレコードの長さ (バイト単位) です。 +.Fa d_type +エントリは、ディレクトリレコードが指すファイルのタイプです。 +ファイルタイプの値は +.Fa <sys/dirent.h> +内に定義されます。 +.Fa d_name +エントリにはヌル文字で終わるファイル名が入っています。 +.Fa d_namlen +エントリは、ヌルバイトを除いたファイル名の長さを示します。 +それゆえ、 +.Fa d_name +の実際のサイズは 1 から +.Dv MAXNAMELEN +\&+ 1 +の間のいずれかの値になります。 +.Pp +エントリは余分のスペースで分離されているかもしれません。 +.Fa d_reclen +エントリは、 +.Fa dirent +構造体の開始点から次の構造体がある場合は +その構造体へのオフセットとして使用されます。 +.Pp +実際に転送されたバイト数が返されます。 +.Fa fd +に関連づけられた現在の位置を示すポインタは、 +エントリの次のブロックに設定されます。 +ポインタは +.Fn getdirentries +または +.Fn getdents +によって返されるバイト数分だけ進められるとは限りません。 +ディレクトリの終わりに到達した場合は、値 0 が返されます。 +.Pp +.Fn getdirentries +システムコールは、読み取られたブロック位置を +.Fa basep +が指す場所に書き込みます。 +代わりに +.Xr lseek 2 +によって現在の位置ポインタを設定、取得できます。 +現在の位置ポインタは、 +.Xr lseek 2 +が返す値、 +.Fa basep +が指す場所に返される値 +.Fn ( getdirentries +のみ)、または 0 のいずれかにのみ設定するべきです。 +.Sh 戻り値 +処理が正常に完了すると、実際に転送されたバイト数が返されます。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn getdirentries +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +引数が読取り用に開かれた有効なファイル記述子ではありません。 +.It Bq Er EFAULT +.Fa buf +または +.Fa basep +のどちらかが、割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINVAL +.Fa fd +によって参照されるファイルがディレクトリでないか、 +.Fa nbytes +がディレクトリエントリまたはエントリのブロックを返すのには小さすぎます。 +あるいは、現在の位置ポインタが無効です。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に +.Tn I/O +(入出力)エラーが発生しました。 +.El +.Sh 関連項目 +.Xr lseek 2 , +.Xr open 2 +.Sh 歴史 +.Fn getdirentries +システムコールは +.Bx 4.4 +ではじめて登場しました。 +.Fn getdents +システムコールは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/getdtablesize.2 b/documentation/manual-pages/ja/man2/getdtablesize.2 new file mode 100644 index 0000000000..ea231fc278 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getdtablesize.2 @@ -0,0 +1,64 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getdtablesize.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getdtablesize.2,v 1.9 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt GETDTABLESIZE 2 +.Os +.Sh 名称 +.Nm getdtablesize +.Nd 記述子テーブルのサイズを得る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn getdtablesize void +.Sh 解説 +各プロセスには固定サイズの記述子テーブルがあり、 +テーブルには最低 20 個のスロットがあることが保証されています。 +記述子テーブル内のエントリは、 +0 からはじまる小さな整数で番号付けられています。 +.Fn getdtablesize +システムコールはこのテーブルのサイズを返します。 +.Sh 関連項目 +.Xr close 2 , +.Xr dup 2 , +.Xr open 2 , +.Xr select 2 +.Sh 歴史 +.Fn getdtablesize +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/getfh.2 b/documentation/manual-pages/ja/man2/getfh.2 new file mode 100644 index 0000000000..aa3464c5e6 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getfh.2 @@ -0,0 +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/documentation/manual-pages/ja/man2/getfsstat.2 b/documentation/manual-pages/ja/man2/getfsstat.2 new file mode 100644 index 0000000000..f21c07a3e7 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getfsstat.2 @@ -0,0 +1,121 @@ +.\" Copyright (c) 1989, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getfsstat.2 8.3 (Berkeley) 5/25/95 +.\" %FreeBSD: src/lib/libc/sys/getfsstat.2,v 1.17 2004/07/16 01:18:13 alfred Exp % +.\" +.\" $FreeBSD$ +.Dd November 20, 2003 +.Dt GETFSSTAT 2 +.Os +.Sh 名称 +.Nm getfsstat +.Nd マウントされたすべてのファイルシステムのリストを得る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/ucred.h +.In sys/mount.h +.Ft int +.Fn getfsstat "struct statfs *buf" "long bufsize" "int flags" +.Sh 解説 +.Fn getfsstat +システムコールは、マウントされたすべてのファイルシステムに関する情報を +返します。 +.Fa buf +引数は +.Xr statfs 2 +に記述された +.Vt statfs +構造体へのポインタです。 +.Pp +特定のファイルシステムについて未定義となるフィールドは -1 に設定されます。 +バッファは +.Fa fsstat +構造体の配列で埋められます。 +マウントされた各ファイルシステムについて 1 つずつ、最高 +.Fa bufsize +で指定されたバイト数までです。 +.Fa bufsize +引数は、 +.Fa buf +が保持することができるバイト数であり、保持することができる statfs 構造体の +数ではないことに、注意して下さい。 +.Pp +.Fa buf +として NULL が指定されている場合、 +.Fn getfsstat +はマウントされているファイルシステムの数のみを返します。 +.Pp +通常、 +.Fa flags +には +.Dv MNT_WAIT +を指定するべきです。 +.Fa flags +として +.Dv MNT_NOWAIT +が指定されている場合、 +.Fn getfsstat +は各ファイルシステムからの更新を要求せずに利用できる情報を返します。 +そのため、情報のうちには古くなっているものがあるでしょうが、 +.Fn getfsstat +は応答できないファイルシステムからの情報を +待機してブロックすることはありません。 +.Sh 戻り値 +正常に完了すると +.Fa fsstat +構造体の数が返されます。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn getfsstat +システムコールは以下の 1 つでも真の場合、処理に失敗します: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa buf +引数が無効なアドレスを指しています。 +.It Bq Er EIO +ファイルシステムを読み書きしている間に +.Tn I/O +(入出力) エラーが発生しました。 +.El +.Sh 関連項目 +.Xr statfs 2 , +.Xr fstab 5 , +.Xr mount 8 +.Sh 歴史 +.Fn getfsstat +システムコールは +.Bx 4.4 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/getgid.2 b/documentation/manual-pages/ja/man2/getgid.2 new file mode 100644 index 0000000000..cb41b4369e --- /dev/null +++ b/documentation/manual-pages/ja/man2/getgid.2 @@ -0,0 +1,82 @@ +.\" 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. +.\" +.\" @(#)getgid.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getgid.2,v 1.13 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt GETGID 2 +.Os +.Sh 名称 +.Nm getgid , +.Nm getegid +.Nd グループプロセス ID を取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In unistd.h +.Ft gid_t +.Fn getgid void +.Ft gid_t +.Fn getegid void +.Sh 解説 +.Fn getgid +システムコールは呼び出したプロセスの実グループ ID を返します。 +.Fn getegid +は呼び出したプロセスの実効グループ ID を返します。 +.Pp +実グループ ID はログイン時に指定されます。 +.Pp +実グループ ID はプログラムを起動したユーザのグループです。 +実効グループ ID は +.Dq Em グループ ID 設定 +モードプロセスの実行の間にプロセスに追加のパーミッションを与えるので、 +.Fn getgid +は呼び出しプロセスの実ユーザ ID を知るために使用されます。 +.Sh エラー +.Fn getgid +システムコールと +.Fn getegid +システムコールは必ず正常に完了するので、エラーを示すための戻り値はありません。 +.Sh 関連項目 +.Xr getuid 2 , +.Xr issetugid 2 , +.Xr setgid 2 , +.Xr setregid 2 +.Sh 規格 +.Fn getgid +システムコールと +.Fn getegid +システムコールは +.St -p1003.1-90 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/getgroups.2 b/documentation/manual-pages/ja/man2/getgroups.2 new file mode 100644 index 0000000000..453903327d --- /dev/null +++ b/documentation/manual-pages/ja/man2/getgroups.2 @@ -0,0 +1,98 @@ +.\" 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. +.\" +.\" @(#)getgroups.2 8.2 (Berkeley) 4/16/94 +.\" %FreeBSD: src/lib/libc/sys/getgroups.2,v 1.12 2002/12/19 09:40:24 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 5, 1999 +.Dt GETGROUPS 2 +.Os +.Sh 名称 +.Nm getgroups +.Nd グループアクセスリストを取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In unistd.h +.Ft int +.Fn getgroups "int gidsetlen" "gid_t *gidset" +.Sh 解説 +.Fn getgroups +システムコールは、ユーザプロセスの現在のグループアクセスリストを取得し、 +それを配列 +.Fa gidset +に保存します。 +.Fa gidsetlen +引数は +.Fa gidset +内に配置できるエントリの数を示します。 +.Fn getgroups +システムコールは、 +.Fa gidset +に返された実際のグループの数を返します。 +.Dv NGROUPS_MAX +より大きい値は返しません。 +.Fa gidsetlen +が 0 の場合には +.Fn getgroups +は、 +.Fa gidset +が指し示す配列を修正せずに、 +呼び出したプロセスに対応する補助グループ ID の数を返します。 +.Sh 戻り値 +呼び出しが正常に完了すると、グループセット内のグループの数が返されます。 +戻り値 -1 はエラーが起こったことを示し、 +エラーコードはグローバル変数 +.Va errno +に保存されます。 +.Sh エラー +.Fn getgroups +で起こり得るエラーは次のとおりです: +.Bl -tag -width Er +.It Bq Er EINVAL +引数 +.Fa gidsetlen +がグループセット内のグループの数より小さいです。 +.It Bq Er EFAULT +引数 +.Fa gidset +は無効なアドレスを指しています。 +.El +.Sh 関連項目 +.Xr setgroups 2 , +.Xr initgroups 3 +.Sh 歴史 +.Fn getgroups +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/getitimer.2 b/documentation/manual-pages/ja/man2/getitimer.2 new file mode 100644 index 0000000000..f310a64210 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getitimer.2 @@ -0,0 +1,166 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getitimer.2 8.3 (Berkeley) 5/16/95 +.\" %FreeBSD: src/lib/libc/sys/getitimer.2,v 1.20 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd May 16, 1995 +.Dt GETITIMER 2 +.Os +.Sh 名称 +.Nm getitimer , +.Nm setitimer +.Nd インターバルタイマの値を取得/設定 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/time.h +.Fd "#define ITIMER_REAL 0" +.Fd "#define ITIMER_VIRTUAL 1" +.Fd "#define ITIMER_PROF 2" +.Ft int +.Fn getitimer "int which" "struct itimerval *value" +.Ft int +.Fn setitimer "int which" "const struct itimerval *value" "struct itimerval *ovalue" +.Sh 解説 +システムは、各プロセスに +.In sys/time.h +で定義された 3 つのインターバルタイマを提供しています。 +.Fn getitimer +システムコールは +.Fa which +で指定されたタイマの現在の値を +.Fa value +構造体に返します。 +.Fn setitimer +システムコールはタイマを指定の +.Fa value +に設定します +.Fa ( ovalue +が nil でない場合、タイマの +以前の値が返されます)。 +.Pp +タイマの値は +.Fa itimerval +構造体によって定義されます: +.Bd -literal -offset indent +struct itimerval { + struct timeval it_interval; /* タイマインターバル */ + struct timeval it_value; /* 現在の値 */ +}; +.Ed +.Pp +.Fa it_value +が 0 でない場合、それは次にタイマが時間切れになるまでの時間を示します。 +.Fa it_interval +が 0 でない場合、それはタイマが時間切れになるときに +.Fa it_value +を再設定するのに使用される値を指定します。 +.Fa it_value +を 0 に設定すると、タイマは +.Fa it_interval +の値に関係なく無効になります。 +.Fa it_interval +を 0 に設定すると、次の時間切れの後でタイマは無効になります +.Fa ( it_value +が 0 でないと想定します)。 +.Pp +システムクロックの精度 (通常は 10 ミリ秒です) より小さい時間の値は +この精度に切り上げられます。 +.Pp +.Dv ITIMER_REAL +タイマはリアルタイムで減少していきます。 +このタイマが時間切れになると +.Dv SIGALRM +シグナルが配信されます。 +.Pp +.Dv ITIMER_VIRTUAL +タイマはプロセス仮想時間で減少します。 +このタイマが減るのはプロセスが実行中のときだけです。 +時間切れになるときに +.Dv SIGVTALRM +シグナルが配信されます。 +.Pp +.Dv ITIMER_PROF +タイマは、プロセス仮想時間内およびシステムがプロセスのために +処理を行っているときの両方で減少します。 +これは、インタプリタがプログラムの実行を統計的にプロファイルするときに +使用するように設計されています。 +.Dv ITIMER_PROF +タイマが時間切れになるたびに +.Dv SIGPROF +シグナルが配信されます。 +このシグナルは進行中のシステムコールに割り込むかもしれないので、 +このタイマを使用しているプログラムは割り込まれたシステムコールを +再実行する準備をしておかなければなりません。 +.Pp +.Fn setitimer +で +.Fa it_interval +と +.Fa it_value +に許容される最大秒数は 100000000 です。 +.Sh 注 +時間の値を操作する 3 つのマクロは +.In sys/time.h +で定義されています。 +.Fn timerclear +マクロは時間の値を 0 に設定し、 +.Fn timerisset +は時間値が 0 でないかどうか検査し、 +.Fn timercmp +は 2 つの時間の値を比較します。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fn getitimer +と +.Fn setitimer +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa value +引数が無効なアドレスを指定しました。 +.It Bq Er EINVAL +.Fa value +引数が、大きすぎて処理できない時間を指定しました。 +.El +.Sh 関連項目 +.Xr gettimeofday 2 , +.Xr select 2 , +.Xr sigvec 2 , +.Xr clocks 7 +.Sh 歴史 +.Fn getitimer +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/getlogin.2 b/documentation/manual-pages/ja/man2/getlogin.2 new file mode 100644 index 0000000000..277da13f13 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getlogin.2 @@ -0,0 +1,190 @@ +.\" Copyright (c) 1989, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getlogin.2 8.1 (Berkeley) 6/9/93 +.\" %FreeBSD: src/lib/libc/sys/getlogin.2,v 1.27 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 9, 1993 +.Dt GETLOGIN 2 +.Os +.Sh 名称 +.Nm getlogin , +.Nm getlogin_r , +.Nm setlogin +.Nd ログイン名を取得 / 設定する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft char * +.Fn getlogin void +.In sys/param.h +.Ft int +.Fn getlogin_r "char *name" "int len" +.Ft int +.Fn setlogin "const char *name" +.Sh 解説 +.Fn getlogin +ルーチンは、 +.Fn setlogin +で設定した現在のセッションに対応するユーザのログイン名を返します。 +通常、名前はセッションが作成された時点でログインシェルに対応し、 +ログインシェルから派生する全てのプロセスに継承されます +(これらのプロセスが別のユーザ ID を想定している場合、たとえば、 +.Xr su 1 +が使用されるときでも該当します)。 +.Pp +.Fn getlogin_r +関数は +.Fn getlogin +と同様のサービスを提供しますが、呼び出し側は結果を保持するための長さ +.Fa len +バイトのバッファ +.Fa name +を用意しなければなりません。 +バッファは少なくとも +.Dv MAXLOGNAME +バイトの長さがあるべきです。 +.Pp +.Fn setlogin +システムコールは、現在のセッションに対応するユーザのログイン名を +.Fa name +に対応させます。 +このシステムコールはスーパユーザに制限されており、 +新しいセッションがユーザのために +作成されるときにだけ使用されるのが普通です +(たとえば、ログイン時、またはリモートシェルが起動されるときです)。 +.Pp +.Em 注釈 : +セッションごとに 1 つのログイン名しかありません。 +.Pp +プロセスが、確実に親のセッションから切り離されるような +適切なステップを取った後にのみ、 +.Fn setlogin +が呼び出されるようにすることは +.Em 非常に +重要です。 +.Fn setsid +システムコールを行うのがこれをする +.Em 唯一の +方法です。 +.Xr daemon 3 +関数は +.Fn setsid +を呼び出しますが、これは制御端末を切り離して +フォークでバックグラウンドに入る理想的な方法です。 +.Pp +特に、 +.Fn ioctl ttyfd TIOCNOTTY ...\& +または +.Fn setpgrp ...\& +では十分では +.Em ありません。 +.Pp +親プロセスがいったん +.Fn setsid +システムコールを行えば、セッションリーダでないそのプロセスの子が +.Fn setlogin +を行うことも受け入れられますが、親を含めてセッション内のすべての +プロセスが同時にログイン名を変更されることに注意してください。 +.Pp +これは特権を継承する従来の UNIX の動作と同じではありません。 +.Pp +.Fn setlogin +システムコールはスーパユーザに制限されているので、セキュリティ侵犯を +防止するために (他の特権のあるすべてのプログラムと同じように) +プログラマが適切な注意を払うものだと仮定しています。 +.Sh 戻り値 +.Fn getlogin +の呼び出しが成功すると、静的バッファ内のヌル文字で終わる文字列への +ポインタが返されます。 +名前が設定されていない場合は、 +.Dv NULL +が返されます。 +.Fn getlogin_r +関数の呼び出しが成功すると、0 が返されます。 +失敗するとエラー番号が返されます。 +.Pp +.Rv -std setlogin +.Sh エラー +これらの呼び出しによって以下のエラーが返される可能性があります: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa name +引数が無効なアドレスを与えました。 +.It Bq Er EINVAL +.Fa name +引数が長すぎる文字列を指しています。 +ログイン名は +.In ( sys/param.h +の) +.Dv MAXLOGNAME +文字までに制限されます。 +現時点ではヌルを含めて 17 文字です。 +.It Bq Er EPERM +ログイン名を設定しようとした呼び出し元が +スーパユーザではありませんでした。 +.It Bq Er ERANGE +返される結果よりバッファのサイズが小さすぎます。 +.El +.Sh 関連項目 +.Xr setsid 2 , +.Xr daemon 3 +.Sh バグ +システムの以前のバージョンでは、 +.Fn getlogin +はプロセスがログイン端末に対応していない限り処理に失敗しました。 +現在では、 +.Pf ( Fn setlogin +を使用して) プロセスに制御端末がないときでも getlogin は正常に完了します。 +初期のバージョンでは、 +.Fn getlogin +が返す値はユーザ ID をチェックせずには信頼することができませんでした。 +移植性の高いプログラムはおそらくまだこのチェックを行っているはずです。 +.Sh 歴史 +.Fn getlogin +システムコールは +.Bx 4.4 +ではじめて登場しました。 +.Fn getlogin_r +の戻り値は +.St -p1003.1-96 +に適合するために +.Fx +の初期のバージョンから変更されました。 +.Sh 規格 +.Fn getlogin +システムコールと +.Fn getlogin_r +関数は +.St -p1003.1-96 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/getpeername.2 b/documentation/manual-pages/ja/man2/getpeername.2 new file mode 100644 index 0000000000..75a01036b3 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getpeername.2 @@ -0,0 +1,93 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getpeername.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getpeername.2,v 1.22 2003/12/24 18:52:41 alfred Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt GETPEERNAME 2 +.Os +.Sh 名称 +.Nm getpeername +.Nd 接続されたピア (通信相手) の名前の取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn getpeername "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen" +.Sh 解説 +.Fn getpeername +システムコールは、ソケット +.Fa s +に接続されたピア (通信相手) の名前を返します。 +.Fa namelen +引数には、 +.Fa name +が指す空間の大きさを示す値を入れておく必要があります。 +戻る時に、これには返された名前の +実際のサイズ (バイト単位) が入れられます。 +準備されたバッファが小さすぎる場合、名前は切り捨てられます。 +.Sh 戻り値 +.Rv -std getpeername +.Sh エラー +以降の場合を除いて呼び出しは処理に成功します: +.Bl -tag -width Er +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ECONNRESET +接続がピアによってリセットされました。 +.It Bq Er ENOTSOCK +引数 +.Fa s +はソケットではなくファイルです。 +.It Bq Er ENOTCONN +ソケットが接続されていません。 +.It Bq Er ENOBUFS +操作を実行するための十分なリソースがシステムにありません。 +.It Bq Er EFAULT +.Fa name +パラメータは、プロセスのアドレス空間の有効な領域の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr bind 2 , +.Xr getsockname 2 , +.Xr socket 2 +.Sh 歴史 +.Fn getpeername +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/getpgrp.2 b/documentation/manual-pages/ja/man2/getpgrp.2 new file mode 100644 index 0000000000..2765875cc3 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getpgrp.2 @@ -0,0 +1,143 @@ +.\" 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. +.\" +.\" @(#)getpgrp.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getpgrp.2,v 1.19 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.\" +.Dd June 4, 1993 +.Dt GETPGRP 2 +.Os +.Sh 名称 +.Nm getpgrp +.Nd プロセスグループの取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft pid_t +.Fn getpgrp void +.Ft pid_t +.Fn getpgid "pid_t pid" +.Sh 解説 +現在のプロセスのプロセスグループは +.Fn getpgrp +によって返されます。 +.Fa pid +によって識別されるプロセスのプロセスグループは +.Fn getpgid +によって返されます。 +.Fa pid +が 0 の場合、 +.Fn getpgid +は現在のプロセスのプロセスグループを返します。 +.Pp +プロセスグループはシグナルの配信用に使用され、 +また端末によって入力の要求を調整するのにも使用されます。 +端末と同じプロセスグループを持つ (1 つ以上の) プロセスは +フォアグラウンドであり読み取りできます。 +一方で、その他のプロセスが読み取ろうした場合は、 +シグナルによってブロックさせられます。 +.Pp +このように、このシステムコールは +.Xr csh 1 +のようにジョブ制御のためにプロセスグループの作成を +行うプログラムによって使用されます。 +.Fn tcgetpgrp +呼び出しと +.Fn tcsetpgrp +呼び出しは制御端末のプロセスグループを取得 / 設定するのに使用されます。 +.Sh 戻り値 +.Fn getpgrp +システムコールは、常に成功します。 +成功裏に完了すると、 +.Fn getpgid +システムコールは指定したプロセスのプロセスグループを返します。 +失敗すると、値 \-1 を +.Va errno +に設定してエラーを示します。 +.Sh エラー +.Fn getpgid +システムコールは次の場合以外は成功します: +.Bl -tag -width Er +.It Bq Er ESRCH +.Fa pid +で指定したプロセスに対応するプロセスが見つかりません。 +.El +.Sh 関連項目 +.Xr getsid 2 , +.Xr setpgid 2 , +.Xr termios 4 +.Sh 歴史 +.Fn getpgrp +システムコールは +.Bx 4.0 +で登場しました。 +.Fn getpgid +システムコールは +.At V.4 +での使用法に由来しています。 +.Sh 規格 +.Fn getpgrp +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 互換性 +このバージョンの +.Fn getpgrp +システムコールは、 +.Fa "pid_t pid" +引数を取らないという点で過去の Berkeley バージョンとは異なっています。 +互換性は +.St -p1003.1-90 +への対応により失われてしまいました。 +.Pp +.St -p1003.1-90 +基本概念から: +.Pp +.Bx 4.3 +は、指定のプロセスについてプロセスグループ ID を返す +.Fn getpgrp +関数を備えています。 +この関数はジョブ制御をサポートするのに使用されますが、 +既知のジョブ制御をする全てのシェルは、必ずこの関数に +呼び出しプロセスを指定しています。 +そのためより簡単な +.At V +.Fn getpgrp +で十分であり、 +.Bx 4.3 +.Fn getpgrp +の追加された複雑さは POSIX.1 から省略されています。 +古い機能は +.Fn getpgid +システムコールで利用できます。 diff --git a/documentation/manual-pages/ja/man2/getpid.2 b/documentation/manual-pages/ja/man2/getpid.2 new file mode 100644 index 0000000000..fdf5bc16a9 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getpid.2 @@ -0,0 +1,82 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getpid.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getpid.2,v 1.14 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt GETPID 2 +.Os +.Sh 名称 +.Nm getpid , +.Nm getppid +.Nd 親または呼び出しプロセスの識別子を取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In unistd.h +.Ft pid_t +.Fn getpid void +.Ft pid_t +.Fn getppid void +.Sh 解説 +.Fn getpid +システムコールは呼び出しプロセスのプロセス ID を返します。 +ID はユニークであることが保証されていますが、 +テンポラリファイル名の作成に利用しては +.Em いけません。 +セキュリティ上の理由については、 +.Xr mkstemp 3 +を参照してください。 +.Pp +.Fn getppid +システムコールは呼び出しプロセスの親のプロセス ID を返します。 +.Sh エラー +.Fn getpid +システムコールと +.Fn getppid +システムコールは必ず正常に完了するので、エラーを示すための戻り値はありません。 +.Sh 関連項目 +.Xr gethostid 3 +.Sh 規格 +.Fn getpid +システムコールと +.Fn getppid +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn getpid +関数は +.At v7 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/getpriority.2 b/documentation/manual-pages/ja/man2/getpriority.2 new file mode 100644 index 0000000000..999b0af542 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getpriority.2 @@ -0,0 +1,142 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getpriority.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getpriority.2,v 1.12 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt GETPRIORITY 2 +.Os +.Sh 名称 +.Nm getpriority , +.Nm setpriority +.Nd プログラムスケジュール優先順位を取得 / 設定する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/time.h +.In sys/resource.h +.Ft int +.Fn getpriority "int which" "int who" +.Ft int +.Fn setpriority "int which" "int who" "int prio" +.Sh 解説 +.Fa which +および +.Fa who +で指示されるプロセス、プロセスグループ、 +またはユーザのスケジュール優先順位は +.Fn getpriority +システムコールで取得され、 +.Fn setpriority +システムコールで設定されます。 +.Fa which +引数は、 +.Dv PRIO_PROCESS , +.Dv PRIO_PGRP +または +.Dv PRIO_USER +のどれかであり、 +.Fa who +は +.Fa which +に関連して解釈されます +.Dv ( PRIO_PROCESS +の場合はプロセス識別子、 +.Dv PRIO_PGRP +の場合はプロセスグループ識別子、および +.Dv PRIO_USER +の場合はユーザ ID)。 +.Fa who +の値が 0 であるのは、 +現在のプロセス、プロセスグループ、またはユーザを表します。 +.Fa prio +引数は -20 から 20 の範囲の値です。 +デフォルトの優先順位は 0 です。 +優先順位が低いと、スケジュール調整にはより都合がよくなります。 +.Pp +.Fn getpriority +システムコールは、指定のプロセスのいずれかが享受する最高の優先順位を +返してきます (最も小さい数値です)。 +.Fn setpriority +システムコールは、指定されたすべてのプロセスの優先順位を指定の値に設定します。 +スーパユーザだけが優先順位を低くできます。 +.Sh 戻り値 +.Fn getpriority +は処理を正しく完了しても値 -1 を返すことがあるので、 +呼び出しの前に外部変数 +.Va errno +をクリアしてから、後にこれをチェックして -1 がエラーであるか、 +または正当な値であるか判定する必要があります。 +.Pp +.Rv -std setpriority +.Sh エラー +.Fn getpriority +と +.Fn setpriority +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er ESRCH +指定された +.Fa which +と +.Fa who +の値を使用しているプロセスが見つかりませんでした。 +.It Bq Er EINVAL +.Fa which +引数が +.Dv PRIO_PROCESS , +.Dv PRIO_PGRP +または +.Dv PRIO_USER +のどれでもありませんでした。 +.El +.Pp +.Bl -tag -width Er +上記のエラーだけでなく、 +.Fn setpriority +は次の場合に失敗します: +.It Bq Er EPERM +プロセスは検出されたものの、その実効 ID も実ユーザ ID の +どちらも、呼び出し側の実効ユーザ ID に一致しませんでした。 +.It Bq Er EACCES +スーパユーザでないものがプロセスの優先順位を下げようとしました。 +.El +.Sh 関連項目 +.Xr nice 1 , +.Xr fork 2 , +.Xr renice 8 +.Sh 歴史 +.Fn getpriority +システムコールは +.Bx 4.2 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/getrlimit.2 b/documentation/manual-pages/ja/man2/getrlimit.2 new file mode 100644 index 0000000000..0a0aef9003 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getrlimit.2 @@ -0,0 +1,192 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getrlimit.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getrlimit.2,v 1.23 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 13, 2004 +.Dt GETRLIMIT 2 +.Os +.Sh 名称 +.Nm getrlimit , +.Nm setrlimit +.Nd 最大システムリソース消費を制御する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/time.h +.In sys/resource.h +.Ft int +.Fn getrlimit "int resource" "struct rlimit *rlp" +.Ft int +.Fn setrlimit "int resource" "const struct rlimit *rlp" +.Sh 解説 +現在のプロセス、およびそれが作成する各プロセスによるシステムリソースの +消費限度は、 +.Fn getrlimit +システムコールで取得することができ、 +.Fn setrlimit +システムコールで設定できます。 +.Pp +.Fa resource +引数は次のうちの 1 つです: +.Bl -tag -width RLIMIT_FSIZEAA +.It Dv RLIMIT_AS +プロセスがマップすることを許可される仮想メモリ +の最大量 (バイト単位)。 +.It Dv RLIMIT_CORE +作成できる +.Xr core 5 +ファイルの最大サイズ (バイト単位)。 +.It Dv RLIMIT_CPU +各プロセスが使用する CPU 時間の最大量 (秒単位)。 +.It Dv RLIMIT_DATA +プロセス用のデータセグメントの最大サイズ (バイト単位)。 +これは、プログラムがそのブレークを +.Xr sbrk 2 +関数でどのくらい遠くまで延長できるかを定義します。 +.It Dv RLIMIT_FSIZE +作成できるファイルの最大サイズ (バイト単位)。 +.It Dv RLIMIT_MEMLOCK +プロセスが +.Xr mlock 2 +システムコールを使用して、プロセスをメモリにロックできる +最大サイズ (バイト単位)。 +.It Dv RLIMIT_NOFILE +このプロセスが開けるファイルの最大数。 +.It Dv RLIMIT_NPROC +このユーザ ID が同時に利用できるプロセスの最大数。 +.It Dv RLIMIT_RSS +増加させて良いプロセスの常駐セットサイズの最大サイズ (バイト単位)。 +これはプロセスに与えられる物理メモリの量に制限を課します。 +メモリが逼迫してシステムがメモリを回収する際に、 +宣言された常駐セットサイズを越えるプロセスを回収対象として選択します。 +.It Dv RLIMIT_SBSIZE +このユーザが使用できるソケットバッファの最大サイズ (バイト単位)。 +このサイズは、ユーザがいつでも保持できるネットワークメモリ量を +制限します。 +したがって mbuf の使用量も制限されます。 +.It Dv RLIMIT_STACK +プロセスのスタックセグメントの最大サイズ (バイト数)。 +これによって、 +プログラムのスタックセグメントをどのくらい延長できるか定義できます。 +スタック延長はシステムによって自動的に実行されます。 +.El +.Pp +リソースリミットはソフトリミットおよびハードリミットとして指定されます。 +ソフトリミットを越えた場合、プロセスはシグナルを受信する可能性があります +(例えば、CPU 時間またはファイルサイズを越えた場合) が、 +ハードリミットに到達する (またはリソースリミットを修正する) +まで実行を継続することはできます。 +.Vt rlimit +構造体を使用してリソースのハードリミットとソフトリミットを指定できます。 +.Bd -literal -offset indent +struct rlimit { + rlim_t rlim_cur; /* 現在の (ソフト) リミット */ + rlim_t rlim_max; /* rlim_cur の最大値 */ +}; +.Ed +.Pp +スーパユーザだけがリミットの最大値を大きくできます。 +他のユーザは 0 から +.Fa rlim_max +の範囲内で +.Fa rlim_cur +を変更するか、または +.Fa rlim_max +を下げられるだけです (撤回はできません)。 +.Pp +リミットを +.Dq 無制限 +にする値は +.Dv RLIM_INFINITY +として定義されます。 +.Pp +この情報はプロセスごとの情報に保存されるので、 +シェルが将来作成するすべてのプロセスに +このシステムコールが影響を及ぼすためには、 +このシステムコールをシェルが直接実行する必要があります。 +このため +.Ic limit +は +.Xr csh 1 +の組み込みコマンドになっているのです。 +.Pp +システムは、通常の方法でリミットを超えようとするときに、 +データまたはスタック空間を延長することを拒絶します。 +データ空間リミットに到達すると +.Xr brk 2 +関数は処理に失敗します。 +スタックリミットに到達すると、プロセスはセグメント例外 +.Pq Dv SIGSEGV +を受信します。 +シグナルスタックを使用するハンドラによって +このシグナルが捕捉されない場合、このシグナルはプロセスを抹消します。 +.Pp +プロセスのソフトリミットより大きなファイルを +作成するファイルの入出力操作をすると書込みは失敗し、シグナル +.Dv SIGXFSZ +が生成されます。 +通常、これによってプロセスは終了しますが、捕捉することもできます。 +CPU 時間のソフトリミットを越えたとき、シグナル +.Dv SIGXCPU +が障害を起こしているプロセスに送信されます。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fn getrlimit +および +.Fn setrlimit +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa rlp +で指定したアドレスが不正です。 +.It Bq Er EPERM +.Fn setrlimit +に指定されたリミットがリミットの最大値を上昇させようとしましたが、 +呼び出し側はスーパユーザではありません。 +.El +.Sh 関連項目 +.Xr csh 1 , +.Xr quota 1 , +.Xr quotactl 2 , +.Xr sigaltstack 2 , +.Xr sigvec 2 , +.Xr sysctl 3 , +.Xr ulimit 3 +.Sh 歴史 +.Fn getrlimit +システムコールは +.Bx 4.2 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/getrusage.2 b/documentation/manual-pages/ja/man2/getrusage.2 new file mode 100644 index 0000000000..fb88de92c2 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getrusage.2 @@ -0,0 +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 ライブラリ +.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/documentation/manual-pages/ja/man2/getsid.2 b/documentation/manual-pages/ja/man2/getsid.2 new file mode 100644 index 0000000000..be48906676 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getsid.2 @@ -0,0 +1,81 @@ +.\" Copyright (c) 1997 Peter Wemm <peter@FreeBSD.org> +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/getsid.2,v 1.10 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd August 19, 1997 +.Dt GETSID 2 +.Os +.Sh 名称 +.Nm getsid +.Nd プロセスセッションを得る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft pid_t +.Fn getsid "pid_t pid" +.Sh 解説 +.Fn getsid +は +.Fa pid +によって識別されるプロセスのセッション ID を返します。 +.Fa pid +が 0 の場合、 +.Fn getsid +は現在のプロセスのセッション ID を返します。 +.Sh 戻り値 +処理が正常に完了すると、 +.Fn getsid +システムコールは指定されたプロセスのセッション ID を返します。 +そうでない場合は値 -1 が返され、エラーを示すために +.Fa errno +が設定されます。 +.Sh エラー +.Fn getsid +システムコールは次の場合を除いて正常に完了します: +.Bl -tag -width Er +.It Bq Er ESRCH +.Fa pid +で指定されたプロセス ID を持つプロセスがない場合 +.El +.Pp +実装によっては、このシステムコールを呼び出しプロセスと +同じセッション ID を持つプロセスに制限する可能性が +あることに注意してください。 +.Sh 関連項目 +.Xr getpgid 2 , +.Xr getpgrp 2 , +.Xr setpgid 2 , +.Xr setsid 2 , +.Xr termios 4 +.Sh 歴史 +.Fn getsid +システムコールは +.Fx 3.0 +ではじめて登場しました。 +.Fn getsid +システムコールは +.At V +での使用法に由来しています。 diff --git a/documentation/manual-pages/ja/man2/getsockname.2 b/documentation/manual-pages/ja/man2/getsockname.2 new file mode 100644 index 0000000000..ac5837cf13 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getsockname.2 @@ -0,0 +1,94 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getsockname.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getsockname.2,v 1.24 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt GETSOCKNAME 2 +.Os +.Sh 名称 +.Nm getsockname +.Nd ソケットの名前を得る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn getsockname "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen" +.Sh 解説 +.Fn getsockname +システムコールは指定のソケットについて現在の +.Fa name +を返します。 +.Fa namelen +引数は、 +.Fa name +が指す空間の大きさを示すように初期化しておく必要があります。 +戻る時には返された名前の実際のサイズ (バイト単位) が入ります。 +.Sh 戻り値 +.Rv -std getsockname +.Sh エラー +呼び出しは、次の場合を除いて正常に完了します: +.Bl -tag -width Er +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ECONNRESET +接続が通信相手によってリセットされました。 +.It Bq Er ENOTSOCK +引数 +.Fa s +はソケットではなくファイルです。 +.It Bq Er ENOBUFS +操作を実行するためにシステム内で利用できるリソースが不足しています。 +.It Bq Er EFAULT +.Fa name +引数が、プロセスアドレス空間の有効な部分内でないメモリを +指しています。 +.El +.Sh 関連項目 +.Xr bind 2 , +.Xr getpeername 2 , +.Xr socket 2 +.Sh バグ +UNIX ドメイン内のソケットにバインドされた名前にはアクセスできません。 +この場合 +.Fn getsockname +は、長さが 0 の名前を返します。 +.Sh 歴史 +.Fn getsockname +システムコールは +.Bx 4.2 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/getsockopt.2 b/documentation/manual-pages/ja/man2/getsockopt.2 new file mode 100644 index 0000000000..c563580010 --- /dev/null +++ b/documentation/manual-pages/ja/man2/getsockopt.2 @@ -0,0 +1,400 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95 +.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.31 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd May 2, 1995 +.Dt GETSOCKOPT 2 +.Os +.Sh 名称 +.Nm getsockopt , +.Nm setsockopt +.Nd ソケットのオプションの取得と設定 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn getsockopt "int s" "int level" "int optname" "void * restrict optval" "socklen_t * restrict optlen" +.Ft int +.Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen" +.Sh 解説 +.Fn getsockopt +と +.Fn setsockopt +システムコールは、ソケットに対応する +.Em オプション +を操作します。 +オプションは複数のプロトコルレベルに存在する可能性があります。 +これらは必ず最上位の +.Dq ソケット +レベルに存在します。 +.Pp +ソケットオプションを操作する際は、オプションが常駐するレベル +およびオプションの名前を指定する必要があります。 +ソケットレベルでオプションを操作するには +.Fa level +を +.Dv SOL_SOCKET +として指定します。 +他のレベルでオプションを操作するには、 +オプションを制御している適切なプロトコルのプロトコル番号を指定します。 +例えば、オプションが +.Tn TCP +プロトコルによって解釈されることを指示するには、 +.Fa level +を +.Tn TCP +のプロトコル番号に設定する必要があります。 +.Xr getprotoent 3 +を参照してください。 +.Pp +.Fa optval +と +.Fa optlen +引数は、 +.Fn setsockopt +がオプション値にアクセスするために使用されます。 +.Fn getsockopt +の場合、これらは要求されたオプションの値が返される +バッファを識別します。 +.Fn getsockopt +の場合、 +.Fa optlen +は値と結果の引数であり、初期には +.Fa optval +の指すバッファのサイズが入っており、戻り時に修正されて +返された値の実際のサイズを示すようになります。 +オプション値を指定しないか、またはオプション値が返されない場合、 +.Fa optval +に NULL を指定してもかまいません。 +.Pp +.Fa optname +引数および指定のオプションは、解釈されずに、 +解釈用の該当プロトコルモジュールに渡されます。 +インクルードファイル +.In sys/socket.h +には後述するソケットレベルオプション用の定義が入っています。 +他のプロトコルレベルのオプションは形式と名称がさまざまです。 +マニュアルのセクション 4 の該当するエントリを参照してください。 +.Pp +ほとんどのソケットレベルのオプションは +.Fa optval +用に +.Vt int +引数を使用します。 +.Fn setsockopt +の場合、ブール演算を有効にするためには引数は 0 でない必要があり、 +オプションを無効にする場合は 0 である必要があります。 +.Dv SO_LINGER +は、 +.In sys/socket.h +で定義された +.Vt "struct linger" +引数を使用します。 +これは、目的の状態のオプションとリンガ間隔 (後述) を指定します。 +.Dv SO_SNDTIMEO +と +.Dv SO_RCVTIMEO +は、 +.In sys/time.h +で定義された +.Vt "struct timeval" +引数を使用します。 +.Pp +以降のオプションがソケットレベルで認識されます。 +別記した場合を除いて、各オプションが +.Fn getsockopt +で調べられ、 +.Fn setsockopt +で設定されます。 +.Bl -column SO_ACCEPTFILTER -offset indent +.It Dv SO_DEBUG Ta "デバッグ情報の記録を有効にします" +.It Dv SO_REUSEADDR Ta "ローカルアドレスの再使用を有効にします" +.It Dv SO_REUSEPORT Ta "重複したアドレスとポートのバインドを有効にします" +.It Dv SO_KEEPALIVE Ta "接続を保持することを有効にします" +.It Dv SO_DONTROUTE Ta "発信メッセージについて経路設定バイパスを有効にします" +.It Dv SO_LINGER Ta "データが存在する場合はクローズで遅延します" +.It Dv SO_BROADCAST Ta "ブロードキャストメッセージを送信するパーミッションを有効にします" +.It Dv SO_OOBINLINE Ta "バンド内でのバンド外データの受信を有効にします" +.It Dv SO_SNDBUF Ta "出力用のバッファサイズを設定します" +.It Dv SO_RCVBUF Ta "入力用のバッファサイズを設定します" +.It Dv SO_SNDLOWAT Ta "出力用の最小カウントを設定します" +.It Dv SO_RCVLOWAT Ta "入力用の最小カウントを設定します" +.It Dv SO_SNDTIMEO Ta "出力についてのタイムアウト値を設定します" +.It Dv SO_RCVTIMEO Ta "入力についてのタイムアウト値を設定します" +.It Dv SO_ACCEPTFILTER Ta "待ち受けソケットでの accept フィルタを設定します" +.It Dv SO_TYPE Ta "ソケットのタイプを取得します (取得のみ)" +.It Dv SO_ERROR Ta "ソケットのエラーを取得してクリアします (取得のみ)" +.El +.Pp +.Dv SO_DEBUG +は下層のプロトコルモジュール内でデバッグを有効にします。 +.Dv SO_REUSEADDR +は、 +.Xr bind 2 +システムコールで指定されたアドレスを検証するのに使用する規則で、 +ローカルアドレスの再利用が可能であることを示します。 +.Dv SO_REUSEPORT +は、ポートをバインドする前の複数のプロセスがすべて +.Dv SO_REUSEPORT +を設定している場合に、 +複数のプロセスによる完全に重複したバインドが可能になるようにします。 +このオプションは、プログラムの複数のインスタンスそれぞれが、 +バインドされたポートを宛先とする UDP/IP マルチキャストまたは +ブロードキャストのデータグラムを受信できるようにします。 +.Dv SO_KEEPALIVE +は接続されたソケット上でメッセージの周期的な送信を有効にします。 +接続された一方がこれらのメッセージに応答できない場合は +接続が破壊されていると考えられ、ソケットを使用しているプロセスは +データを送信しようとするときに +.Dv SIGPIPE +シグナルによって通知を受けます。 +.Dv SO_DONTROUTE +は発信メッセージが標準の経路設定機能をバイパスする必要があることを示します。 +代わりに、メッセージは、宛先アドレスのネットワーク部分に従って +該当するネットワークインタフェースに転送されます。 +.Pp +.Dv SO_LINGER +は送信されていないメッセージがソケットの待ち行列にあり、しかも +.Xr close 2 +が実行される時に行われる処置を制御します。 +ソケットがデータの信頼できる配信を確約し、しかも +.Dv SO_LINGER +が設定されている場合、 +データを送信できるまで または情報を配信できない +(リンガ間隔と呼ばれるタイムアウト時間は、 +.Dv SO_LINGER +が要求されるときに +.Fn setsockopt +システムコール内で秒単位で指定されます) と判定するまで、システムはプロセスを +.Xr close 2 +上でブロックします。 +.Dv SO_LINGER +が無効の状態で +.Xr close 2 +が起動されると、システムは、プロセスが可能な限り迅速に処理を +継続できる方法でクローズ処理を行います。 +.Pp +オプション +.Dv SO_BROADCAST +は、ソケット上でブロードキャストデータグラムを送信するパーミッションを +要求します。 +ブロードキャストは、システムの初期バージョンでは特権操作でした。 +バンド外のデータをサポートするプロトコルで、 +.Dv SO_OOBINLINE +オプションは、バンド外のデータが受信された順番で通常の +データ入力待ち行列に配置されることを要求します。 +そして、これは +.Dv MSG_OOB +フラグなしに +.Xr recv 2 +呼び出しまたは +.Xr read 2 +呼び出しでアクセスできます。 +常に このオプションが設定されているかのように動作する +プロトコルもあります。 +.Dv SO_SNDBUF +と +.Dv SO_RCVBUF +は、それぞれ、出力および入力用に割り当てられる通常のバッファサイズを +調整するオプションです。 +バッファのサイズは、高ボリューム接続のために増加することができますし、 +着信データの可能なバックログを +制限するために減少させることもできます。 +システムはこれらの値について 1 つの絶対最大値を設定します。 +この最大値は +.Xr sysctl 3 +MIB 変数 +.Dq Li kern.ipc.maxsockbuf +によってアクセスできます。 +.Pp +.Dv SO_SNDLOWAT +は出力操作に最小カウントを設定するオプションです。 +ほとんどの出力操作は、送信用のプロトコルにデータを配信し、 +フロー制御のためにブロックしながら呼び出しによって与えられた +すべてのデータを処理します。 +ノンブロッキング出力操作は、ブロックなしのフロー制御に従って +許容される限界までデータを処理しますが、フロー制御が +最低基準値または要求全体のいずれか小さい方を処理することを許容しない +場合はデータを処理しません。 +ソケットへの書込み能力を試験する +.Xr select 2 +操作が真で返るのは、最低基準値を処理できる場合だけです。 +.Dv SO_SNDLOWAT +のデフォルト値はネットワーク効率性のために +適切なサイズ (多くの場合は 1024) に設定されます。 +.Dv SO_RCVLOWAT +は入力操作の最小カウントを設定するオプションです。 +一般に、受信呼び出しは、いくらかの (0 でない) データが +受信されるまでブロックしてから、利用できる量または +要求された量のいずれか少ない方とともに戻ります。 +.Dv SO_RCVLOWAT +のデフォルト値は 1 です。 +.Dv SO_RCVLOWAT +にもっと大きな値が設定されている場合、 +受信呼び出しのブロックは通常、最低基準値または +要求された量のいずれか小さい方が受信されるまで待機します。 +受信呼び出しは、エラーが発生したり、シグナルが捕らえられたり、 +または受信待ち行列内の次のデータのタイプが返されたものと異なる場合は、 +最低基準値より小さい値でも戻ることがあります。 +.Pp +.Dv SO_SNDTIMEO +は出力操作についてタイムアウト値を設定するオプションです。 +これは、出力操作完了の待機を制限するために使用される秒数、 +マイクロ秒数を +.Vt "struct timeval" +引数で指定します。 +送信操作が指定された時間以上ブロックされた場合、部分的なカウントで戻るか、 +またはデータが送信されていない場合はエラー +.Er EWOULDBLOCK +で戻ります。 +現在の実装では、このタイマは追加の各データがプロトコルに +配信されるたびに再起動され、これはサイズが出力用の最低基準値から +最高基準値の範囲に至る出力部分に適用されることを意味します。 +.Dv SO_RCVTIMEO +は入力操作についてタイムアウト値を設定するオプションです。 +これは入力操作完了の待機を制限するために使用される秒数、マイクロ秒数を +.Vt "struct timeval" +引数で指定します。 +現在の実装では、このタイマは追加のデータがプロトコルによって +受信されるたびに再起動されるので、 +制限は実際には休止期間のタイマとなります。 +追加のデータを受信することなく受信操作がこれだけの時間について +ブロックされた場合、短いカウントで戻るか、 +またはデータが受信されていない場合はエラー +.Er EWOULDBLOCK +で戻ります。 +.Pp +.Dv SO_ACCEPTFILTER +は、ソケット上に +.Xr accept_filter 9 +を置きます。 +これにより、待ち受けしているストリームソケットに入ってくる接続が +.Xr accept 2 +に渡される前にフィルタされることになります。 +念のため繰り返します。 +フィルタをソケット上にインストールする前に、ソケットに対して +.Xr listen 2 +呼び出す必要があります。 +そうしないと +.Fn setsockopt +システムコールが失敗します。 +.Bd -literal +struct accept_filter_arg { + char af_name[16]; + char af_arg[256-16]; +}; +.Ed +.Pp +.Fa optval +引数は +.Fa struct accept_filter_arg +を指さなくてはなりません。 +この構造体が +.Xr accept_filter 9 +を選択、設定します。 +.Fa af_name +引数は、アプリケーションが待ち受けソケット上に置きたいと思っている +accept フィルタの名前で埋めなくてはなりません。 +オプションの引数 +.Fa af_arg +は、 +.Fa af_name +で指定された accept フィルタに渡すことができるものです。 +これにより、ソケットに置かれる時にさらなる設定オプションを +提供します。 +NULL を +.Fa optval +中で渡すと、フィルタが削除されます。 +.Pp +最後に、 +.Dv SO_TYPE +と +.Dv SO_ERROR +は +.Fn getsockopt +でだけ使用されるオプションです。 +.Dv SO_TYPE +では +.Dv SOCK_STREAM +のようなソケットのタイプが返ります。 +これはスタートアップ時にソケットを継承するようなサーバに便利です。 +.Dv SO_ERROR +はソケット上で延期中のエラーを返し、エラー状態をクリアします。 +これは接続されたデータグラムソケット上の非同期的エラーをチェックしたり、 +その他の非同期エラーをチェックするのに使用できます。 +.Sh 戻り値 +.Rv -std +.Sh エラー +呼び出しは次の場合を除いて正常です: +.Bl -tag -width Er +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +引数 +.Fa s +がソケットではなくファイルです。 +.It Bq Er ENOPROTOOPT +指示されたレベルでオプションは存在しません。 +.It Bq Er EFAULT +.Fa optval +が指すアドレスがプロセスアドレス空間の有効な部分にありません。 +.Fn getsockopt +では、 +.Fa optlen +がプロセスアドレス空間の有効な部分でない場合も、 +このエラーが返される可能性があります。 +.It Bq Er EINVAL +待ち受けていないソケットに対して +.Xr accept_filter 9 +のインストールを試みました。 +.El +.Sh 関連項目 +.Xr ioctl 2 , +.Xr socket 2 , +.Xr getprotoent 3 , +.Xr sysctl 3 , +.Xr protocols 5 , +.Xr sysctl 8 , +.Xr accept_filter 9 +.Sh バグ +ソケットオプションのいくつかはシステムの低いレベルで処理される必要があります。 +.Sh 歴史 +.Fn getsockopt +システムコールは +.Bx 4.2 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/gettimeofday.2 b/documentation/manual-pages/ja/man2/gettimeofday.2 new file mode 100644 index 0000000000..a9304f2b90 --- /dev/null +++ b/documentation/manual-pages/ja/man2/gettimeofday.2 @@ -0,0 +1,132 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)gettimeofday.2 8.2 (Berkeley) 5/26/95 +.\" %FreeBSD: src/lib/libc/sys/gettimeofday.2,v 1.25 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd May 26, 1995 +.Dt GETTIMEOFDAY 2 +.Os +.Sh 名称 +.Nm gettimeofday , +.Nm settimeofday +.Nd 日付と時刻の取得 / 設定 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/time.h +.Ft int +.Fn gettimeofday "struct timeval *tp" "struct timezone *tzp" +.Ft int +.Fn settimeofday "const struct timeval *tp" "const struct timezone *tzp" +.Sh 解説 +.Bf -symbolic +注記: timezone はもはや使用されません。 +この情報はカーネルの外側に保持されます。 +.Ef +.Pp +システムが保持している現在のグリニッジ時刻と現在の時間帯は +.Fn gettimeofday +システムコールから得られ、 +.Fn settimeofday +システムコールで設定されます。 +時刻は 1970 年 1 月 1 日の深夜 (0 時) +からの秒数とマイクロ秒数で表現されます。 +システムクロックの分解能はハードウェアで決まり、 +時刻は継続的または +.Dq チック +単位で更新されます。 +.Fa tp +または +.Fa tzp +が NULL の場合、対応する時刻情報は返されず、また設定されません。 +.Pp +.Fa tp +と +.Fa tzp +の指す構造体は +.In sys/time.h +内に次のように定義されています: +.Pp +.Bd -literal +struct timeval { + long tv_sec; /* 1970 年 1 月 1 日からの秒数 */ + long tv_usec; /* およびマイクロ秒数 */ +}; + +struct timezone { + int tz_minuteswest; /* グリニッジから西方向への偏差 */ + int tz_dsttime; /* 夏時間補正のタイプ */ +}; +.Ed +.Pp +.Vt timezone +構造体は、ローカル時間帯 (グリニッジから西向きに分単位で測定) と +フラグを含みます。 +フラグが 0 でない場合は、1 年の適切な時期に +夏時間がその地域に適用されることを示します。 +.Pp +スーパユーザだけが時刻または時間帯を設定できます。 +システムが securelevel >= 2 +.Pf ( Xr init 8 +を参照) で実行される場合は、 +最大 1 秒のみ時刻を進めるか遅らせることしかできません。 +この制限が課されるのは、悪意のあるスーパユーザがファイルに任意の +タイムスタンプを設定するのを防止するためです。 +システム時刻は、システムが安全モードにあっても +.Xr adjtime 2 +システムコールを使用して制限なしに後方に調整できます。 +.Sh 戻り値 +.Rv -std +.Sh エラー +次のエラーコードが +.Va errno +に設定されます: +.Bl -tag -width Er +.It Bq Er EFAULT +引数アドレスが無効なメモリを参照しました。 +.It Bq Er EPERM +スーパユーザ以外のユーザが時刻を設定しようとしました。 +.El +.Sh 関連項目 +.Xr date 1 , +.Xr adjtime 2 , +.Xr clock_gettime 2 , +.Xr ctime 3 , +.Xr timeradd 3 , +.Xr clocks 7 , +.Xr timed 8 +.Sh 歴史 +.Fn gettimeofday +システムコールは +.Bx 4.2 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/getuid.2 b/documentation/manual-pages/ja/man2/getuid.2 new file mode 100644 index 0000000000..ffbc1531eb --- /dev/null +++ b/documentation/manual-pages/ja/man2/getuid.2 @@ -0,0 +1,88 @@ +.\" 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. +.\" +.\" @(#)getuid.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getuid.2,v 1.12 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt GETUID 2 +.Os +.Sh 名称 +.Nm getuid , +.Nm geteuid +.Nd ユーザ識別子を得る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.In sys/types.h +.Ft uid_t +.Fn getuid void +.Ft uid_t +.Fn geteuid void +.Sh 解説 +.Fn getuid +システムコールは、呼び出しプロセスの実ユーザ ID を返します。 +.Fn geteuid +システムコールは、呼び出しプロセスの実効ユーザ ID を返します。 +.Pp +実ユーザ ID は、プログラムを起動したユーザの ID です。 +実効ユーザ ID は、 +.Dq Em ユーザ ID 設定 +モードプロセスの実行中にプロセスに追加のパーミッションを与えるので、 +.Fn getuid +を使用して呼び出しプロセスの実ユーザ ID を把握します。 +.Sh エラー +.Fn getuid +システムコールと +.Fn geteuid +システムコールは必ず正常に完了するので、エラーを示すための戻り値はありません。 +.Sh 関連項目 +.Xr getgid 2 , +.Xr issetugid 2 , +.Xr setgid 2 , +.Xr setreuid 2 , +.Xr setuid 2 +.Sh 規格 +.Fn geteuid +システムコールと +.Fn getuid +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn getuid +関数と +.Fn geteuid +関数は +.At v7 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/i386_get_ioperm.2 b/documentation/manual-pages/ja/man2/i386_get_ioperm.2 new file mode 100644 index 0000000000..e39c4387ee --- /dev/null +++ b/documentation/manual-pages/ja/man2/i386_get_ioperm.2 @@ -0,0 +1,83 @@ +.\" Copyright (c) 1998 Jonathan Lemon +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/i386/sys/i386_get_ioperm.2,v 1.11 2004/07/02 23:52:11 ru Exp % +.\" +.\" $FreeBSD$ +.Dd July 27, 1998 +.Os +.Dt I386_GET_IOPERM 2 +.Sh 名称 +.Nm i386_get_ioperm , +.Nm i386_set_ioperm +.Nd i386 入出力ポート空間へのプロセスごとのアクセスを管理する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In machine/sysarch.h +.Ft int +.Fn i386_get_ioperm "unsigned int start" "unsigned int *length" "int *enable" +.Ft int +.Fn i386_set_ioperm "unsigned int start" "unsigned int length" "int enable" +.Sh 解説 +.Fn i386_get_ioperm +システムコールは、プロセスの入出力ポート空間についてのパーミッションを +.Fa *enable +引数内に返します。 +ポートの範囲は +.Fa start +で開始し、連続エントリの数が +.Fa *length +内に返されます。 +.Pp +.Fn i386_set_ioperm +システムコールは、 +.Fa start +引数と +.Fa length +引数によって記述された入出力ポートの範囲へのアクセスを +.Fa enable +引数で指定された状態に設定します。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fn i386_get_ioperm +と +.Fn i386_set_ioperm +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa start +または +.Fa length +引数に無効な範囲が指定されました。 +.It Bq Er EPERM +i386_set_ioperm の呼び出し側がスーパユーザではありませんでした。 +.El +.Sh 関連項目 +.Xr io 4 +.Sh 作者 +このマニュアルページは +.An Jonathan Lemon +が作成しました。 diff --git a/documentation/manual-pages/ja/man2/i386_get_ldt.2 b/documentation/manual-pages/ja/man2/i386_get_ldt.2 new file mode 100644 index 0000000000..10930b413c --- /dev/null +++ b/documentation/manual-pages/ja/man2/i386_get_ldt.2 @@ -0,0 +1,131 @@ +.\" Copyright (c) 1980, 1991 Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" from: @(#)fork.2 6.5 (Berkeley) 3/10/91 +.\" %FreeBSD: src/lib/libc/i386/sys/i386_get_ldt.2,v 1.21 2004/07/02 19:07:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd September 20, 1993 +.Dt I386_GET_LDT 2 +.Os +.Sh 名称 +.Nm i386_get_ldt , +.Nm i386_set_ldt +.Nd i386 プロセスごとのローカル記述子テーブルエントリを管理する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In machine/segments.h +.In machine/sysarch.h +.Ft int +.Fn i386_get_ldt "int start_sel" "union descriptor *descs" "int num_sels" +.Ft int +.Fn i386_set_ldt "int start_sel" "union descriptor *descs" "int num_sels" +.Sh 解説 +.Fn i386_get_ldt +システムコールはプロセスの LDT の中にある i386 記述子のリストを返します。 +.Fn i386_set_ldt +システムコールは現在のプロセスのための i386 記述子のリストを、 +そのプロセスの LDT に設定します。 +両方のルーチンは、開始するセレクタ番号の +.Fa start_sel +と、設定する記述子の入った、または記述子が返されるメモリの配列の +.Fa descs +および設定または返されるエントリ数の +.Fa num_sels +を受け取ります。 +.Pp +引数 +.Fa descs +は、 +.In i386/segments.h +で定義されている +segment_descriptor または gate_descriptor であることができます。 +これらの構成要素は、アーキテクチャに対応して +ばらばらになったビットフィールドとして定義されているので、 +それらを組み立てる際には注意を払う必要があります。 +.Pp +.Fa start_sel +が +.Em LDT_AUTO_ALLOC +で、 +.Fa num_sels +が 1 で、 +.Fa descs +によって指される記述子が正当である場合には、 +.Fn i386_set_ldt +は記述子を割り当てて、そのセレクタ番号を返します。 +.Pp +.Fa num_descs +が 1 で、 +.Fa start_sels +が有効で、 +.Fa descs +が NULL の場合には、 +.Fn i386_set_ldt +はその記述子を開放します (後でまた再割り当てできるようにします)。 +.Pp +.Fa num_descs +が 0 で、 +.Fa start_sels +が 0 で、 +.Fa descs +が NULL の場合には特別な場合として、 +.Fn i386_set_ldt +は全ての記述子を開放します。 +.Sh 戻り値 +正常に完了した場合、 +.Fn i386_get_ldt +は現在 LDT 内にある記述子の数を返します。 +.Fn i386_set_ldt +システムコールは最初のセレクタセットを返します。 +記述子がカーネルによって割り当てられた場合には、その数が返されます。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn i386_get_ldt +と +.Fn i386_set_ldt +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa start_sel +または +.Fa num_sels +について不適切な値が使用されました。 +.It Bq Er EACCES +呼び出し側が保護機構を欺くかまたは障害を起こす記述子を使おうとしました。 +.El +.Sh 関連項目 +i386 Microprocessor Programmer's Reference Manual, Intel +.Sh 警告 +これを使用してプロセスをまったくダメにすることができます。 diff --git a/documentation/manual-pages/ja/man2/i386_vm86.2 b/documentation/manual-pages/ja/man2/i386_vm86.2 new file mode 100644 index 0000000000..21c59c9a05 --- /dev/null +++ b/documentation/manual-pages/ja/man2/i386_vm86.2 @@ -0,0 +1,129 @@ +.\" Copyright (c) 1998 Jonathan Lemon +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/i386/sys/i386_vm86.2,v 1.15 2003/05/22 13:02:27 ru Exp % +.\" +.\" $FreeBSD$ +.Dd July 27, 1998 +.Os +.Dt I386_VM86 2 +.Sh 名称 +.Nm i386_vm86 +.Nd vm86 に関連する関数を制御する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In machine/sysarch.h +.In machine/vm86.h +.Ft int +.Fn i386_vm86 "int function" "void *data" +.Sh 解説 +.Fn i386_vm86 +システムコールは vm86 に関連するさまざまな関数を呼び出すのに使用します。 +.Fa function +引数は次の値の内の 1 つにできます。 +.Bl -tag -offset indent -width VM86_SET_VME +.It Dv VM86_INIT +カーネルのプロセス用 vm86 パラメータ領域を初期化し、プロセスが vm86 呼び出しを +できるようにします。 +.Fa data +引数は次の構造体を指します。 +.Bd -literal +struct vm86_init_args { + int debug; + int cpu_type; + u_char int_map[32]; +}; +.Ed +.Pp +.Fa debug +引数はデバッグコードをオンにするために使用されます。 +.Fa cpu_type +引数はエミュレート中のタイプの CPU を制御するものですが、 +現時点では実装されていません。 +.Fa int_map +引数は、vm86 割り込みを vm86 モードで処理する必要があるか、またはプロセスに +反映して戻される必要があるかどうかを決定するビットマップです。 +.Em N 番め +のビットが設定されている場合、割り込みはプロセスに反映されます。 +そうでない場合、 vm86 割り込みテーブルによってディスパッチされます。 +.It Dv VM86_INTCALL +プロセスが vm86 割り込みハンドラを呼び出せるようにします。 +これは効果的に INT 命令をシミュレートします。 +.Fa data +は下記の構造体を指し示しているべきです: +.Bd -literal +struct vm86_intcall_args { + int intnum; + struct vm86frame vmf; +}; +.Ed +.Pp +.Fa intnum +はシミュレートされた呼び出しのための INT のオペランドを指定します。 +例えば、値 0x10 は VGA BIOS への呼び出しのためによく使用されます。 +.Fa vmf +は割り込みハンドラのための呼び出し規約に従って、CPU のレジスタを +初期化するために使用されます。 +.It Dv VM86_GET_VME +Pentium(r) プロセッサの VME (仮想 8086 モード拡張) フラグ +である CR4 の ビット 0 の現在の状態を取り出すために使用されます。 +.Fa data +は下記を指し示すように初期化されるべきです: +.Bd -literal +struct vm86_vme_args { + int state; /* 状態 */ +}; +.Ed +.Pp +.Fa state +は戻る時に VME フラグの状態が入ります。 +.\" .It Dv VM86_SET_VME +.El +.Pp +vm86 モードに入るには、vm86 用に正しく設定したマシンコンテキスト、そして +.Dv PSL_VM +ビットを設定して +.Xr sigreturn 2 +を呼び出します。 +シグナルの配信時に制御がプロセスに戻ります。 +.Sh 戻り値 +.Rv -std i386_vm86 +.Sh エラー +.Fn i386_vm86 +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +カーネルに vm86 サポートがないか、または無効な関数が指定されました。 +.It Bq Er ENOMEM +カーネルデータ構造体を初期化するのに十分なメモリがありません。 +.El +.Sh 作者 +.An -nosplit +このマニュアルページは +.An Jonathan Lemon +が書き、 +.An Bruce M Simpson +が更新しました。 diff --git a/documentation/manual-pages/ja/man2/intro.2 b/documentation/manual-pages/ja/man2/intro.2 new file mode 100644 index 0000000000..726f5d82ec --- /dev/null +++ b/documentation/manual-pages/ja/man2/intro.2 @@ -0,0 +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.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 +.\"<more later...> +.Sh 戻り値 +ほとんどすべてのシステムコールが外部識別子 errno によって参照される +エラー番号を備えています。 +.In sys/errno.h +内でこの識別子は次のように定義されています。 +.Pp +.Dl extern int * __error(); +.Dl #define errno (* __error()) +.Pp +.Va __error() +関数は、初期スレッド以外のスレッドについては、スレッドに固有な構造体の +フィールドを指すポインタを返します。 +初期スレッドと非スレッドプロセスの場合、 +.Va __error() +は、以前の定義と互換性のあるグローバル変数 +.Va errno +を指すポインタを返します。 +.Pp +システムコールは、エラーを検出すると、障害を示す整数値 (通常は -1) を返し、 +それに応じて変数 +.Va errno +を設定します。 +<これにより、-1 を受け取ったときに障害を解釈し、 +それに応じた行動をとることを可能にします。> +呼び出しが正常に完了した場合は +.Va errno +が設定されることはありません。 +いったん設定されると、別のエラーが起きるまでそのままです。 +これはエラーの後でだけ調べるべきです。 +多くのシステムコールがこれらのエラー番号の意味を過重にしており、 +意味は呼び出しのタイプと状況に従って解釈する必要があることに注意してください。 +.Pp +以降に示すのはエラーの完全なリストであり、これらの名前は +.In sys/errno.h +に記載されています。 +.Bl -hang -width Ds +.It Er 0 Em "Undefined error: 0" . +「未定義のエラー: 0」 +未使用。 +.It Er 1 EPERM Em "Operation not permitted" . +「操作が許されません」 +適切な特権をもつプロセスに限定された操作、 +またはファイルその他のリソースの所有者に +限定された操作を実行しようとしました。 +.It Er 2 ENOENT Em "No such file or directory" . +「そのようなファイルまたはディレクトリはありません」 +指定のパス名の構成要素が存在しないか、またはパス名が空の文字列でした。 +.It Er 3 ESRCH Em "No such process" . +「そのようなプロセスはありません」 +指定のプロセス ID に対応するプロセスが見つかりませんでした。 +.It Er 4 EINTR Em "Interrupted system call" . +「関数呼び出しが割り込まれました」 +割り込み可能な関数の実行中に、非同期シグナル (たとえば、 +.Dv SIGINT +または +.Dv SIGQUIT ) +がプロセスによって捕らえられました。 +シグナルハンドラが正常に戻ると、 +割り込みされたシステムコールがエラー状態を返したように見えます。 +.It Er 5 EIO Em "Input/output error" . +「入出力エラーです」 +何らかの物理的な入力エラーまたは出力エラーが起きました。 +このエラーは、同じファイル記述子に対する操作が次に行われるまで報告されず、 +後続のエラーによって失われる (上書きされる) 可能性があります。 +.It Er 6 ENXIO Em "Device not configured" . +「デバイスが準備されていません」 +存在しないデバイスを参照している特殊ファイルへの入出力が行われたか、 +またはデバイスの制限を越えた要求が行われました。 +このエラーは、テープドライブがオンラインでない場合や、 +またはディスクパックがドライブにロードされていない場合などにも +発生する可能性があります。 +.It Er 7 E2BIG Em "Argument list too long" . +「引数のリストが長すぎます」 +新しいプロセスの引数リストと環境変数リストに使用されるバイト数が、 +現在の限界である 65536 バイト +.In ( sys/param.h +内の +.Dv NCARGS ) +を越えました。 +.It Er 8 ENOEXEC Em "Exec format error" . +「実行形式エラーです」 +実行を要求されたファイルのパーミッションは適切でしたが、 +実行可能ファイルとして要求される形式ではありませんでした。 +.It Er 9 EBADF Em "Bad file 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 15 ENOTBLK Em "Block device required" . +「ブロックデバイスが要求されています」 +ブロックデバイス操作が、非ブロックデバイスまたはファイルについて +試みられました。 +.It Er 16 EBUSY Em "Device busy" . +「デバイスがビジー状態です」 +その時点で使用されているシステムリソースを、 +その要求と干渉するであろう方法で使おうとしました。 +.It Er 17 EEXIST Em "File exists" . +「ファイルが存在します」 +すでに存在するファイルが不適切なコンテキストで指定されました。 +たとえば、 +.Xr link 2 +システムコールにおける新しいリンク名としてです。 +.It Er 18 EXDEV Em "Cross-device link" . +「デバイスをまたぐリンクです」 +別のファイルシステム上のファイルへのハードリンクが +試みられました。 +.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 です。> +.Xr getdtablesize 2 +システムコールで現在の限界を取得できます。 +.It Er 25 ENOTTY Em "Inappropriate ioctl for device" . +「デバイスに不適切な ioctl です」 +ファイルまたは特殊デバイスに不適切な操作を要求する制御関数 +.Xr ( ioctl 2 +を参照) を試みました。 +.It Er 26 ETXTBSY Em "Text file busy" . +「テキストファイルがビジーです」 +別のプロセスによって書込み用にオープンされた +純粋プロシージャ (共有テキスト) ファイルから新しいプロセスを作ろうとしたか、 +または純粋プロシージャファイルが実行されている間に、書込みアクセスを要求する +.Xr open 2 +呼び出しが実行されました。 +.It Er 27 EFBIG Em "File too large" . +「ファイルが大きすぎます」 +ファイルのサイズが最大値を超過しました +(約 +.if t 2\u\s-231\s+2\d +.if n 2.1E9 +バイト)。 +.It Er 28 ENOSPC Em "No space left on device" . +「デバイスの空き領域不足です」 +該当するファイルシステムで新たなディスクブロックが利用できないために、 +通常ファイルへの +.Xr write 2 +処理、ディレクトリの作成、シンボリックリンクの作成、 +ディレクトリエントリの作成が失敗しました。 +または、該当するファイルシステムで新たな inode が利用できないために、 +新しく作成するファイルに対する inode の割り当てが失敗しました。 +.It Er 29 ESPIPE Em "Illegal seek" . +「不正なシークです」 +.Xr lseek 2 +システムコールがソケット、パイプ、または +.Tn FIFO +に対して実行されました。 +.It Er 30 EROFS Em "Read-only file system" . +「読取り専用ファイルシステムです」 +ファイルまたはディレクトリを変更しようとする試みが、 +その時点で読取り専用であるファイルシステムに対して行われました。 +.It Er 31 EMLINK Em "Too many links" . +「リンクが多すぎます」 +1 つのファイルについて許容されるハードリンクの最大数を超過しました +(1 ファイルにつきハードリンク数の限界は 32767 です)。 +.It Er 32 EPIPE Em "Broken pipe" . +「パイプが破壊されてました」 +データを読み取るプロセスのないパイプ、ソケット、または +.Tn FIFO +に対しての書込みです。 +.It Er 33 EDOM Em "Numerical argument out of domain" . +「数値引数が領域外です」 +数値入力引数が、数学関数の定義域の外側にありました。 +.It Er 34 ERANGE Em "Result too large" . +「結果が大き過ぎます」 +関数の数値結果が大きすぎて、利用できる場所に入りません +(おそらく精度を超過したのでしょう)。 +.It Er 35 EAGAIN Em "Resource temporarily unavailable" . +「リソースが一時的に利用できません」 +これは一時的な状況であり、後で同じルーチンを呼び出した時に +正常に完了する可能性があります。 +.It Er 36 EINPROGRESS Em "Operation now in progress" . +「操作が現在進行中です」 +完了するのに時間のかかる操作 +.Xr ( connect 2 +など) をノンブロッキングオブジェクトに対し試みました +.Xr ( fcntl 2 +を参照)。 +.It Er 37 EALREADY Em "Operation already in progress" . +「操作は既に進行中です」 +既に操作が進行中のノンブロッキングオブジェクトに対してさらに操作を試みました。 +.It Er 38 ENOTSOCK Em "Socket operation on non-socket" . +「ソケットでないものについてソケット操作を行いました」 +ここに書いてあるとおりです。 +.It Er 39 EDESTADDRREQ Em "Destination address required" . +「宛先アドレスが要求されています」 +ソケットに関する操作に際し、必要なアドレスが抜けています。 +.It Er 40 EMSGSIZE Em "Message too long" . +「メッセージが長すぎます」 +内部メッセージバッファ、または何らかのネットワーク上の制限より +大きなメッセージがソケットで送信されました。 +.It Er 41 EPROTOTYPE Em "Protocol wrong type for socket" . +「ソケットに対するプロトコルのタイプが間違っています」 +要求されたソケットタイプではサポートされないプロトコルが指定されました。 +たとえば、タイプ +.Dv SOCK_STREAM +では、 +.Tn ARPA +インターネット +.Tn UDP +プロトコルを使用できません。 +.It Er 42 ENOPROTOOPT Em "Protocol not available" . +「プロトコルが利用できません」 +.Xr getsockopt 2 +呼び出しまたは +.Xr setsockopt 2 +呼び出しで、間違ったオプションまたはレベルが指定されました。 +.It Er 43 EPROTONOSUPPORT Em "Protocol not supported" . +「プロトコルがサポートされていません」 +指定したプロトコルがシステム内に組み込まれていないか、 +またはそのプロトコルの実装が存在しません。 +.It Er 44 ESOCKTNOSUPPORT Em "Socket type not supported" . +「ソケットタイプがサポートされていません」 +指定したソケットタイプがシステム内に組み込まれてないか、 +またはそのソケットタイプの実装が存在しません。 +.It Er 45 EOPNOTSUPP Em "Operation not supported" . +「操作がサポートされていません」 +引数が指すオブジェクトのタイプは、指定した操作をサポートしていません。 +このエラーが起きるのは、通常は、ファイル記述子がこの操作を +サポートできないファイルまたはソケットを参照しているときです。 +たとえば、データグラムソケット上で接続を +.Em accept +しようしたときです。 +.It Er 46 EPFNOSUPPORT Em "Protocol family not supported" . +「プロトコルファミリがサポートされていません」 +指定したプロトコルファミリがシステムに組み込まれていないか、 +またはそのプロトコルファミリの実装が存在していません。 +.It Er 47 EAFNOSUPPORT Em "Address family not supported by protocol family" . +「アドレスファミリがプロトコルファミリによってサポートされていません」 +要求したプロトコルと互換性のないアドレスが使用されました。 +たとえば、 +.Tn ARPA +インターネットプロトコルで +.Tn NS +アドレスを使用できるとは必ずしも期待すべきではないでしょう。 +.It Er 48 EADDRINUSE Em "Address already in use" . +「アドレスが既に使用中です」 +各アドレスごとに、一度に 1 つだけを利用できます。 +.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 +サーバ上でファイルが削除されたか、 +または他の破滅的な何かが起きたことを示していると思われます。 +.It Er 72 EBADRPC Em "RPC struct is bad" . +「RPC 構造体が不良です」 +.Tn RPC +情報の交換が不成功でした。 +.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 +を参照)。 +プロセスの親プロセス ID は、 +最初はそれを作成したプロセスのプロセス ID となっています。 +そのプロセスを作成したプロセスが exit した場合、 +それぞれの子プロセスの親プロセス ID は、システムプロセス +.Xr init 8 +の ID に設定されます。 +.It "プロセスグループ (Process Group)" +アクティブなプロセスはそれぞれがあるプロセスグループのメンバであり、 +プロセスグループはプロセスグループ ID と呼ばれる +負でない整数によって識別されます。 +プロセスグループ ID はそのグループのリーダのプロセス ID です。 +このグループ化によって、 +関連づけられたプロセスの集団にシグナルを送る +.Xr ( termios 4 +を参照) ことや、 +.Xr csh 1 +のジョブ制御機構を可能にします。 +.It "セッション (Session)" +セッションは 1 つ以上のプロセスグループの集合です。 +セッションは +.Xr setsid 2 +の呼び出しが成功すると作成されます。 +これによって、呼び出したプロセスは、新規のセッションが +1 つだけ持つプロセスグループの唯一のメンバになります。 +.It "セッションリーダ (Session leader)" +.Xr setsid 2 +の呼び出しの成功によって、新しいセッションを作成したプロセスは、 +セッションリーダとして知られます。 +端末を自分が制御する端末 +.Xr ( termios 4 +を参照) として取得できるのは、セッションリーダだけです。 +.It "制御プロセス (Controlling process)" +制御端末を持つセッションリーダが制御プロセスです。 +.It "制御端末 (Controlling terminal)" +セッションに関連づけられている端末は、そのセッションとそのメンバに対する +制御端末として知られます。 +.It "端末プロセスグループ ID (Terminal Process Group ID)" +端末は、セッションリーダによって制御端末として取得されます。 +ひとたび端末がセッションに関連づけられると、 +端末プロセスグループ ID をプロセスグループの ID に設定することによって、 +そのセッション内のどのプロセスグループでも、 +フォアグラウンドに置くことができるようになります。 +この機能は、同じ端末をめぐり競合している複数のジョブの間で +調停を行うために用いられます +.Xr ( csh 1 +と +.Xr tty 4 +を参照)。 +.It "親のないプロセスグループ (Orphaned Process Group)" +プロセスグループは、ジョブ制御を行うシェルの制御下にない場合、 +.Em 親なしになった +とみなされます。 +より正確に言うと、そのプロセスグループのメンバはどれも、 +そのグループと同じセッションに属す親プロセスを持たず、かつ、 +親プロセスが別のプロセスグループに属す場合、 +そのプロセスグループは親なしになります。 +なお、プロセスが終了するとき、その子プロセスの親プロセスは +.Xr init 8 +となるように変更されます。 +そしてこれは別個のセッションになります。 +親のないプロセスグループのメンバの全てが、必ずしも +親のないプロセス (プロセスを作成したプロセスが終了した) +というわけではありません。 +この定義により、セッションリーダのプロセスグループは親なしになります。 +.It "実ユーザ ID と実グループID (Real User ID and Real Group ID) " +システム上の各ユーザは、実ユーザ ID と呼ばれる正の整数によって識別されます。 +.Pp +各ユーザは、1 つまたは複数のグループのメンバでもあります。 +これらのグループの 1 つは他のものから区別され、 +アカウンティング機能を実現するのに使用されます。 +この区別されたグループに対応する正の整数は、実グループ ID と呼ばれます。 +.Pp +すべてのプロセスは実ユーザ ID と実グループ ID を持っています。 +これらは、そのプロセスを作成したプロセスと等価な属性値を +使って初期化されます。 +.It "実効ユーザ ID、実効グループ ID、グループアクセスリスト (Effective User Id, Effective Group Id, and Group Access List)" +システムリソースへのアクセスは、実効ユーザ ID とグループアクセスリストという +2 つの値を使って決定されます。 +グループアクセスリストの最初のメンバは、実効グループ ID +としても知られています +(POSIX.1 では、グループアクセスリストは、補助グループ ID の +セットとして知られ、実効グループ ID がリストのメンバで +あるかどうかは未規定です)。 +.Pp +実効ユーザ ID と実効グループ ID は、最初はそれぞれ、 +プロセスの実ユーザ ID と実グループ ID です。 +いずれも (おそらくその先祖のいずれかが) ユーザ ID 設定ファイルまたは +グループ ID 設定ファイルを実行することにより変更することができます +.Xr ( execve 2 +を参照してください)。 +慣習で、実効グループ ID +(グループアクセスリストの最初のメンバ) は複製されるので、 +グループ ID 設定プログラムの実行の結果、もともと持っていた +(実) グループ ID が失われることはありません。 +.Pp +グループアクセスリストは、リソースへのアクセスが可能かどうかを +決定するためにだけ使用されるグループ ID の集合です。 +アクセスチェックは、以降の +``ファイルアクセスパーミッション'' +で説明するように行われます。 +.It "退避ユーザ ID と退避グループ ID (Saved Set User ID and Saved Set Group ID)" +プロセスが新しいファイルを実行するとき、ファイルがユーザ ID 設定であれば、 +実効ユーザ ID はそのファイルの所有者に設定され、 +ファイルがグループ ID 設定であれば、 +実効グループ ID (グループアクセスリストの最初の要素) は +ファイルのグループに設定されます。 +それからプロセスの実効ユーザ ID は退避ユーザ ID として記録され、 +プロセスの実効ユーザ ID は退避グループ ID として記録されます。 +これらの記録された値は、実 ID +.Xr ( setuid 2 +を参照) に戻った後で、実効ユーザ ID または実効グループ ID をこれらの +値に回復するために利用できます。 +(POSIX.1 では、退避ユーザ ID と退避グループ ID はオプションであり、 +setuid および setgid の内部で使用されますが、 +これはスーパユーザについて意図どおりには機能しません)。 +.It "スーパユーザ (super-user)" +実効ユーザ ID が 0 の場合、そのプロセスは +.Em スーパユーザ +プロセスとして認識され、特別な権利が認められます。 +.It "記述子 (Descriptor)" +.Xr open 2 , +.Xr dup 2 +によってファイルが参照されるとき、または +.Xr pipe 2 , +.Xr socket 2 , +.Xr socketpair 2 +によってソケットが作成されるときにシステムによって割り当てられる整数です。 +この整数は、指定のプロセスやその子プロセスから、 +そのファイルやソケットへのアクセスパスを一意に識別します。 +.It "ファイル名 (File Name)" +最高 +.Brq Dv NAME_MAX +文字からなる名前であって、通常ファイル、特殊ファイル、 +ディレクトリに名前を付けるのに使用されます。 +.Pp +これらの文字は、 +.Dv NUL +.Tn ( ASCII +0) +および +.Ql \&/ +文字 (スラッシュ、 +.Tn ASCII +47) を除く、 +任意の 8 ビット値から選択できます。 +.Pp +なお、一般に、ファイル名の一部として +.Ql \&* , +.Ql \&? , +.Ql \&[ , +.Ql \&] +を使用するのは賢明ではありません。 +シェルによってこれらの文字には特殊な意味がつけられるからです。 +.It "パス名 (Path Name)" +パス名は、 +.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/documentation/manual-pages/ja/man2/ioctl.2 b/documentation/manual-pages/ja/man2/ioctl.2 new file mode 100644 index 0000000000..9faadd94f4 --- /dev/null +++ b/documentation/manual-pages/ja/man2/ioctl.2 @@ -0,0 +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 番めの引数は従来から +.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/documentation/manual-pages/ja/man2/issetugid.2 b/documentation/manual-pages/ja/man2/issetugid.2 new file mode 100644 index 0000000000..1e67a57db4 --- /dev/null +++ b/documentation/manual-pages/ja/man2/issetugid.2 @@ -0,0 +1,105 @@ +.\" $OpenBSD: issetugid.2,v 1.7 1997/02/18 00:16:09 deraadt Exp $ +.\" +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/issetugid.2,v 1.13 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.\" +.Dd August 25, 1996 +.Dt ISSETUGID 2 +.Os +.Sh 名称 +.Nm issetugid +.Nd 現在のプロセスの uid または gid の変化による汚染状況 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn issetugid void +.Sh 解説 +.Fn issetugid +システムコールは、プロセスの環境またはメモリアドレス空間が +.Dq 汚染されている +と見なされる場合 1 を返し、そうでない場合は 0 を返します。 +.Pp +setuid または setgid ビットのどちらかが設定されたプロセスを +.Xr execve 2 +システムコールで実行した (そして結果として追加の特権が与えられた) 場合、 +あるいはプロセスの実ユーザ ID、実効ユーザ ID、退避ユーザ ID、 +もしくは実グループ ID、実効グループ ID、退避グループ ID のいずれかが +実行後に変更された場合、そのプロセスは汚染されていると見なされます。 +.Pp +このシステムコールは、ユーザから得られた情報を使用するのが +安全かどうかをライブラリルーチン (たとえば libc や libtermcap) が +信頼性を持って判定できるようにするために存在します。 +特に +.Xr getenv 3 +からの結果を、オペレーションの制御のために使用する場合には +疑いを持って見る必要があります。 +.Pp +.Dq 汚染された +状態は、 +.Xr fork 2 +システムコール (あるいは +.Xr popen 3 +のような fork を呼び出す他のライブラリコード) の結果として、 +子プロセスに継承されます。 +.Pp +別のプログラムを実行する準備をするときにすべての特権を +クリアするプログラムは、環境もリセットすると想定されます。 +したがって +.Dq 汚染された +状態は引き渡されません。 +setuid を開始するけれども汚染されていないプロセスを作成できる必要のある +.Xr su 1 +のようなプログラムにはこれは重要です。 +.Sh エラー +.Fn issetugid +システムコールは必ず正常に完了するので、エラーを示すための戻り値はありません。 +.Sh 関連項目 +.Xr execve 2 , +.Xr fork 2 , +.Xr setegid 2 , +.Xr seteuid 2 , +.Xr setgid 2 , +.Xr setregid 2 , +.Xr setreuid 2 , +.Xr setuid 2 +.Sh 歴史 +.Fn issetugid +システムコールは +.Ox 2.0 +ではじめて登場し、 +.Fx 3.0 +でも実装されました。 diff --git a/documentation/manual-pages/ja/man2/jail.2 b/documentation/manual-pages/ja/man2/jail.2 new file mode 100644 index 0000000000..741d59fecb --- /dev/null +++ b/documentation/manual-pages/ja/man2/jail.2 @@ -0,0 +1,134 @@ +.\" +.\"---------------------------------------------------------------------------- +.\""THE BEER-WARE LICENSE" (Revision 42): +.\"<phk@FreeBSD.ORG> wrote this file. As long as you retain this notice you +.\"can do whatever you want with this stuff. If we meet some day, and you think +.\"this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp +.\"---------------------------------------------------------------------------- +.\"%FreeBSD: src/lib/libc/sys/jail.2,v 1.27 2004/06/21 18:57:32 mpp Exp % +.\" +.\" $FreeBSD$ +.Dd April 8, 2003 +.Dt JAIL 2 +.Os +.Sh 名称 +.Nm jail , jail_attach +.Nd 現在のプロセスとその将来の子孫を閉じ込める +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/jail.h +.Ft int +.Fn jail "struct jail *jail" +.Ft int +.Fn jail_attach "int jid" +.Sh 解説 +.Fn jail +システムコールは牢屋をつくり、現在のプロセスをその中に閉じ込めます。 +.Pp +引数は牢屋を記述する構造体へのポインタです。 +.Bd -literal -offset indent +struct jail { + u_int32_t version; + char *path; + char *hostname; + u_int32_t ip_number; +}; +.Ed +.Pp +.Dq Li version +には使用する API のバージョンを定義します。 +今のところ 0 に設定します。 +.Pp +.Dq Li path +ポインタには牢屋のルートになるディレクトリを設定します。 +.Pp +.Dq Li hostname +ポインタには牢屋のホスト名を設定します。 +これは牢屋の中から変更できます。 +.Pp +.Dq Li ip_number +は牢屋に割り当てる IP 番号を設定します。 +.Pp +.Fn jail_attach +システムコールは、 +.Fa jid +によって識別される既存の jail を現在のプロセスにアタッチします。 +.Sh 戻り値 +成功の場合には、 +.Fn jail +は jail 識別子 (JID) と呼ばれる負ではない整数を返します。 +失敗の場合には \-1 を返し、そのエラーを示すために +.Va errno +を設定します。 +.Pp +.Rv -std jail_attach +.Sh 牢屋? +プロセスは一度牢屋に入れられると、それ自身とその子孫は牢屋から +逃れることはできません。 +.Pp +牢屋の中では +.Dq スーパユーザ +の概念はとても弱まっています。 +一般に全体が牢屋の中にあるわけではないものを牢屋の中から台無しにすることは +できないと考えられます。 +例えば +.Dq Li path +の下のディレクトリツリーは +.Dq Li "rm -rf /*" +も含めて、root が普通にできるように操作できますが、 +デバイス型特殊ノードは共有されたリソース (カーネルの中のデバイスドライバ) を +参照するので、新しく作ることはできません。 +プロセスにとっての実際の +.Dq セキュアレベル +は、グローバルな +.Dq セキュアレベル +と、jail 毎の +.Dq セキュアレベル +(存在する場合) の大きい方です。 +.Pp +IP 活動はすべて指定された IP 番号に制限されます。 +指定された IP 番号はネットワークインタフェースのうちの 1 つの別名で +あるべきです。 +.Pp +.Dq Li /proc/<pid>/status +を調べることで閉じ込められたプロセスを識別することができます。 +行末のフィールドが、閉じ込められていないプロセスではハイフン 1 つ、 +閉じ込められたプロセスでは現在牢屋に設定されているホスト名になります。 +.Sh エラー +.Fn jail +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +引数のバージョン番号が正しくありません。 +.El +.Pp +さらに +.Fn jail +は内部で +.Xr chroot 2 +を呼ぶので、全く同じ理由で失敗する可能性があります。 +詳しくは +.Xr chroot 2 +のマニュアルページを参照して下さい。 +.Sh 関連項目 +.Xr chdir 2 , +.Xr chroot 2 +.Sh 歴史 +.Fn jail +システムコールは +.Fx 4.0 +で登場しました。 +.Fn jail_attach +システムコールは +.Fx 5.1 +で登場しました。 +.Sh 作者 +jail の機能は +.An Poul-Henning Kamp +によって R&D Associates +.Dq Li http://www.rndassociates.com/ +のために書かれ、 +.Fx +に寄贈されました。 diff --git a/documentation/manual-pages/ja/man2/kenv.2 b/documentation/manual-pages/ja/man2/kenv.2 new file mode 100644 index 0000000000..76e1064136 --- /dev/null +++ b/documentation/manual-pages/ja/man2/kenv.2 @@ -0,0 +1,172 @@ +.\" +.\" Copyright (C) 2002 Chad David <davidc@FreeBSD.org>. 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(s), this list of conditions and the following disclaimer as +.\" the first lines of this file unmodified other than the possible +.\" addition of one or more copyright notices. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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/kenv.2,v 1.4 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd April 17, 2002 +.Dt KENV 2 +.Os +.Sh 名称 +.Nm kenv +.Nd カーネル環境 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In kenv.h +.Ft int +.Fn kenv "int action" "const char *name" "char *value" "int len" +.Sh 解説 +.Fn kenv +システムコールはカーネル環境変数を操作します。 +カーネル環境の中の全てのエントリをダンプする能力と同様に、ユーザランドで +よく知られている環境変数を取得、設定、設定解除する動作をサポートしています。 +.Pp +.Fa action +引数は、以下の中の 1 つを取ることが可能です: +.Bl -tag -width ".Dv KENV_UNSET" +.It Dv KENV_GET +カーネル環境変数に関連付けられた値を返します。 +その変数が見つからない場合には、\-1 が返されグローバル変数 +.Va errno +が +.Er ENOENT +に設定されます。 +.Fa value +に利用可能なバイト数のみがコピーされます。 +.It Dv KENV_SET +新しいカーネル環境変数を設定または追加します。 +このオプションはスーパユーザのみ利用可能です。 +.It Dv KENV_UNSET +カーネル環境変数 +.Fa name +を設定解除します。 +その変数が見つからなかった場合には、\-1 が返されグローバル変数 +.Va errno +が +.Er EINVAL +に設定されます。 +このオプションはスーパユーザのみ利用可能です。 +.It Dv KENV_DUMP +.Fa value +を埋め尽くすだけのカーネル環境変数をダンプします。 +.Fa value +が +.Dv NULL +の場合には、 +.Fn kenv +は環境変数全体をコピーするために必要なバイト数を返すでしょう。 +.El +.Pp +.Fa name +引数は作用されるべき環境変数の名前です。 +.Dv KENV_DUMP +の場合には、無視されます。 +.Pp +.Fa value +引数は、 +.Dv KENV_SET +の場合には環境変数 +.Fa name +に設定するべき値、または +.Dv KENV_DUMP +および +.Dv KENV_GET +の場合には +.Fn kenv +が返すデータをコピーするべき場所を指し示す値、のどちらかを含みます。 +.Fa value +が +.Dv NULL +で +.Dv KENV_DUMP +の場合には、 +.Fn kenv +は環境変数全体をコピーするために必要なバイト数を返すでしょう。 +.Pp +.Fa len +引数は +.Fa value +が指す記憶領域が何バイトかを示します。 +.Sh 戻り値 +.Dv KENV_SET +および +.Dv KENV_UNSET +で成功した場合には、 +.Fn kenv +システムコールは 0 を返します。 +.Dv KENV_DUMP +および +.Dv KENV_GET +で成功した場合には、 +.Fa value +にコピーされたバイト数を返します。 +エラーが発生した場合には、値 \-1 が返されグローバル変数 +.Va errno +がそのエラーを示すために設定されます。 +.Sh エラー +.Fn kenv +システムコールは、以下の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa action +引数が有効なオプションではありません。または +.Dv KENV_SET +のための +.Fa value +引数の長さが 1 未満です。 +.It Bq Er ENOENT +.Dv KENV_SET +または +.Dv KENV_UNSET +のための +.Fa name +の値が見つけられませんでした。 +.It Bq Er EPERM +スーパユーザではないユーザがカーネル環境変数を設定または +設定解除しようとしました。 +.It Bq Er EFAULT +ユーザ引数にコピーまたは値をコピーしようとしたときに、 +不正なアドレスに遭遇しました。 +.It Bq Er ENAMETOOLONG +ユーザによって与えられた変数の名前が +.Dv KENV_MNAMELEN +より長過ぎました、または変数の値が +.Dv KENV_MVALLEN +より長過ぎました。 +.El +.Sh 関連項目 +.Xr kenv 1 +.Sh 作者 +.An -nosplit +このマニュアルページは +.An Chad David Aq davidc@FreeBSD.org +が書きました。 +.Pp +.Fn kenv +システムコールは +.An Maxime Henrion Aq mux@FreeBSD.org +が書きました。 diff --git a/documentation/manual-pages/ja/man2/kill.2 b/documentation/manual-pages/ja/man2/kill.2 new file mode 100644 index 0000000000..b256535996 --- /dev/null +++ b/documentation/manual-pages/ja/man2/kill.2 @@ -0,0 +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 より大きい場合 : +.Fa sig +シグナルは ID が +.Fa pid +に等しいプロセスに送信されます。 +.\".It \&If Fa pid No \&is zero : +.It Fa pid No が 0 の場合 : +.Fa sig +シグナルはグループ ID が送信側のプロセスグループ ID と等しく、それについて +プロセスがパーミッションを持っているすべてのプロセスに送信されます。 +これは +.Xr killpg 2 +の変種です。 +.\".It \&If Fa pid No \&is -1 : +.It Fa pid No が -1 の場合 : +ユーザにスーパユーザの特権がある場合、システムプロセス +.Dv ( P_SYSTEM +フラグが設定されている)、ID が 1 のプロセス (通常は +.Xr init 8 ) +、 +およびシグナルを送信しているプロセスを +除くすべてのプロセスにシグナルが送信されます。 +ユーザがスーパユーザでない場合、シグナルを送信しているプロセスを除く、 +ユーザと同じ uid のすべてのプロセスにシグナルが送信されます。 +いずれかのプロセスにシグナルを送信できた場合、エラーは返されません。 +.El +.Pp +System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、 +プロセス番号の絶対値に等しいプロセスグループ ID を持つ +すべてのプロセスにシグナルが送信されます。 +これは +.Xr killpg 2 +の変種です。 +.Sh 戻り値 +.Rv -std kill +.Sh エラー +.Fn kill +システムコールは次の場合に処理に失敗し、シグナルは送信されません: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa sig +引数が有効なシグナル番号ではありません。 +.It Bq Er ESRCH +.Fa pid +で指定されたプロセスに対応するプロセスが検出できません。 +.It Bq Er ESRCH +プロセス ID は 0 として与えられたものの、 +送信プロセスにプロセスグループがありません。 +.It Bq Er EPERM +送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信プロセスの +実効ユーザ ID と一致しません。 +プロセスグループにシグナルを送信するとき、グループのメンバの +いずれかにシグナルを送信することができない場合、このエラーが返されます。 +.El +.Sh 関連項目 +.Xr getpgrp 2 , +.Xr getpid 2 , +.Xr killpg 2 , +.Xr sigaction 2 , +.Xr raise 3 , +.Xr init 8 +.Sh 規格 +.Fn kill +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn kill +関数は +.At v7 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/killpg.2 b/documentation/manual-pages/ja/man2/killpg.2 new file mode 100644 index 0000000000..43f9062f25 --- /dev/null +++ b/documentation/manual-pages/ja/man2/killpg.2 @@ -0,0 +1,95 @@ +.\" 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. +.\" +.\" @(#)killpg.2 8.1 (Berkeley) 6/2/93 +.\" %FreeBSD: src/lib/libc/compat-43/killpg.2,v 1.12 2002/12/19 09:40:21 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 2, 1993 +.Dt KILLPG 2 +.Os +.Sh 名称 +.Nm killpg +.Nd プロセスグループにシグナルを送信する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In signal.h +.Ft int +.Fn killpg "pid_t pgrp" "int sig" +.Sh 解説 +.Fn killpg +関数は、プロセスグループ +.Fa pgrp +にシグナル +.Fa sig +を送信します。 +シグナルのリストについては +.Xr sigaction 2 +を参照してください。 +.Fa pgrp +が 0 の場合、 +.Fn killpg +は、送信側プロセスのプロセスグループにシグナルを送信します。 +.Pp +送信側プロセスとプロセスグループのメンバが同じ実効ユーザ ID を持つか、 +または送信側がスーパユーザである必要があります。 +唯一の特殊なケースとして、継続シグナル SIGCONT は、 +現在のプロセスの子孫であればどのプロセスにでも送信できます。 +.Sh 戻り値 +.Rv -std killpg +.Sh エラー +.Fn killpg +関数は、次の場合に処理に失敗し、シグナルは送信されません: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa sig +引数が有効なシグナル番号ではありません。 +.It Bq Er ESRCH +.Fa pgrp +で指定したプロセスグループ内にプロセスが見つかりません。 +.It Bq Er ESRCH +プロセスグループとして 0 が指定されましたが、送信側プロセスに +プロセスグループがありません。 +.It Bq Er EPERM +送信側プロセスがスーパユーザでなく、1 つ以上のターゲットプロセスの +実効ユーザ ID が送信側プロセスの実効ユーザ ID と異なっています。 +.El +.Sh 関連項目 +.Xr getpgrp 2 , +.Xr kill 2 , +.Xr sigaction 2 +.Sh 歴史 +.Fn killpg +関数は +.Bx 4.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/kldfind.2 b/documentation/manual-pages/ja/man2/kldfind.2 new file mode 100644 index 0000000000..37ffe537f8 --- /dev/null +++ b/documentation/manual-pages/ja/man2/kldfind.2 @@ -0,0 +1,85 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/kldfind.2,v 1.16 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 3, 1999 +.Dt KLDFIND 2 +.Os +.Sh 名称 +.Nm kldfind +.Nd kld ファイルのファイル ID を返す +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/linker.h +.Ft int +.Fn kldfind "const char *file" +.Sh 解説 +.Fn kldfind +システムコールは、 +.Fa file +によって参照される kld ファイルのファイル ID を返します。 +.Sh 戻り値 +.Fn kldfind +システムコールは、 +.Fa file +によって参照される kld ファイルのファイル ID を返します。 +エラーがある場合、 +.Fn kldfind +は -1 を返し、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn kldfind +は処理を失敗すると、 +.Va errno +を以下のように設定します: +.Bl -tag -width Er +.It Bq Er EFAULT +この操作に必要なデータがカーネル空間から読み取れませんでした。 +.It Bq Er ENOENT +指定されたファイルはカーネルにロードされていません。 +.El +.Sh 関連項目 +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/kldfirstmod.2 b/documentation/manual-pages/ja/man2/kldfirstmod.2 new file mode 100644 index 0000000000..c35e34356d --- /dev/null +++ b/documentation/manual-pages/ja/man2/kldfirstmod.2 @@ -0,0 +1,76 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/kldfirstmod.2,v 1.15 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 3, 1999 +.Dt KLDFIRSTMOD 2 +.Os +.Sh 名称 +.Nm kldfirstmod +.Nd "指定された kld ファイルから最初のモジュール ID を返す" +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/linker.h +.Ft int +.Fn kldfirstmod "int fileid" +.Sh 解説 +.Fn kldfirstmod +システムコールは、 +.Fa fileid +によって参照された最初のモジュールに関連するモジュール ID を返します。 +.Sh 戻り値 +.Fn kldfirstmod +は、 +.Fa fileid +によって参照される最初のモジュールの ID を返し、 +参照がない場合は 0 を返します。 +.Sh エラー +.Bl -tag -width Er +.It Bq Er ENOENT +.Fa fileid +によって参照された kld ファイルが見つかりませんでした。 +.El +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/kldload.2 b/documentation/manual-pages/ja/man2/kldload.2 new file mode 100644 index 0000000000..e041868e26 --- /dev/null +++ b/documentation/manual-pages/ja/man2/kldload.2 @@ -0,0 +1,94 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/kldload.2,v 1.18 2003/06/03 12:29:34 hmp Exp % +.\" +.\" $FreeBSD$ +.Dd March 3, 1999 +.Dt KLDLOAD 2 +.Os +.Sh 名称 +.Nm kldload +.Nd KLD ファイルをカーネルにロードする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/linker.h +.Ft int +.Fn kldload "const char *file" +.Sh 解説 +.Fn kldload +システムコールは、カーネルリンカを使用してカーネル内に kld ファイルを +ロードします。 +.Sh 戻り値 +.Fn kldload +システムコールは、カーネル内にロードされた kld ファイルのファイル ID を +返します。 +エラーが発生すると +.Fn kldload +は -1 を返し、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +指定されたファイルは次の場合を除いてロードされます: +.Bl -tag -width Er +.It Bq Er EPERM +ファイルを読み取ることができません。 +あるいはファイルをカーネルとリンクすることができません。 +.Nm kld +システムコールを使用するためには root ユーザである必要があります。 +.It Bq Er EFAULT +kld 情報をカーネル空間に追加するときに無効アドレスが検出されました。 +.It Bq Er ENOMEM +ファイルをカーネル内にロードするためのメモリがありません。 +.It Bq Er ENOENT +ファイルが見つかりませんでした。 +.It Bq Er ENOEXEC +.Fa file +のファイル形式が認識されませんでした。 +.It Bq Er EEXIST +与えられた +.Fa file +は既にロードされています。 +.El +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldload 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/kldnext.2 b/documentation/manual-pages/ja/man2/kldnext.2 new file mode 100644 index 0000000000..c1329a9d4d --- /dev/null +++ b/documentation/manual-pages/ja/man2/kldnext.2 @@ -0,0 +1,82 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/kldnext.2,v 1.15 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 3, 1999 +.Dt KLDNEXT 2 +.Os +.Sh 名称 +.Nm kldnext +.Nd 次の kld ファイルのファイル ID を返す +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/linker.h +.Ft int +.Fn kldnext "int fileid" +.Sh 解説 +.Fn kldnext +システムコールは、次の kld ファイル (すなわち、 +.Va fileid +の後のファイル) のファイル ID を返します。 +または +.Va fileid +が最後にロードされたファイルの場合は 0 を返します。 +.Sh 戻り値 +.Fn kldnext +システムコールは、次の kld ファイルのファイル ID または 0 を +返します (解説を参照)。 +エラーが発生した場合は、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn kldnext +によって設定されるエラーは +.Er ENOENT +だけです。 +これが設定されるのは、 +.Va fileid +が存在していない (ロードされていない) kld ファイルを参照しているときです。 +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/kldstat.2 b/documentation/manual-pages/ja/man2/kldstat.2 new file mode 100644 index 0000000000..f3f13489ce --- /dev/null +++ b/documentation/manual-pages/ja/man2/kldstat.2 @@ -0,0 +1,122 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/kldstat.2,v 1.20 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 3, 1999 +.Dt KLDSTAT 2 +.Os +.Sh 名称 +.Nm kldstat +.Nd kld ファイルの状態を得る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/linker.h +.Ft int +.Fn kldstat "int fileid" "struct kld_file_stat *stat" +.Sh 解説 +.Fn kldstat +システムコールは、 +.Fa fileid +によって参照されたファイルに関する情報を +.Fa stat +に書込みます。 +.Bd -literal +struct kld_file_stat { + int version; /* sizeof(linker_file_stat) に設定 */ + char name[MAXPATHLEN]; + int refs; + int id; + caddr_t address; /* ロードアドレス */ + size_t size; /* バイト単位のサイズ */ +}; +.Ed +.Pp +.Bl -tag -width XXXaddress +.It version +このフィールドは、 +.Fn kldstat +自体ではなく、 +.Fn kldstat +を呼び出すコードで前述した構造体のサイズに設定します。 +.It name +.Fa fileid +によって参照されるファイルの名前 +.It refs +.Fa fileid +によって参照されるモジュールの数 +.It id +.Fa fileid +で指定されたファイルの ID +.It address +kld ファイルのロードアドレス +.It size +ファイルのサイズ +.El +.Sh 戻り値 +.Rv -std kldstat +.Sh エラー +次の場合を除いて、 +.Fa fileid +が参照するファイルに関する情報は +.Fa stat +が指す構造体に記入されます: +.Bl -tag -width Er +.It Bq Er ENOENT +ファイルが見つかりませんでした (おそらくロードされていないのでしょう)。 +.It Bq Er EINVAL +stat の +.Fa version +フィールドで指定されたバージョンが適切ではありません。 +.Fa version +フィールドに適切に記入しているのにこのエラーが起きた場合は、 +ワールド、カーネル、またはアプリケーションを再構築する必要があります。 +.It Bq Er EFAULT +.Xr copyout 9 +関数で、フィールドを +.Fa stat +にコピーする際に問題がありました。 +.El +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/kldsym.2 b/documentation/manual-pages/ja/man2/kldsym.2 new file mode 100644 index 0000000000..89dae9c989 --- /dev/null +++ b/documentation/manual-pages/ja/man2/kldsym.2 @@ -0,0 +1,119 @@ +.\" Copyright (c) 2001 Chris Costello <chris@FreeBSD.org> +.\" 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" +に設定されるべきです。 +次に示す 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/documentation/manual-pages/ja/man2/kldunload.2 b/documentation/manual-pages/ja/man2/kldunload.2 new file mode 100644 index 0000000000..f4f27c7e42 --- /dev/null +++ b/documentation/manual-pages/ja/man2/kldunload.2 @@ -0,0 +1,77 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/kldunload.2,v 1.17 2002/12/18 09:22:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 3, 1999 +.Dt KLDUNLOAD 2 +.Os +.Sh 名称 +.Nm kldunload +.Nd kld ファイルをアンロードする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/linker.h +.Ft int +.Fn kldunload "int fileid" +.Sh 解説 +.Fn kldunload +システムコールは、 +.Xr kldload 2 +によってリンクされていた kld ファイルをカーネルからアンロードします。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fa fileid +によって参照されるファイルは、次の場合を除いてアンロードされます: +.Bl -tag -width Er +.It Bq Er EPERM +ファイルをカーネルからアンリンク出来ません。 +.It Bq Er ENOENT +ファイルが見つかりませんでした。 +.It Bq Er EBUSY +カーネルによってリンクされたファイルをアンロードしようとしました。 +.El +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr modfind 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldunload 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/kqueue.2 b/documentation/manual-pages/ja/man2/kqueue.2 new file mode 100644 index 0000000000..b5e6a7867f --- /dev/null +++ b/documentation/manual-pages/ja/man2/kqueue.2 @@ -0,0 +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 とパイプ" +読み取るべきデータがあるときに戻ります。 +.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 に登録されます。 +.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/documentation/manual-pages/ja/man2/ktrace.2 b/documentation/manual-pages/ja/man2/ktrace.2 new file mode 100644 index 0000000000..1b0b0a95d8 --- /dev/null +++ b/documentation/manual-pages/ja/man2/ktrace.2 @@ -0,0 +1,194 @@ +.\" Copyright (c) 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)ktrace.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/ktrace.2,v 1.24 2003/12/14 14:54:53 jkoshy Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt KTRACE 2 +.Os +.Sh 名称 +.Nm ktrace +.Nd プロセスのトレース +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/time.h +.In sys/uio.h +.In sys/ktrace.h +.Ft int +.Fn ktrace "const char *tracefile" "int ops" "int trpoints" "int pid" +.Sh 解説 +.Fn ktrace +システムコールは、1 つまたは複数のプロセスのトレースを有効または無効にします。 +ユーザは自分のプロセスだけをトレースできます。 +スーパユーザだけが、setuid プログラムまたは +setgid プログラムをトレースできます。 +.Pp +.Fa tracefile +引数は、トレースに使用するファイルのパス名を指定します。 +ファイルは存在していなければならず、 +呼び出し側プロセスによって書込み可能な通常ファイルである必要があります。 +トレースレコードはすべてファイルの末尾に追加されるので、 +直前のトレースデータを切り捨てるためにはファイルの長さを 0 にする必要が +あります。 +トレース点が無効な場合 (後述の KTROP_CLEAR を参照)、 +.Fa tracefile +は NULL にできます。 +.Pp +.Fa ops +引数は要求された ktrace 操作を指定します。 +定義されている操作は次のとおりです: +.Bl -column KTRFLAG_DESCENDXXX -offset indent +.It "KTROP_SET " +.Fa trpoints +で指定されたトレース点を有効にします。 +.It "KTROP_CLEAR " +.Fa trpoints +で指定されたトレース点を無効にします。 +.It "KTROP_CLEARFILE すべてのトレースを停止します。" +.It "KTRFLAG_DESCEND トレースの変更が、指定のプロセスとその現在の" +すべての子プロセスに適用されます。 +.El +.Pp +.Fa trpoints +引数は関心のあるトレース点を指定します。 +定義されているトレース点は次のとおりです: +.Bl -column KTRFAC_SYSCALLXXX -offset indent +.It "KTRFAC_SYSCALL システムコールをトレースします。" +.It "KTRFAC_SYSRET システムコールからの戻り値をトレースします。" +.It "KTRFAC_NAMEI パス名の探索操作をトレースします。" +.It "KTRFAC_GENIO すべての入出力をトレースします" +(このオプションが大量の出力を生成する可能性があることに注意してください)。 +.It "KTRFAC_PSIG ポストされたシグナルをトレースします。" +.It "KTRFAC_CSW コンテキストスイッチをトレースします。" +.It "KTRFAC_INHERIT これ以降の子にトレースを継承します。" +.El +.Pp +各トレースイベントは、汎用のヘッダの後に +トレース点に固有の構成要素が続く形式のレコードを出力します。 +汎用のヘッダは次のとおりです: +.Bd -literal +struct ktr_header { + int ktr_len; /* バッファの長さ */ + short ktr_type; /* トレースレコードのタイプ */ + pid_t ktr_pid; /* プロセス ID */ + char ktr_comm[MAXCOMLEN+1]; /* コマンド名 */ + struct timeval ktr_time; /* タイムスタンプ */ + caddr_t ktr_buf; +}; +.Ed +.Pp +.Va ktr_len +フィールドはこのヘッダに続く +.Va ktr_type +データの長さを示します。 +.Va ktr_pid +フィールドと +.Va ktr_comm +フィールドは、レコードを生成したプロセスとコマンドを示します。 +.Va ktr_time +フィールドは、 +レコードが生成された時刻を (マイクロ秒単位で) 示します。 +.Va ktr_buf +は、内部カーネルポインタであって有用ではありません。 +.Pp +汎用ヘッダには +.Va ktr_len +バイトの長さの +.Va ktr_type +レコードが続きます。 +タイプに固有のレコードは +.In sys/ktrace.h +インクルードファイル内で定義されています。 +.Sh SYSCTL チューナブル +次の +.Xr sysctl 8 +チューナブルが +.Fn ktrace +の動作に影響します: +.Bl -tag -width indent +.It Va kern.ktrace.geniosize +トレースされた I/O 要求がトレースファイルに記録するデータ量を制限します。 +.It Va kern.ktrace.request_pool +一度に記録するトレースイベント数を制限します。 +.El +.Pp +プロセスをデバッグできるかを制御する sysctl チューナブル +.Xr ( p_candebug 9 +によって決められている) もまた +.Fn ktrace +の操作に影響します。 +.Sh 戻り値 +.Rv -std ktrace +.Sh エラー +.Fn ktrace +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定のトレースファイルが存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.It Bq Er ENOSYS +カーネルが +.Nm +サポートとともにコンパイルされていません。 +.El +.Pp +一時的な資源不足のために、 +スレッドが 1 個以上のトレースイベントを記録できないことがあり得ます。 +この状態はカーネルによって記憶され、次に成功するトレース要求において +.Va ktr_type +フィールドの +.Li KTR_DROP +フラグがセットされます。 +.Sh 関連項目 +.Xr kdump 1 , +.Xr ktrace 1 , +.Xr utrace 2 , +.Xr sysctl 8 , +.Xr p_candebug 9 +.Sh 歴史 +.Fn ktrace +システムコールは +.Bx 4.4 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/link.2 b/documentation/manual-pages/ja/man2/link.2 new file mode 100644 index 0000000000..ffeb5abd42 --- /dev/null +++ b/documentation/manual-pages/ja/man2/link.2 @@ -0,0 +1,155 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)link.2 8.3 (Berkeley) 1/12/94 +.\" %FreeBSD: src/lib/libc/sys/link.2,v 1.25 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 5, 1999 +.Dt LINK 2 +.Os +.Sh 名称 +.Nm link +.Nd ハードファイルリンクを作成する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn link "const char *name1" "const char *name2" +.Sh 解説 +.Fn link +システムコールは、 +.Fa name1 +が指す下層オブジェクトの属性を持つ、指定のディレクトリエントリ (ハードリンク) +.Fa name2 +を不可分に作成します。 +リンクが正常に完了すると下層オブジェクトのリンクカウントが増加します。 +.Fa name1 +と +.Fa name2 +は、下層オブジェクトへのアクセスとアクセス権を等しく共有します。 +.Pp +.Fa name1 +を削除してもファイル +.Fa name2 +は削除されず、下層オブジェクトのリンクカウントが減少します。 +.Pp +.Fa name1 +引数によって指されるオブジェクト +はハードリンクが成功するために存在している必要があり、 +.Fa name1 +と +.Fa name2 +の両方が同じファイルシステム上に存在している必要があります。 +.Fa name1 +引数はディレクトリであってはなりません。 +.Sh 戻り値 +.Rv -std link +.Sh エラー +.Fn link +システムコールは次の場合に処理に失敗し、リンクは作成されません: +.Bl -tag -width Er +.It Bq Er ENOTDIR +いずれかの前置パス名の構成要素がディレクトリではありません。 +.It Bq Er ENAMETOOLONG +いずれかのパス名の構成要素が 255 文字を越えているか、 +またはいずれかのパス名全体の長さが 1023 文字を越えています。 +.It Bq Er ENOENT +いずれかの前置パス名の構成要素が存在しません。 +.It Bq Er EOPNOTSUPP +.Fa name1 +によって指定されたファイルが入っているファイルシステムが +リンクをサポートしていません。 +.It Bq Er EMLINK +.Fa name1 +で指定されたファイルのリンクカウントが 32767 を越えます。 +.It Bq Er EACCES +いずれかの前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er EACCES +要求されたリンクは、書込み許可を拒否するモードのディレクトリに +書き込むことを要求しています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er ENOENT +.Fa name1 +によって指定されたファイルが存在しません。 +.It Bq Er EEXIST +.Fa name2 +によって指定されたリンクが存在します。 +.It Bq Er EPERM +.Fa name1 +によって指定されたファイルはディレクトリであるか、 +変更禁止もしくは追加のみ可能であるとフラグが付けられています ( +.Xr chflags 2 +参照)。 +.It Bq Er EXDEV +.Fa name2 +によって指定されたリンクと +.Fa name1 +によって指定されたファイルが異なるファイルシステム上にあります。 +.It Bq Er ENOSPC +ディレクトリを格納しているファイルシステムに容量が残っていないため、 +新しいリンクを入れるエントリを置くディレクトリを拡張できません。 +.It Bq Er EDQUOT +ディレクトリを格納しているファイルシステムでユーザのディスクブロックに +関するクォータが枯渇したため、 +新しいリンクを入れるエントリを置くディレクトリを拡張できません。 +.It Bq Er EIO +ディレクトリエントリを作成するためファイルシステムに +読み書きしている間に入出力エラーが発生しました。 +.It Bq Er EROFS +要求されたリンクは、読取り専用ファイルシステム上のディレクトリに +書込みすることを要求しています。 +.It Bq Er EFAULT +指定されたパス名の 1 つが、プロセスに割り当てられた +アドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr readlink 2 , +.Xr symlink 2 , +.Xr unlink 2 +.Sh 規格 +.Fn link +システムコールは +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn link +関数は +.At v7 +で登場しました。 +.Pp +従来、スーパユーザは +.Fn link +システムコールによってディレクトリをリンクでき、 +これはファイルシステムの一貫性を破壊するものでした。 +この実装では、このような操作はもはや許されません。 diff --git a/documentation/manual-pages/ja/man2/lio_listio.2 b/documentation/manual-pages/ja/man2/lio_listio.2 new file mode 100644 index 0000000000..fe26a79b7c --- /dev/null +++ b/documentation/manual-pages/ja/man2/lio_listio.2 @@ -0,0 +1,170 @@ +.\" Copyright (c) 2003 Tim J. Robbins +.\" 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/lio_listio.2,v 1.2 2003/06/01 19:19:59 ru Exp % +.\" +.\" $FreeBSD$ +.Dd January 12, 2003 +.Dt LIO_LISTIO 2 +.Os +.Sh 名称 +.Nm lio_listio +.Nd "リスト指示の入出力 (リアルタイム)" +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In aio.h +.Ft int +.Fo lio_listio +.Fa "int mode" +.Fa "struct aiocb * const [] list" +.Fa "int nent" +.Fa "struct sigevent *sig" +.Fc +.Sh 解説 +.Fn lio_listio +関数は 1 つの関数呼び出しで、リストの入出力要求を開始させます。 +.Fa list +引数は、それぞれの実行すべき操作を記述した +.Fa nent +個の要素の +.Vt aiocb +構造体の配列へのポインタです。 +.Dv NULL +要素は無視されます。 +.Pp +それぞれの +.Vt aiocb +の +.Va aio_lio_opcode +フィールドは実行されるべき操作を指定します。 +以下の操作がサポートされています: +.Bl -tag -width ".Dv LIO_WRITE" +.It Dv LIO_READ +まるで +.Xr aio_read 2 +の呼び出しかのように、データを読込みます。 +.It Dv LIO_NOP +何の操作もしません。 +.It Dv LIO_WRITE +まるで +.Xr aio_write 2 +の呼び出しかのように、データを書込みます。 +.El +.Pp +.Fa mode +引数が +.Dv LIO_WAIT +の場合には、 +.Fn lio_listio +は全ての要求された操作が完了するまで戻りません。 +.Fa mode +が +.Dv LIO_NOWAIT +の場合には、要求は非同期に処理され、全ての操作が完了したときに +.Fa sig +によって指定されたシグナルが送られます。 +.Fa sig +が +.Dv NULL +の場合には、呼び出したプロセスには入出力の完了が通知されません。 +.Pp +要求が実行される順番は、指定されません。特に、0, 1, ..., +.Fa nent Ns \-1 +の順序で実行される保証はありません。 +.Sh 戻り値 +.Fa mode +が +.Dv LIO_WAIT +の場合には、 +.Fn lio_listio +関数は成功して操作が完了すると 0 を返し、 +そうでなければ \-1 を返します。 +.Pp +.Fa mode +が +.Dv LIO_NOWAIT +の場合には、 +.Fn lio_listio +関数は成功して操作がキューに入れられると 0 を返し、 +そうでなければ \-1 を返します。 +.Sh エラー +.Fn lio_listio +関数は以下の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EAGAIN +要求をキューに入れるために十分なリソースがありません。 +.It Bq Er EAGAIN +要求がシステムによる制限 +.Dv AIO_MAX +を超えさせます。 +.It Bq Er EINVAL +.Fa mode +引数が +.Dv LIO_WAIT +または +.Dv LIO_NOWAIT +のどちらでもありません。または、 +.Fa nent +が +.Dv AIO_LISTIO_MAX +よりも大きいです。 +.It Bq Er EINTR +恐らく完了する前に、シグナルがシステムコールに割り込みました。 +.It Bq Er EIO +1 つ以上の要求が失敗しました。 +.El +.Pp +加えて、 +.Fn lio_listio +関数は +.Xr aio_read 2 +および +.Xr aio_write 2 +に記載されているあらゆる理由で失敗するかもしれません。 +.Pp +.Fn lio_listio +が成功した場合、または +.Er EAGAIN , EINTR , +または +.Er EIO +のエラーコードで失敗した場合には、幾つかの要求が +既に開始されているかもしれません。 +呼び出し側はそれぞれの +.Vt aiocb +のエラー状態を、個別に +.Xr aio_error 2 +を呼び出すことによって、チェックするべきです。 +.Sh 関連項目 +.Xr aio_error 2 , +.Xr aio_read 2 , +.Xr aio_write 2 , +.Xr read 2 , +.Xr write 2 , +.Xr aio 4 +.Sh 規格 +.Fn lio_listio +関数は +.St -p1003.1-2001 +に適合しているはずです。 diff --git a/documentation/manual-pages/ja/man2/listen.2 b/documentation/manual-pages/ja/man2/listen.2 new file mode 100644 index 0000000000..1b89046750 --- /dev/null +++ b/documentation/manual-pages/ja/man2/listen.2 @@ -0,0 +1,147 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" From: @(#)listen.2 8.2 (Berkeley) 12/11/93 +.\" %FreeBSD: src/lib/libc/sys/listen.2,v 1.27 2003/01/17 19:25:27 tmm Exp % +.\" +.\" $FreeBSD$ +.\" WORD: 3-way handshake 3 ウェイハンドシェーク (tcpdump.1) +.Dd May 8, 2002 +.Dt LISTEN 2 +.Os +.Sh 名称 +.Nm listen +.Nd ソケット上の接続をリスンする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn listen "int s" "int backlog" +.Sh 解説 +.Xr socket 2 +で最初にソケットが作成され、 +着信接続を受け入れる意思および着信接続用の待ち行列限界が +.Fn listen +で指定された後、接続が +.Xr accept 2 +で受け入れられます。 +.Fn listen +システムコールは、タイプが +.Dv SOCK_STREAM +または +.Dv SOCK_SEQPACKET +のソケットにだけ適用されます。 +.Pp +.Fa backlog +引数は、延期中の接続の待ち行列を伸ばす際の最大長を定義します。 +待ち行列が満杯のときに接続要求が到着すると、クライアントは +.Er ECONNREFUSED +を示すエラーを受信する可能性があります。 +TCP の場合は、接続は黙って落とされます。 +.Pp +.Fx 4.5 +以前で syncache が導入されるまでは、 +.Fa backlog +引数は不完全な接続の待ち行列の長さも定義していました。 +この待ち行列には、TCP の 3 ウェイハンドシェークを完了させるべく処理中の +TCP ソケットが保持されています。 +これらの不完全な接続は、現在すべて syncache に保持され、 +これは待ち行列の長さに影響されません。 +.Fa backlog +値を増やすことによりサービス不能攻撃に対処する必要は、もはやありません。 +.Pp +.Xr sysctl 3 +MIB 変数 +.Dq Va kern.ipc.somaxconn +は +.Fa backlog +のハードリミットを指定します。 +.Va kern.ipc.somaxconn +より大きい値、または 0 より小さい値が指定されている場合、 +.Fa backlog +の指定は無視されて +.Va kern.ipc.somaxconn +の値にされます。 +.Sh ACCEPT フィルタとの相互作用 +ソケットに対して accept フィルタを使用すると、 +接続済みであるものの accept フィルタの基準にまだ合致しないソケットを +保持するための第 2 の待ち行列が使用されます。 +ひとたび基準に合致すれば、これらのソケットは接続完了済の待ち行列に移動され、 +.Xr accept 2 +の対象になります。 +第 2 の待ち行列が満杯のときに新規接続が到着すると、 +accept フィルタの基準にまだ合致しない最古のソケットが終了されます。 +.Pp +この第 2 の待ち行列は、第 1 の listen 待ち行列のように、 +.Fa backlog +引数に従って大きさが変わります。 +.Sh 戻り値 +.Rv -std listen +.Sh エラー +.Fn listen +システムコールは次の場合に処理を失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er EINVAL +そのソケットはすでに接続されているか、接続確立中です。 +.It Bq Er ENOTSOCK +引数 +.Fa s +がソケットではありません。 +.It Bq Er EOPNOTSUPP +ソケットが、 +.Fn listen +をサポートするタイプではありません。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr connect 2 , +.Xr socket 2 , +.Xr sysctl 3 , +.Xr sysctl 8 , +.Xr accept_filter 9 +.Sh 歴史 +.Fn listen +システムコールは +.Bx 4.2 +で登場しました。 +実行時に最大 +.Fa backlog +を設定できる機能、および許容できる最大値を指定する場合に負の +.Fa backlog +を使用する機能は +.Fx 2.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/lseek.2 b/documentation/manual-pages/ja/man2/lseek.2 new file mode 100644 index 0000000000..daa438c613 --- /dev/null +++ b/documentation/manual-pages/ja/man2/lseek.2 @@ -0,0 +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 +.Fa fildes +引数がオープンファイル記述子ではありません。 +.It Bq Er EINVAL +.Fa whence +引数が正しい値ではないか、計算結果のファイルオフセットが +キャラクタ型ではない特殊ファイルに使う負の値となりました。 +.It Bq Er EOVERFLOW +計算結果のファイルオフセットが、 +.Fa off_t +型のオブジェクトでは正しく表現できない値となりました。 +.It Bq Er ESPIPE +.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/documentation/manual-pages/ja/man2/madvise.2 b/documentation/manual-pages/ja/man2/madvise.2 new file mode 100644 index 0000000000..ebb7be038b --- /dev/null +++ b/documentation/manual-pages/ja/man2/madvise.2 @@ -0,0 +1,180 @@ +.\" Copyright (c) 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)madvise.2 8.1 (Berkeley) 6/9/93 +.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.31 2004/07/02 23:52:13 ru Exp % +.\" +.\" WORD: revert 書き戻す(dirty なページをファイルシステムに書き込む)[madvise.2] +.\" WORD: physically backing store 物理的バッキングストア +.\" (仮想記憶の裏にあるディスク領域、swap やファイルシステム?!) +.\" +.\" $FreeBSD$ +.Dd July 19, 1996 +.Dt MADVISE 2 +.Os +.Sh 名称 +.Nm madvise , posix_madvise +.Nd メモリの使用法について助言を与える +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/mman.h +.Ft int +.Fn madvise "void *addr" "size_t len" "int behav" +.Ft int +.Fn posix_madvise "void *addr" "size_t len" "int behav" +.Sh 解説 +.Fn madvise +システムコールによって、自身のメモリ利用の習性の知識があるプロセスは、それを +システムに説明できます。 +.Fn posix_madvise +インタフェースは同等で規格に適合するために提供されます。 +.Pp +知られた習性は以下のとおりです: +.Bl -tag -width MADV_SEQUENTIAL +.It Dv MADV_NORMAL +デフォルトのページング動作に戻るようにシステムに指示します。 +.It Dv MADV_RANDOM +ページがランダムにアクセスされ、プリフェッチが有利ではないと考えられるという +ヒントです。 +.It Dv MADV_SEQUENTIAL +指定のページがフォルトで読み取られたとき、そのページの直前のページの +優先順位を VM システムが下げるようにします。 +.It Dv MADV_WILLNEED +指定の仮想アドレス範囲内にあるページが一時的に高い優先順位を持つようにし、 +それらがメモリ内にある場合、解放される可能性を減少させます。 +さらに既にメモリ内にあるページはただちにプロセスにマップされ、 +それによってプロセス全体にわたるフォルトによる読取りによる +不要なオーバヘッドを除去します。 +これは、フォルトによるページのバッキングストアからの +読取りを生じさせるのではなく、 +メモリ内に既にあるページを呼び出し側のプロセスに素早くマップさせます。 +.It Dv MADV_DONTNEED +VM システムに、指定の範囲内のページのメモリ内優先順位の減少を許可します。 +今後、このアドレス範囲への参照はページフォルトを発生させるでしょう。 +.It Dv MADV_FREE +VM システムにページを解放する自由を与え、指定ページ範囲内の情報がもはや +重要でないことをシステムに通知します。 +これは、アドレス空間を有効にしたままで +.Xr malloc 3 +がアドレス空間内の任意の位置のページを解放できるようにする効率的な方法です。 +ページが次に参照される時には、そのページは要求時 0 クリアの対象に +なっている可能性もありますし、または +.Dv MADV_FREE +呼び出しの前にそこにあったデータが残っているかもしれません。 +ページが再び修正されるまで、そのアドレス空間範囲に対する参照だけでは、 +VM システムはバッキングストアから情報をページに読み取る動作を行わなくなります。 +.\" 訳追加 +.It Dv MADV_NOSYNC +このマップに関連づけられているデータを +物理的バッキングストアにフラッシュしないようにシステムに要求します。 +通常、これにより、ファイルシステムアップデートデーモンが +VM システムが汚したページを特に理由もないのに +物理ディスクに書き込む不要な動作を防止します。 +VM とファイルシステムの一貫性は常に維持されることに注意してください。 +この機能は、マップされたデータが必要なときだけ、 +(通常、システムページャにより) フラッシュされることを +保証しているに過ぎません。 +.Pp +この機能を使用する典型的な場合とは、 +ファイルを裏に持つ共有メモリ領域をプロセス (IPC) 間通信で使いたいとき、 +特に、その領域に格納されるデータを物理的ディスクに書き込む必要がない場合です。 +この機能は、SysV 共有メモリ呼び出しで得られる mmap 性能と +同等の性能を与えてくれますし、かつ、SysV 共有メモリ呼び出しを使うより、 +きめ細かい制御が可能でより制約が少ない方法でもあります。 +しかしこの機能は UNIX プラットホーム間で移植性がないことに注意してください +(いくつかのプラットホームではデフォルトで正しく振る舞うかも知れませんが)。 +詳しい情報に関しては、 +.Xr mmap 2 +の +MAP_NOSYNC セクションを参照してください。 +.It Dv MADV_AUTOSYNC +将来、アドレス範囲内のページが汚された場合のために +MADV_NOSYNC の効果を元に戻します。 +既に汚されているページについての効果は不定です。 +書き戻しするかもしれませんし、しないかもしれません。 +書き戻しを確実に行うには、 +.Xr msync 2 +または +.Xr fsync 2 +システムコールを使用します。 +.It Dv MADV_NOCORE +領域は、コアファイルに含まれません。 +.It Dv MADV_CORE +コアファイルの領域を含みます。 +.It Dv MADV_PROTECT +スワップ空間を使い果たした時に、 +このプロセスは終了させられるべきではないことを、VM システムに通知します。 +プロセスはスーパユーザの特権を持っていなければなりません。 +これは、システムが適切に機能するために実行され続けなければならない +プロセス群で、思慮分別を持って使用されるべきです。 +.El +.Pp +.Fn posix_madvise +インタフェースを呼び出す移植可能なプログラムは、上記のフラグではなく別名の +.Dv POSIX_MADV_NORMAL , POSIX_MADV_SEQUENTIAL , +.Dv POSIX_MADV_RANDOM , POSIX_MADV_WILLNEED +および +.Dv POSIX_MADV_DONTNEED +を使用するべきです。 +.Sh 戻り値 +.Rv -std madvise +.Sh エラー +.Fn madvise +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa behav +引数が有効ではありません。 +.It Bq Er ENOMEM +.Fa addr +引数と +.Fa len +引数で指定された仮想アドレス範囲が有効ではありません。 +.It Bq Er EPERM +.Dv MADV_PROTECT +が指定され、プロセスがスーパユーザの特権を持っていません。 +.El +.Sh 関連項目 +.Xr mincore 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munmap 2 +.Sh 規格 +.Fn posix_madvise +インタフェースは +.St -p1003.1-2001 +に適合しています。 +.Sh 歴史 +.Fn madvise +システムコールは +.Bx 4.4 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/mincore.2 b/documentation/manual-pages/ja/man2/mincore.2 new file mode 100644 index 0000000000..8fb299c906 --- /dev/null +++ b/documentation/manual-pages/ja/man2/mincore.2 @@ -0,0 +1,114 @@ +.\" 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. +.\" +.\" @(#)mincore.2 8.1 (Berkeley) 6/9/93 +.\" %FreeBSD: src/lib/libc/sys/mincore.2,v 1.24 2003/09/08 19:57:16 ru Exp % +.\" +.\" $FreeBSD$ +.Dd January 17, 2003 +.Dt MINCORE 2 +.Os +.Sh 名称 +.Nm mincore +.Nd メモリページの常駐の決定 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/mman.h +.Ft int +.Fn mincore "const void *addr" "size_t len" "char *vec" +.Sh 解説 +.Fn mincore +システムコールは、 +.Fa addr +で始まり +.Fa len +バイト続く領域の中の個々のページが常駐しているかどうかを、決定します。 +.\"開始アドレス +.\".Fa addr +.\"は、はじめに複数のページサイズに切り捨てられます +.\".Xr ( getpagesize 3 +.\"参照)。 +.\"終了アドレス +.\".Fa addr No + Fa len +.\"は、複数のページサイズに切り上げられます。 +その状態はページあたり 1 文字の +.Fa vec +配列の中に返されます。 +個々の文字は、そのページが常駐していなければ 0 または、以下の +.In ( sys/mman.h +で定義されている) フラグの組み合わせです: +.Bl -tag -width ".Dv MINCORE_REFERENCED_OTHER" +.It Dv MINCORE_INCORE +ページはコア内にあります (常駐)。 +.It Dv MINCORE_REFERENCED +ページは我々に参照されました。 +.It Dv MINCORE_MODIFIED +ページは我々に変更されました。 +.It Dv MINCORE_REFERENCED_OTHER +ページは参照されました。 +.It Dv MINCORE_MODIFIED_OTHER +ページは変更されました。 +.El +.Pp +.Fn mincore +によって返される情報は、このシステムコールが戻る時間のために +古くなっているかもしれません。 +あるページが常駐することを保証する唯一の方法は、そのページを +.Xr mlock 2 +システムコールでメモリにロックすることです。 +.Sh 戻り値 +.Rv -std mincore +.Sh エラー +.Fn mincore +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +引数と +.Fa len +引数によって指定された仮想アドレス範囲が有効ではありません。 +.It Bq Er EFAULT +.Fa vec +引数が正しくないアドレスを指しています。 +.El +.Sh 関連項目 +.Xr madvise 2 , +.Xr mlock 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munmap 2 , +.Xr getpagesize 3 +.Sh 歴史 +.Fn mincore +システムコールは +.Bx 4.4 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/minherit.2 b/documentation/manual-pages/ja/man2/minherit.2 new file mode 100644 index 0000000000..89f4f8631a --- /dev/null +++ b/documentation/manual-pages/ja/man2/minherit.2 @@ -0,0 +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 ".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/documentation/manual-pages/ja/man2/mkdir.2 b/documentation/manual-pages/ja/man2/mkdir.2 new file mode 100644 index 0000000000..0e53ed0dee --- /dev/null +++ b/documentation/manual-pages/ja/man2/mkdir.2 @@ -0,0 +1,114 @@ +.\" 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. +.\" +.\" @(#)mkdir.2 8.2 (Berkeley) 12/11/93 +.\" %FreeBSD: src/lib/libc/sys/mkdir.2,v 1.19 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd December 11, 1993 +.Dt MKDIR 2 +.Os +.Sh 名称 +.Nm mkdir +.Nd ディレクトリファイルを作成する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/stat.h +.Ft int +.Fn mkdir "const char *path" "mode_t mode" +.Sh 解説 +ディレクトリ +.Fa path +が、 +.Fa mode +による指定に呼び出しプロセスの +.Xr umask 2 +で制約を加えたアクセス許可で作成されます。 +.Pp +ディレクトリの所有者 ID は、プロセスの実効ユーザ ID に設定されます。 +ディレクトリのグループ ID は、そのディレクトリが作成された親ディレクトリの +グループ ID に設定されます。 +.Sh 戻り値 +.Rv -std mkdir +.Sh エラー +.Fn mkdir +システムコールは次の場合、処理に失敗してディレクトリは作成されません: +.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 EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EEXIST +指定のファイルがすでに存在します。 +.It Bq Er ENOSPC +新しいディレクトリが作成できません。 +そのディレクトリを作る容量がファイルシステムに残っていません。 +.It Bq Er ENOSPC +ディレクトリを作成するファイルシステム上に未使用の +inode がありません。 +.It Bq Er EDQUOT +新しいディレクトリが作成できません。 +ディレクトリを作るファイルシステム上の +ディスクブロックのユーザのクォータが枯渇しました。 +.It Bq Er EDQUOT +ディレクトリを作成中のファイルシステム上のユーザの inode のクォータが +枯渇しました。 +.It Bq Er EIO +ディレクトリエントリの作成中、あるいは inode を割り当て中に入出力エラーが +発生しました。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr chmod 2 , +.Xr stat 2 , +.Xr umask 2 +.Sh 規格 +.Fn mkdir +システムコールは +.St -p1003.1-90 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/mkfifo.2 b/documentation/manual-pages/ja/man2/mkfifo.2 new file mode 100644 index 0000000000..041689726b --- /dev/null +++ b/documentation/manual-pages/ja/man2/mkfifo.2 @@ -0,0 +1,118 @@ +.\" Copyright (c) 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. +.\" +.\" @(#)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/documentation/manual-pages/ja/man2/mknod.2 b/documentation/manual-pages/ja/man2/mknod.2 new file mode 100644 index 0000000000..6441bbdeb0 --- /dev/null +++ b/documentation/manual-pages/ja/man2/mknod.2 @@ -0,0 +1,121 @@ +.\" 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. +.\" +.\" @(#)mknod.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/mknod.2,v 1.16 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt MKNOD 2 +.Os +.Sh 名称 +.Nm mknod +.Nd 特殊なファイルノードを作成する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn mknod "const char *path" "mode_t mode" "dev_t dev" +.Sh 解説 +ファイルシステムノード +.Fa path +が、 +.Fa mode +で指定されたファイルタイプとアクセス許可で作成されます。 +アクセス許可はプロセスの umask 値による修正を受けます。 +.Pp +.Fa mode +がブロックまたはキャラクタ型特殊ファイルを示す場合、 +.Fa dev +はシステム上の特定のデバイスを示す構成に依存する指示です。 +そうでない場合 +.Fa dev +は無視されます。 +.Pp +.Fn mknod +システムコールはスーパユーザ権限が必要です。 +.Sh 戻り値 +.Rv -std mknod +.Sh エラー +.Fn mknod +システムコールは次の場合に処理に失敗し、ファイルは作成されません: +.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 がスーパユーザではありません。 +.It Bq Er EIO +ディレクトリエントリの作成中、あるいは inode を割り当て中に +入出力エラーが発生しました。 +.It Bq Er ENOSPC +新しいノード用のエントリを配置するディレクトリが拡張できません。 +ディレクトリが入っているファイルシステム上に空き容量が残っていません。 +.It Bq Er ENOSPC +ノードを作成するファイルシステム上に未使用の inode がありません。 +.It Bq Er EDQUOT +新しいノードのエントリを配置するディレクトリが拡張できません。 +ディレクトリが入っているファイルシステム上のディスクブロックのユーザの +クォータが枯渇しました。 +.It Bq Er EDQUOT +ノードを作成中のファイルシステム上の inode のユーザのクォータが +枯渇しました。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EEXIST +指定のファイルがすでに存在しています。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINVAL +ブロックまたはキャラクタ型特殊ファイル (または +.Em whiteout ) +以外の作成は行われません。 +.El +.Sh 関連項目 +.Xr chmod 2 , +.Xr mkfifo 2 , +.Xr stat 2 , +.Xr umask 2 +.Sh 歴史 +.Fn mknod +関数は +.At v6 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/mlock.2 b/documentation/manual-pages/ja/man2/mlock.2 new file mode 100644 index 0000000000..d69b6651da --- /dev/null +++ b/documentation/manual-pages/ja/man2/mlock.2 @@ -0,0 +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.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 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/documentation/manual-pages/ja/man2/mlockall.2 b/documentation/manual-pages/ja/man2/mlockall.2 new file mode 100644 index 0000000000..87aeb990ee --- /dev/null +++ b/documentation/manual-pages/ja/man2/mlockall.2 @@ -0,0 +1,141 @@ +.\" $NetBSD: mlockall.2,v 1.11 2003/04/16 13:34:54 wiz Exp $ +.\" +.\" Copyright (c) 1999 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, +.\" NASA Ames Research Center. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the NetBSD +.\" Foundation, Inc. and its contributors. +.\" 4. Neither the name of The NetBSD Foundation nor the names of its +.\" contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/mlockall.2,v 1.2 2004/07/03 23:14:34 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 12, 1999 +.Dt MLOCKALL 2 +.Os +.Sh 名称 +.Nm mlockall , +.Nm munlockall +.Nd プロセスのアドレス空間のロック (アンロック) +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/mman.h +.Ft int +.Fn mlockall "int flags" +.Ft int +.Fn munlockall "void" +.Sh 解説 +.Fn mlockall +システムコールはプロセスのアドレス空間に関連付けられた物理ページを、 +そのアドレス空間がアンロックされるまで、またはプロセスが終了するまで、 +または他のプログラムイメージを exec するまでの間、メモリ内にロックします。 +.Pp +以下のフラグは +.Fn mlockall +の振舞いに影響します: +.Bl -tag -width ".Dv MCL_CURRENT" +.It Dv MCL_CURRENT +プロセスのアドレス空間に現在マップされている全てのページをロックします。 +.It Dv MCL_FUTURE +将来プロセスのアドレス空間にマップされる全てのページを、 +マッピングが確立する時点でロックします。 +これらのマッピングがリソースの制限の超過を引き起こす場合には、 +将来のマッピングの失敗を引き起こすかもしれないことに、注意してください。 +.El +.Pp +物理メモリは潜在的に欠乏しているリソースであるため、プロセスは +どのくらいの量をロックできるのかを制限されています。 +1 つのプロセスは最低でもシステム全体に渡る +.Dq wired pages +リミットをロック可能で、プロセス当たりの +.Dv RLIMIT_MEMLOCK +リソース制限をロック可能です。 +.Pp +.Fn munlockall +呼び出しはプロセスのアドレス空間の中の全てのロックされたメモリ領域を +アンロックします。 +.Fn munlockall +呼び出し後にマップされる全ての領域は、ロックされません。 +.Sh 戻り値 +戻り値 0 は、呼び出しが成功し、その範囲内の全てのページが +ロックまたはアンロックされたことを示します。 +戻り値 \-1 は、エラーが発生し、その範囲内の全てのページのロック状態が +変更されないまま残されていることを示します。 +この場合、グローバル変数 +.Va errno +がそのエラーを示すために設定されます。 +.Sh エラー +.Fn mlockall +は以下の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa flags +引数が 0 であるか、または実装されていないフラグを含んでいます。 +.It Bq Er ENOMEM +指定された範囲のロックが、システムまたはプロセス当たりのロック可能な +メモリの制限を越えます。 +.It Bq Er EAGAIN +プロセスのアドレス空間にマップされたメモリの一部または全てが、 +呼び出しが実行された時にロックできませんでした。 +.It Bq Er EPERM +呼び出し側のプログラムが、要求された操作を行なうための適切な +権限を持っていません。 +.El +.Sh 関連項目 +.Xr mincore 2 , +.Xr mlock 2 , +.Xr mmap 2 , +.Xr munmap 2 , +.Xr setrlimit 2 +.Sh 規格 +.Fn mlockall +および +.Fn munlockall +関数は +.St -p1003.1-2001 +に適合していると思われます。 +.Sh 歴史 +.Fn mlockall +および +.Fn munlockall +関数は +.Fx 5.1 +ではじめて登場しました。 +.Fx 5.1 . +.Sh バグ +プロセス当たりのリソースの制限は、ロックされた仮想メモリの量について +制限されます。 +その一方、システム全体での制限はロックされた物理ページの +数についての制限です。 +そのために、同一の物理ページに対する 2 つの別個のロックされた +マッピングを持つプロセスは、プロセス当たりの制限に対しては 2 ページとして +カウントし、システム制限ではただ 1 つのページとしてカウントします。 diff --git a/documentation/manual-pages/ja/man2/mmap.2 b/documentation/manual-pages/ja/man2/mmap.2 new file mode 100644 index 0000000000..26df8e243e --- /dev/null +++ b/documentation/manual-pages/ja/man2/mmap.2 @@ -0,0 +1,355 @@ +.\" Copyright (c) 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95 +.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.50 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd November 17, 2001 +.Dt MMAP 2 +.Os +.Sh 名称 +.Nm mmap +.Nd メモリの割り当て、またはファイルまたはデバイスのメモリへのマップ +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/mman.h +.Ft void * +.Fn mmap "void *addr" "size_t len" "int prot" "int flags" "int fd" "off_t offset" +.Sh 解説 +.Fn mmap +システムコールは、 +.Fa addr +を始点として最大で +.Fa len +バイトの連続するページに、 +.Fa fd +によって記述されるオブジェクトのバイトオフセット +.Fa offset +の位置から始まる部分をマップされるようにします。 +.Fa len +がページサイズの倍数でない場合、 +マップされた領域は指定の範囲を越えて拡張されるかもしれません。 +このような拡張によってマップされたオブジェクトの末端を越えた部分は +0 で埋められます。 +.Pp +.Fa addr +が 0 でない場合、これはシステムへのヒントとして使用されます +(システムの便宜のために、領域の実際のアドレスは +指定されたアドレスとは違う可能性があります)。 +.Fa addr +が 0 の場合、アドレスはシステムによって選択されます。 +領域の実際の開始アドレスが返されます。 +.Fa mmap +が処理に成功すると、確保されたアドレス範囲の以前のマッピングは +削除されます。 +.Pp +保護 (領域へのアクセス許可) は +.Fa prot +引数で、以下の値の論理和 +.\".Em or Ns 'ing +.Em ( or ) +を取った値で指定します: +.Pp +.Bl -tag -width PROT_WRITE -compact +.It Dv PROT_NONE +ページはアクセスできません。 +.It Dv PROT_READ +ページは読取りできます。 +.It Dv PROT_WRITE +ページは書込みできます。 +.It Dv PROT_EXEC +ページは実行可能です。 +.El +.Pp +.Fa flags +引数は、マップされたオブジェクトのタイプ、マッピングオプション、 +およびマップされたページのコピーに対して行われた修正が、プロセスに +固有であるかまたは他からの参照と共有されるかを指定します。 +共有、マッピングタイプ、およびオプションは、以下の値の論理和 +.\".Em or Ns 'ing +.Em ( or ) +を取った値で +.Fa flags +引数に指定します: +.Bl -tag -width MAP_HASSEMAPHORE +.It Dv MAP_ANON +どの特定のファイルとも対応していない匿名メモリをマップします。 +.Dv MAP_ANON +を作成するのに使用されるファイル記述子は \-1 である必要があります。 +.Fa offset +引数は無視されます。 +.\".It Dv MAP_FILE +.\"Mapped from a regular file or character-special device memory. +.It Dv MAP_FIXED +システムが、指定されたアドレスと異なるアドレスを選択することを許容しません。 +指定されたアドレスが使用できない場合、 +.Fn mmap +は処理に失敗します。 +.Dv MAP_FIXED +が指定されている場合、 +.Fa addr +はページサイズの倍数である必要があります。 +このオプションの使用はお勧めできません。 +.It Dv MAP_HASSEMAPHORE +領域にセマフォが含まれている可能性があること、特殊な処理が必要な可能性が +あることをカーネルに通知します。 +.It Dv MAP_INHERIT +このフラグは正式に公表されたものとして扱われたことはなく、 +もはやサポートされていません。 +さらなる情報は +.Xr minherit 2 +を参照してください。 +.It Dv MAP_NOCORE +領域はコアファイルに含まれません。 +.It Dv MAP_NOSYNC +はこの VM マップを経由して汚されたデータを、無闇にではなく +(通常はページャによって) 必要な時のみ物理的なメディアに +フラッシュするようにします。 +普通、このオプションにより、更新デーモンはこのマップで +汚されたページをフラッシュしないようになります。 +これにより、ファイルバックアップされた共有メモリのマッピングを使用して +無関係なプロセスの間でメモリアクセスを効率的に共有することが +できるようになります。 +このオプションがないと、汚された VM ページは頻繁 (通常 30-60 秒毎) に +ディスクにフラッシュされるかも知れず、そのような動作を必要としない場合 +(例えば IPC のためにファイルを用いた共有 mmap 領域を用いている場合) +パフォーマンスに問題が出ることがあります。 +.Dv MAP_NOSYNC +を使っているかにかかわらず、 +VM/ ファイルシステムの一貫性は保たれることに注意してください。 +このオプションは +.Ux +プラットフォーム間で (まだ) 移植性はありませんが、 +いくつかのプラットフォームではデフォルトで同じ動作をするように +実装されているかも知れません。 +.Pp +.Em 警告 ! +.Xr ftruncate 2 +を使いファイルを拡張してから、つまりファイルに大きな穴を空けてから、 +その穴を共有 +.Fn mmap +を修正して埋める場合、深刻なファイル断片化が生じる可能性があります。 +この断片化を避けるために、 +.Fn mmap +でその領域を修正する前に、新規に拡張した領域に 0 を +.Fn write +して、ファイルのバッキングストアを事前に割り当てておく必要があります。 +ディスクへのフラッシュが全くランダムに生じるため、 +断片化問題に特に敏感なのは、 +.Dv MAP_NOSYNC +ページです。 +.Pp +同じことが、 +.Dv MAP_NOSYNC +を使いファイルベースの共有メモリストアを実装する場合にも言えます。 +.Fn ftruncate +してバッキングストアを作るのではなく、0 を +.Fn write +してバッキングストアを作ることを推奨します。 +たとえば、 +.Dq Li dd if=filename of=/dev/null bs=32k +を使うなどして巨大なファイルをシーケンシャルに読み取りながら、 +.Dq Li iostat 1 +を呼び出すことで得られる KB/t (転送 1 回あたりのキロバイト数) を +観察することでファイル断片化のテストが可能です。 +.Pp +.Xr fsync 2 +システムコールはすべての汚染されたデータとファイルに関連づけられたメタデータ +(NOSYNC の汚れた VM データを含む) を物理的媒体にフラッシュします。 +.Xr sync 8 +コマンドと +.Xr sync 2 +システムコールは、汚染された NOSYNC VM のデータを通常フラッシュしません。 +.Xr msync 2 +システムコールは +.Bx +で整合性のあるファイルシステムのバッファキャッシュが実装されたので +廃止されました。 +しかしながら、汚れた VM ページとファイルシステムを結びつけ、 +物理的媒体にすぐに (後程ではなく) フラッシュさせる用途に +使われることもあります。 +.It Dv MAP_PRIVATE +修正はプロセス固有に行われます。 +.It Dv MAP_SHARED +修正は共有されます。 +.It Dv MAP_STACK +.Dv MAP_STACK +は +.Dv MAP_ANON +および 0 の +.Fa offset +指定を含みます。 +.Fa fd +引数は -1 でなければならず、 +.Fa prot +には少なくとも +.Dv PROT_READ +と +.Dv PROT_WRITE +が入っている必要があります。 +このオプションは、スタックの先頭を開始点とし下方に伸びる、サイズが最大で +.Fa len +バイトまで伸びるメモリ領域を作成します。 +スタックの先頭は、呼び出しから返された開始アドレスに +.Fa len +バイトを加えたものになります。 +最も伸びた場合のスタックの下端は、 +呼び出しによって返される開始アドレスになります。 +.El +.Pp +.Xr close 2 +システムコールはページをアンマップしません。 +詳細については +.Xr munmap 2 +を参照してください。 +.Pp +現在の設計ではプロセスはスワップ空間の位置を指定できません。 +将来は、追加のマッピングタイプ +.Dv MAP_SWAP +を定義するかもしれません。 +この場合、ファイル記述子引数には +スワップを行うべきファイルまたはデバイスを指定します。 +.Sh 戻り値 +正常に完了すると、 +.Fn mmap +は、マップされた領域を指すポインタを返します。 +そうでない場合は +値 +.Dv MAP_FAILED +が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn mmap +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EACCES +フラグ +.Dv PROT_READ +が +.Fa prot +引数の一部として指定されましたが、 +.Fa fd +が読取り用に開かれていませんでした。 +フラグ +.Dv MAP_SHARED +と +.Dv PROT_WRITE +が +.Fa flags +と +.Fa prot +引数の一部として指定されましたが、 +.Fa fd +は書込み用に開かれていませんでした。 +.It Bq Er EBADF +.Fa fd +引数が有効な開かれたファイルの記述子ではありません。 +.It Bq Er EINVAL +.Dv MAP_FIXED +が指定されて +.Fa addr +引数がページ境界に整列されていないか、または指定の +アドレスの一部がユーザプロセスの有効なアドレス空間の外になります。 +.It Bq Er EINVAL +.Fa len +引数が負でした。 +.It Bq Er EINVAL +.Dv MAP_ANON +が指定されて +.Fa fd +引数が -1 ではありませんでした。 +.It Bq Er EINVAL +.Dv MAP_ANON +が指定されておらず、 +.Fa fd +が通常のファイルまたはキャラクタ型特殊ファイルを参照していませんでした。 +.It Bq Er EINVAL +.Fa offset +引数がページ境界に整列していませんでした (後述する「 +.Sx バグ +の章」を参照)。 +.It Bq Er ENOMEM +.Dv MAP_FIXED +が指定されていますが、 +.Fa addr +引数が与えられていません。 +.Dv MAP_ANON +が指定されて利用できるメモリが不充分でした。 +sysctl 値 +.Va vm.nax_proc_mmap +で指定されたプロセス毎の mmap 限界に達しました。 +.El +.Sh 関連項目 +.Xr madvise 2 , +.Xr mincore 2 , +.Xr minherit 2 , +.Xr mlock 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munlock 2 , +.Xr munmap 2 , +.Xr getpagesize 3 , +.Xr make.conf 5 +.Sh バグ +.Fa len +引数は 2GB に限定されます。 +2GB をわずかに上回るマッピングは機能しませんが、 +2GB, 4GB, 6GB および 8GB よりわずかに少ないファイルサイズについて +(ファイルサイズ % 2GB) のサイズのウィンドウをマップできます。 +.Pp +制約は多彩な理由から生じています。 +そのほとんどは、パフォーマンス上の著しいペナルティのため、 +.Fx +では VM システム内で 64 ビットのオフセットを使用したくないことと +関係しています。 +したがって +.Fx +は 32 ビットのページインデックスを使用しており、これによって +.Fx +では最高で 8TB までのファイルサイズを利用できます。 +実際にはさらに制約が課されて使用可能サイズは 1TB までですが、 +これは、ファイルシステムコード内のバグによるものです +(ブロック番号計算を行っているときの桁落ち)。 +.Pp +2GB 制限のもうひとつの理由は、ファイルシステムメタデータが負のオフセットに +存在できるということです。 +.Pp +0 バイトを +.Fn mmap +しようとしても何の効果もなく、単に成功します。 +一方、0 バイトを +.Fn munmap +しようとすると +.Bq Er EINVAL +が返されることに注意してください。 diff --git a/documentation/manual-pages/ja/man2/modfind.2 b/documentation/manual-pages/ja/man2/modfind.2 new file mode 100644 index 0000000000..83ad989a9b --- /dev/null +++ b/documentation/manual-pages/ja/man2/modfind.2 @@ -0,0 +1,85 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/modfind.2,v 1.9 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd September 28, 2000 +.Dt MODFIND 2 +.Os +.Sh 名称 +.Nm modfind +.Nd カーネルモジュールの modid を返す +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/module.h +.Ft int +.Fn modfind "const char *modname" +.Sh 解説 +.Fn modfind +システムコールは +.Fa modname +によって参照されるカーネルモジュールの modid を返します。 +.Sh 戻り値 +.Fn modfind +システムコールは +.Fa file +によって参照されるカーネルモジュールの modid を返します。 +エラーがある場合、 +.Fn modfind +は -1 を返し、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn modfind +は処理を失敗すると、 +.Va errno +を以下のように設定します: +.Bl -tag -width Er +.It Bq Er EFAULT +この操作に必要なデータがカーネル空間から読み取れませんでした。 +.It Bq Er ENOENT +指定されたファイルはカーネルにロードされていません。 +.El +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/modnext.2 b/documentation/manual-pages/ja/man2/modnext.2 new file mode 100644 index 0000000000..f689213d57 --- /dev/null +++ b/documentation/manual-pages/ja/man2/modnext.2 @@ -0,0 +1,92 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/modnext.2,v 1.8 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd September 28, 2000 +.Dt MODNEXT 2 +.Os +.Sh 名称 +.Nm modnext +.Nd 次のカーネルモジュールの modid を返す +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/module.h +.Ft int +.Fn modnext "int modid" +.Ft int +.Fn modfnext "int modid" +.Sh 解説 +.Fn modnext +システムコールは次のカーネルモジュール (つまり、 +.Va modid +のひとつ後ろ) の modid を返します。 +.Va modid +がリスト内の最後のモジュールだったときは 0 を返します。 +.Pp +.Va modid +の値が 0 の場合、 +.Fn modnext +は最初のモジュールの modid を返します。 +常に有効な modid を +.Fn modfnext +システムコールに渡す必要があります。 +.Sh 戻り値 +.Fn modnext +システムコールは次のモジュール +.Sx ( 解説 +参照) の modid または 0 を返します。 +エラーが起きたときは、そのエラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn modnext +によるエラーは +.Er ENOENT +のみです。 +これは +.Va modid +が、存在しない (読み取られていない) カーネルモジュールを指していることを +示します。 +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modstat 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/modstat.2 b/documentation/manual-pages/ja/man2/modstat.2 new file mode 100644 index 0000000000..b69b7977fc --- /dev/null +++ b/documentation/manual-pages/ja/man2/modstat.2 @@ -0,0 +1,125 @@ +.\" +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/modstat.2,v 1.10 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd September 28, 2000 +.Dt MODSTAT 2 +.Os +.Sh 名称 +.Nm modstat +.Nd カーネルモジュールの状態を取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In sys/module.h +.Ft int +.Fn modstat "int modid" "struct module_stat *stat" +.Sh 解説 +.Fn modstat +システムコールは +.Fa modid +で参照されているカーネルモジュールに関する情報を +.Fa stat +に格納します。 +.Bd -literal +struct module_stat { + int version; /* set to sizeof(module_stat) */ + char name[MAXPATHLEN]; + int refs; + int id; + modspecific_t data; +}; +typedef union modspecific { + int intval; + u_int u_intval; + long longval; + u_long u_longval; +} modspecific_t; +.Ed +.Pp +.Bl -tag -width XXXaddress +.It version +このフィールドには、 +.Fn modstat +自体ではなく +.Fn modstat +を呼び出したコードによって、上記の構造体のサイズが設定されます。 +.It name +.Fa modid +で参照されているモジュールの名前。 +.It refs +.Fa modid +で参照されているモジュールの数。 +.It id +.Fa modid +で指定されているモジュールの id。 +.It data +モジュール特有のデータ。 +.El +.Sh 戻り値 +.Rv -std modstat +.Sh エラー +以下のようなエラーが発生しない限り、 +.Fa modid +によって参照されているモジュールに関する情報が +.Fa stat +が指している構造体に代入されます: +.Bl -tag -width Er +.It Bq Er ENOENT +モジュールが見つかりません (おそらくロードされていません)。 +.It Bq Er EINVAL +.Fa version +フィールドで指定されているバージョンが適切ではありません。 +適切なバージョンを +.Fa version +フィールドで指定しているにも関わらずこのエラーが起こるときは、 +OS 全体か、カーネルまたはプログラム自身を作り直す必要があるかもしれません。 +.It Bq Er EFAULT +.Xr copyout 9 +関数の中で、ひとつまたは複数あるいはすべてのフィールドを +.Fa stat +にコピー中に問題が発生しました。 +.El +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldsym 2 , +.Xr kldunload 2 , +.Xr modfind 2 , +.Xr modfnext 2 , +.Xr modnext 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/mount.2 b/documentation/manual-pages/ja/man2/mount.2 new file mode 100644 index 0000000000..a2db7e2601 --- /dev/null +++ b/documentation/manual-pages/ja/man2/mount.2 @@ -0,0 +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.2.1 2005/02/26 04:44:54 trhodes Exp % +.\" +.\" $FreeBSD$ +.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 +の +.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 の構成要素 +.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/documentation/manual-pages/ja/man2/mprotect.2 b/documentation/manual-pages/ja/man2/mprotect.2 new file mode 100644 index 0000000000..812651bf5a --- /dev/null +++ b/documentation/manual-pages/ja/man2/mprotect.2 @@ -0,0 +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 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/documentation/manual-pages/ja/man2/msync.2 b/documentation/manual-pages/ja/man2/msync.2 new file mode 100644 index 0000000000..59bdb1d5e9 --- /dev/null +++ b/documentation/manual-pages/ja/man2/msync.2 @@ -0,0 +1,104 @@ +.\" Copyright (c) 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)msync.2 8.2 (Berkeley) 6/21/94 +.\" %FreeBSD: src/lib/libc/sys/msync.2,v 1.27 2004/06/30 20:09:10 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 21, 1994 +.Dt MSYNC 2 +.Os +.Sh 名称 +.Nm msync +.Nd マップされた領域を同期化する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/mman.h +.Ft int +.Fn msync "void *addr" "size_t len" "int flags" +.Sh 解説 +.Fn msync +システムコールは、修正されたページをファイルシステムに書き込んで +ファイル修正時刻を更新します。 +.Fa len +が 0 の場合、 +.Fa addr +を含むリージョン内のすべての修正済みページがフラッシュされます。 +.Fa len +が 0 でない場合、 +.Fa addr +から +.Fa len-1 +の範囲を含むページだけが調べられます。 +.Fa flags +引数は次のように指定できます: +.Pp +.Bl -tag -width ".Dv MS_INVALIDATE" -compact +.It Dv MS_ASYNC +ただちに戻ります +.It Dv MS_SYNC +同期書込みを実行します +.It Dv MS_INVALIDATE +キャッシュされたデータをすべて無効にします +.El +.Sh 戻り値 +.Rv -std msync +.Sh エラー +.Fn msync +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBUSY +指定された領域の一部またはすべてのページがロックされており、 +.Dv MS_INVALIDATE +が指定されました。 +.It Bq Er EINVAL +.Fa addr +引数はハードウェアページサイズの倍数ではありません。 +.It Bq Er EINVAL +.Fa len +引数が大きすぎるか、または負です。 +.It Bq Er EINVAL +.Fa flags +引数に MS_ASYNC と MS_INVALIDATE の両方が指定されました。 +これらのフラグは同時に指定することはできません。 +.El +.Sh 関連項目 +.Xr madvise 2 , +.Xr mincore 2 , +.Xr mlock 2 , +.Xr mprotect 2 , +.Xr munmap 2 +.Sh 歴史 +.Fn msync +システムコールは +.Bx 4.4 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/munmap.2 b/documentation/manual-pages/ja/man2/munmap.2 new file mode 100644 index 0000000000..e64c38e6ac --- /dev/null +++ b/documentation/manual-pages/ja/man2/munmap.2 @@ -0,0 +1,77 @@ +.\" 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. +.\" +.\" @(#)munmap.2 8.3 (Berkeley) 5/27/94 +.\" %FreeBSD: src/lib/libc/sys/munmap.2,v 1.19 2003/11/10 08:02:05 des Exp % +.\" +.\" $FreeBSD$ +.Dd May 27, 1994 +.Dt MUNMAP 2 +.Os +.Sh 名称 +.Nm munmap +.Nd マッピングを除去する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/mman.h +.Ft int +.Fn munmap "void *addr" "size_t len" +.Sh 解説 +.Fn munmap +システムコールは指定アドレス範囲についてマッピングを除去します。 +これにより、以降のこのアドレス範囲内への参照は +無効なメモリ参照を引き起こすようになります。 +.Sh 戻り値 +.Rv -std munmap +.Sh エラー +.Fn munmap +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +引数がページ境界に整列していなかったか、 +.Fa len +引数が 0 か負であったか、またはアンマップする領域の一部が +プロセスにとって有効な範囲外にあります。 +.El +.Sh 関連項目 +.Xr madvise 2 , +.Xr mincore 2 , +.Xr mmap 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr getpagesize 3 +.Sh 歴史 +.Fn munmap +システムコールは +.Bx 4.4 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/nanosleep.2 b/documentation/manual-pages/ja/man2/nanosleep.2 new file mode 100644 index 0000000000..6889929f99 --- /dev/null +++ b/documentation/manual-pages/ja/man2/nanosleep.2 @@ -0,0 +1,103 @@ +.\" +.\" $OpenBSD: nanosleep.2,v 1.1 1997/04/20 20:56:20 tholo Exp $ +.\" %NetBSD: nanosleep.2,v 1.1 1997/04/17 18:12:02 jtc Exp % +.\" +.\" Copyright (c) 1986, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)sleep.3 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/nanosleep.2,v 1.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/documentation/manual-pages/ja/man2/nfssvc.2 b/documentation/manual-pages/ja/man2/nfssvc.2 new file mode 100644 index 0000000000..ea1cecc75a --- /dev/null +++ b/documentation/manual-pages/ja/man2/nfssvc.2 @@ -0,0 +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 +で +.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 +で戻ります。 +.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/documentation/manual-pages/ja/man2/ntp_adjtime.2 b/documentation/manual-pages/ja/man2/ntp_adjtime.2 new file mode 100644 index 0000000000..34c2a65a2a --- /dev/null +++ b/documentation/manual-pages/ja/man2/ntp_adjtime.2 @@ -0,0 +1,144 @@ +.\" +.\" Copyright (c) 2003 Tom Rhodes +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/ntp_adjtime.2,v 1.2 2003/06/20 21:14:59 imp Exp % +.\" +.\" $FreeBSD$ +.Dd April 1, 2003 +.Dt NTP_ADJTIME 2 +.Os +.Sh 名称 +.Nm ntp_adjtime +.Nd NTP デーモンアプリケーションインタフェース +.Sh 書式 +.In sys/types.h +.In sys/timex.h +.Ft int +.Fn ntp_adjtime "struct timex *tp" +.Sh 解説 +.Fn ntp_adjtime +システムコールは Network Time Protocol (ネットワークタイムプロトコル) デーモン +.Xr ntpd 8 +のためのカーネルインタフェースとして使用されます。 +.Vt timex +構造体の特定のフィールドは、 +.Va status +ワードの +.Dv STA_NANO +ビットの状態に従って、マイクロ秒またはナノ秒に変換されます。 +.Pp +.Fx +カーネルの中では、 +.Fn ntp_adjtime +および +.Xr ntp_gettime 2 +システムコールはどちらの分解能を使用するかを決定するために、または +もう一方を選択するために、いつでも使用することが可能です。 +選択された分解能は、 +.Fn ntp_gettime +および +.Fn ntp_adjtime +システムコールの中の特定のフィールドのスケーリングに影響を及ぼします。 +.Pp +この +.Tn API +は非常に複雑で、状態があることに注意してください。 +ユーザは、はじめに +.Xr ntpd 8 +のソースを徹底的に吟味することなしに、修正を試みるべきではありません。 +.Bd -literal +/* + * NTP デーモンインタフェース (ntp_adjtime()) - CPU クロック発振器の + * 制御規約と状態の決定のために使用されます。 + * + * 注意: offset, precision および jitter メンバは STA_NANO が 0 であれば + * マイクロ秒で、そうでなければナノ秒です。 + */ +struct timex { + unsigned int modes; /* クロックモードビット (wo) */ + long offset; /* 時刻オフセット (ns/us) (rw) */ + long freq; /* 周波数オフセット (PPM 単位) (rw) */ + long maxerror; /* 最大誤差 (us) (rw) */ + long esterror; /* 推定誤差 (us) (rw) */ + int status; /* クロック状態ビット (rw) */ + long constant; /* ポール間隔 (log2 s) (rw) */ + long precision; /* 時刻の精度 (ns/us) (ro) */ + long tolerance; /* クロック周波数の公差 (PPM 単位) (ro) */ + /* + * 以下の読み取り専用の構造体メンバは、カーネル内に PPS + * シグナル制御規約がコンフィギュレーションされている場合のみ + * 実装されます。これらはポータビリティを保証するために、全ての + * コンフィギュレーションに含まれます。 + */ + long ppsfreq; /* PPS 周波数 (PPM 単位) (ro) */ + long jitter; /* PPS ジッタ (ns/us) (ro) */ + int shift; /* 存続期間 (s) (シフト) (ro) */ + long stabil; /* PPS 安定性 (PPM 単位) (ro) */ + long jitcnt; /* 超過したジッタ制限 (ro) */ + long calcnt; /* 測定間隔 (ro) */ + long errcnt; /* 測定誤差 (ro) */ + long stbcnt; /* 超過した安定性制限 (ro) */ +}; +.Ed +.Pp +成功して完了したときには、 +.Fn ntp_adjtime +は +.Fa tp +引数に現在のクロックの状態を入れます。 +.Sh 戻り値 +成功時には完了したクロック状態が返されます。 +そうでなければ、\-1 が返されグローバル変数 +.Va errno +がそのエラーを示すために設定されます。 +.Pp +起こりうるクロックの状態は以下のとおりです: +.Pp +.Bl -tag -compact -width ".Dv TIME_ERROR" +.It Dv TIME_OK +全てが OK で、閏秒の警告もありません。 +.It Dv TIME_INS +閏秒挿入の警告です。 +.It Dv TIME_DEL +閏秒削除の警告です。 +.It Dv TIME_OOP +閏秒の経過中です。 +.It Dv TIME_WAIT +閏秒が発生しました。 +.It Dv TIME_ERROR +クロックが同期していません。 +.El +.Sh エラー +.Fn ntp_gettime +システムコールは、呼び出し側が十分なパーミッションを持っていない場合に、 +.Er EPERM +を返すことがあります。 +.Sh 関連項目 +.Xr ntp_gettime 2 , +.Xr ntpd 8 +.Sh 作者 +このマニュアルページは +.An Tom Rhodes Aq trhodes@FreeBSD.org +が書きました。 diff --git a/documentation/manual-pages/ja/man2/ntp_gettime.2 b/documentation/manual-pages/ja/man2/ntp_gettime.2 new file mode 100644 index 0000000000..2e6a87d9a1 --- /dev/null +++ b/documentation/manual-pages/ja/man2/ntp_gettime.2 @@ -0,0 +1,115 @@ +.\" +.\" Copyright (c) 2003 Tom Rhodes +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/ntp_gettime.2,v 1.4 2004/07/02 19:07:30 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 21,2003 +.Dt NTP_GETTIME 2 +.Os +.Sh 名称 +.Nm ntp_gettime +.Nd NTP ユーザアプリケーションインタフェース +.Sh 書式 +.In sys/timex.h +.Ft int +.Fn ntp_gettime "struct ntptimeval *ntv" +.Sh 解説 +.Fn ntp_gettime +によって返される時刻は、 +.Vt timespec +構造体に格納されますが、マイクロ秒 (秒とマイクロ秒) または +ナノ秒 (秒とナノ秒) のどちらかの形式であることができます。 +使用中の特有の形式は、 +.Fn ntp_adjtime +システムコールによって返される status ワードの +.Dv STA_NANO +ビットによって決定されます。 +.Fn ntp_gettime +は以下のメンバを持つ +.Vt ntptimeval +構造体へのポインタを引数として持ちます: +.Bd -literal +struct ntptimeval { + struct timespec time; /* 現在の時刻 (ns) (ro) */ + long maxerror; /* 最大誤差 (us) (ro) */ + long esterror; /* 推定誤差 (us) (ro) */ + long tai; /* TAI-UTC オフセット */ + int time_state; /* 時間状態 */ +}; +.Ed +.Pp +これらは以下のように理解されます: +.Bl -tag -width ".Va time_state" +.It Va time +現在の時刻です (読取り専用)。 +.It Va maxerror +マイクロ秒単位での最大誤差です (読取り専用)。 +.It Va esterror +マイクロ秒単位での推定誤差です (読取り専用)。 +.It Va tai +TAI および UTC の時間スケールの間の秒単位のオフセットです。 +このオフセットは 1 年毎に 2 回発行され、 +TAI (閏秒がない) と UTC (閏秒がある) との間の整数秒差です。 +.Xr ntpd 8 +またはその他のエージェントがこの値を管理します。 +値 0 は不明を意味します。 +このマニュアルページの日付では、このオフセットは 32 秒です。 +.It Va time_state +現在時刻の状態です。 +.El +.Sh 戻り値 +.Rv -std ntp_gettime +.Pp +起こりうるクロックの状態は以下のとおりです: +.Pp +.Bl -tag -compact -width ".Dv TIME_ERROR" +.It Dv TIME_OK +全てが OK で、閏秒の警告もありません。 +.It Dv TIME_INS +正の閏秒の警告です。 +この日の最後の 23:59:59 の後に追加の 1 秒が挿入されます。 +.It Dv TIME_DEL +負の閏秒の警告です。 +この日の最後の 23:59:59 はスキップされます。 +.It Dv TIME_OOP +閏秒の経過中です。 +.It Dv TIME_WAIT +閏秒が発生しました。 +.It Dv TIME_ERROR +クロックが同期していません。 +.El +.Sh 関連項目 +.Xr ntp_adjtime 2 , +.Xr ntpd 8 +.Bl -tag -width indent +.It Pa http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html +.It Pa http://www.boulder.nist.gov/timefreq/general/faq.htm +.It Pa ftp://time.nist.gov/pub/leap-seconds.list +.El +.Sh 作者 +このマニュアルページは +.An Tom Rhodes Aq trhodes@FreeBSD.org +が書きました。 diff --git a/documentation/manual-pages/ja/man2/open.2 b/documentation/manual-pages/ja/man2/open.2 new file mode 100644 index 0000000000..05c80dd5b2 --- /dev/null +++ b/documentation/manual-pages/ja/man2/open.2 @@ -0,0 +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_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/documentation/manual-pages/ja/man2/pathconf.2 b/documentation/manual-pages/ja/man2/pathconf.2 new file mode 100644 index 0000000000..06bb7635b4 --- /dev/null +++ b/documentation/manual-pages/ja/man2/pathconf.2 @@ -0,0 +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.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 <unistd.h> +にあります。 +.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 Dv NAME_MAX +よりも長いパス名を使用しようとすると +.Bq Er ENAMETOOLONG +エラーを引き起こす場合は、0 より大きい値を返します。 +そうでない場合には、このような構成要素は +.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/documentation/manual-pages/ja/man2/pipe.2 b/documentation/manual-pages/ja/man2/pipe.2 new file mode 100644 index 0000000000..530e7a5ab8 --- /dev/null +++ b/documentation/manual-pages/ja/man2/pipe.2 @@ -0,0 +1,115 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)pipe.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/pipe.2,v 1.21 2004/07/03 22:30:09 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt PIPE 2 +.Os +.Sh 名称 +.Nm pipe +.Nd プロセス間通信のための記述子のペアを作成する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn pipe "int *fildes" +.Sh 解説 +.Fn pipe +システムコールは +双方向のデータフローを可能とするオブジェクトである +.Em pipe +を作成し、ペアのファイル記述子を割り当てます。 +.Pp +慣習により、通常は 1 番めの記述子がパイプの +.Em 読取り側 +として使用され、2 番めの記述子が +.Em 書込み側 +として使用されます。 +ですので、 +.Fa fildes[1] +に書き込まれたデータが +.Fa fildes[0] +に現れます (すなわち、 +.Fa fildes[0] +から読み取れます)。 +これを使えば 1 つのプログラムの出力を別のプログラムに送信できます。 +送信側の標準出力をパイプの書込み側としてセットアップし、 +受信側の標準入力をパイプの読取り側としてセットアップしてください。 +パイプ自体は、すべての対応する記述子がクローズされるまで持続します。 +.Pp +一端が閉じているパイプは +.Em widowed +(相手を失った) と見なされます。 +このようなパイプに書込みをすると、書込みプロセスは +.Dv SIGPIPE +シグナルを受信します。 +読取り側にファイルの終了を伝える方法は、 +書込み側のパイプをクローズするしかありません。 +読取り側がバッファに入っているデータを使い切った後、相手を失ったパイプを +読み取ると 0 カウントが返されます。 +.Pp +このパイプの実装における双方向という性質は、 +古いシステムと互換性がありません。 +ですので、パイプを一方向にしか使用しないときには、 +従来の方法で端点を使用するこの慣習に従うことをお勧めします。 +.Sh 戻り値 +.Rv -std pipe +.Sh エラー +.Fn pipe +システムコールは次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EMFILE +アクティブな記述子が多すぎます。 +.It Bq Er ENFILE +システムファイルテーブルが満杯です。 +.It Bq Er EFAULT +.Fa fildes +バッファがプロセスのアドレス空間の不正な領域にあります。 +.El +.Sh 関連項目 +.Xr sh 1 , +.Xr fork 2 , +.Xr read 2 , +.Xr socketpair 2 , +.Xr write 2 +.Sh 歴史 +.Fn pipe +関数は +.At v3 +で登場しました。 +.Pp +双方向パイプははじめて +.At V.4 +で使用されました。 diff --git a/documentation/manual-pages/ja/man2/poll.2 b/documentation/manual-pages/ja/man2/poll.2 new file mode 100644 index 0000000000..e44866570d --- /dev/null +++ b/documentation/manual-pages/ja/man2/poll.2 @@ -0,0 +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 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/documentation/manual-pages/ja/man2/profil.2 b/documentation/manual-pages/ja/man2/profil.2 new file mode 100644 index 0000000000..28fe304c3b --- /dev/null +++ b/documentation/manual-pages/ja/man2/profil.2 @@ -0,0 +1,120 @@ +.\" Copyright (c) 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Donn Seeley of BSDI. +.\" +.\" 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. +.\" +.\" @(#)profil.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/profil.2,v 1.14 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt PROFIL 2 +.Os +.Sh 名称 +.Nm profil +.Nd プロセスのプロファイルを制御する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn profil "char *samples" "size_t size" "vm_offset_t offset" "int scale" +.Sh 解説 +.Fn profil +システムコールは、現在のプロセスのカウンタプロファイルを有効化または +無効化します。 +プロファイルが有効な場合、プロファイルクロックチックごとに、カーネルは +.Fa samples +バッファ内の適切なカウントを更新します。 +プロファイルクロックの周波数は、 +プロファイル出力ファイル内のヘッダ内に記録されます。 +.Pp +バッファ +.Fa samples +には +.Fa size +バイトが含まれており、一連の 16 ビットの塊に分割されます。 +各塊は、プロファイルが有効時にプロファイルクロックチックが発生したときに、 +プログラムカウンタがプロセス内の特別なアドレス範囲内にあった回数を +カウントします。 +指定のプログラムカウンタアドレスについて、対応する塊の数が +次の関係によって与えられます。 +.Bd -literal -offset indent +[(pc - offset) / 2] * scale / 65536 +.Ed +.Pp +.Fa offset +引数は、カーネルがプログラムカウンタサンプルを +取る最も低いアドレスです。 +.Fa scale +引数の範囲は 1 から 65536 であり、 +塊の広がりを変更するのに使用できます。 +スケール 65536 は、各塊をアドレス範囲の 2 バイトに割り当てます。 +スケール 32768 は 4 バイト、16384 は 8 バイト、後は同様です。 +中間の値はおおよそ中間の範囲を与えます。 +.Fa scale +値が 0 の場合、プロファイルは無効になります。 +.Sh 戻り値 +.Rv -std profil +.Sh 関連ファイル +.Bl -tag -width /usr/lib/gcrt0.o -compact +.It Pa /usr/lib/gcrt0.o +プロファイリング用の C ランタイムスタートアップファイル +.It Pa gmon.out +プロファイル出力ファイルの従来の名前 +.El +.Sh エラー +次のエラーが報告される可能性があります: +.Bl -tag -width Er +.It Bq Er EFAULT +バッファ +.Fa samples +に無効なアドレスが入っています。 +.El +.Sh 関連項目 +.Xr gprof 1 +.Sh 歴史 +.Fn profil +関数は +.At v7 +で登場しました。 +.Sh バグ +このルーチンの名前は +.Fn profile +にすべきです。 +.Pp +.Fa samples +引数は本当はベクトル +.Fa "unsigned short" +のベクトルである必要があります。 +.Pp +gmon.out ファイルの形式は記述されていません。 diff --git a/documentation/manual-pages/ja/man2/ptrace.2 b/documentation/manual-pages/ja/man2/ptrace.2 new file mode 100644 index 0000000000..7e8ff643a3 --- /dev/null +++ b/documentation/manual-pages/ja/man2/ptrace.2 @@ -0,0 +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 +引数が、読取りが行われる (トレースされるプロセスの仮想アドレス空間内の) +アドレスを指定します。 +このアドレスはどのような境界調整制約も満たす必要はありません。 +読み取られた値は +.Fn ptrace +からの戻り値として返されます。 +.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 +.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 +が指す +.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/documentation/manual-pages/ja/man2/quotactl.2 b/documentation/manual-pages/ja/man2/quotactl.2 new file mode 100644 index 0000000000..eb829edb25 --- /dev/null +++ b/documentation/manual-pages/ja/man2/quotactl.2 @@ -0,0 +1,232 @@ +.\" Copyright (c) 1983, 1990, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Robert Elz at The University of Melbourne. +.\" +.\" 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. +.\" +.\" @(#)quotactl.2 8.2 (Berkeley) 3/10/95 +.\" %FreeBSD: src/lib/libc/sys/quotactl.2,v 1.23 2003/09/10 19:24:33 ru Exp % +.\" +.\" WORD: quota 割り当て制限 +.\" WORD: quota file 割り当て制限情報ファイル +.\" WORD: quota file 割り当て制限を記録したファイル +.\" WORD: usage 使用状況 +.\" +.\" $FreeBSD$ +.Dd March 5, 1999 +.Dt QUOTACTL 2 +.Os +.Sh 名称 +.Nm quotactl +.Nd ファイルシステム割り当て制限を操作する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In ufs/ufs/quota.h +.Ft int +.Fn quotactl "const char *path" "int cmd" "int id" "void *addr" +.Sh 解説 +.Fn quotactl +システムコールは、 +ファイルシステムの割り当て制限を有効や無効にしたり、操作します。 +.Fa cmd +で与えられた割り当て制限制御コマンドは、 +.Fa id +で指定されたユーザと +.Fa path +で指定されたファイルに対して動作します (注: +.Fa cmd +の値を明確に表すために、 +.In ufs/ufs/quota.h +で定義されている QCMD マクロを使用すべきです)。 +オプションとして各コマンド固有のデータ構造体のアドレスを +.Fa addr +に指定できます。 +これがどう解釈されるかは各コマンド毎に後述します。 +.Pp +現時点で、割り当て制限は +.Dq ufs +ファイルシステムについてのみサポートされています。 +.Dq ufs +の場合、コマンドは主たるコマンド (後述) および +.Fa id +引数の解釈方法を指示するコマンドタイプで構成されます。 +コマンドタイプは、 +.Fa id +をユーザ識別子として解釈する (USRQUOTA) と、 +グループ識別子として解釈する (GRPQUOTA) がサポートされています。 +.Dq ufs +固有のコマンドは次のとおりです: +.Bl -tag -width Q_QUOTAOFFxx +.It Dv Q_QUOTAON +.Fa path +で指定されるファイルシステム用のディスク割り当て制限を有効にします。 +コマンドタイプには有効にする割り当て制限の種類を指定します。 +.Fa addr +引数には、割り当て制限情報を取り出すファイルを指定します。 +割り当て制限を記録したファイルが存在している必要があります。 +このファイルは通常、 +.Xr quotacheck 8 +プログラムで作成されます。 +.Fa id +引数は使用されません。 +スーパユーザだけが割り当て制限をオンにできます。 +.It Dv Q_QUOTAOFF +.Fa path +で指定されるファイルシステムに対する、ディスク割り当て制限を無効にします。 +コマンドタイプには、無効にする割り当て制限の種類を指定します。 +.Fa addr +引数と +.Fa id +引数は使用されません。 +スーパユーザだけが割り当て制限をオフにできます。 +.It Dv Q_GETQUOTA +識別子 +.Fa id +で指定されるユーザまたはグループ +(どちらであるかはコマンドタイプによって決定されます) +の、ディスク割り当て制限と現在の使用状況を取得します。 +.Fa addr +引数は、 +.Fa struct dqblk +構造体 +.In ( ufs/ufs/quota.h +で定義されています) を指すポインタです。 +.It Dv Q_SETQUOTA +識別子 +.Fa id +で指定されるユーザまたはグループ +(どちらであるかはコマンドタイプによって決定されます) +のディスク割り当て制限を設定します。 +.Fa addr +引数は、 +.Fa struct dqblk +構造体 +.In ( ufs/ufs/quota.h +で定義されています) を指すポインタです。 +.Fa dqblk +構造体の使用状況を示すフィールドは無視されます。 +このシステムコールはスーパユーザだけに制限されています。 +.It Dv Q_SETUSE +識別子 +.Fa id +で指定されるユーザまたはグループ +(どちらであるかはコマンドタイプによって決定されます) +のディスク使用制限を設定します。 +.Fa addr +引数は、 +.Fa struct dqblk +構造体 +.In ( ufs/ufs/quota.h +で定義されています) を指すポインタで、 +使用状況を示すフィールドだけが使われます。 +このシステムコールはスーパユーザだけに制限されています。 +.It Dv Q_SYNC +割り当て使用状況の、ディスク上のコピーを更新します。 +コマンドタイプには、どのタイプの割り当て制限を更新するかを指定します。 +.Fa id +引数と +.Fa addr +引数は無視されます。 +.El +.Sh 戻り値 +.Rv -std quotactl +.Sh エラー +.Fn quotactl +システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EOPNOTSUPP +カーネルが +.Dv QUOTA +オプションを指定してコンパイルされていません。 +.It Bq Er EUSERS +割り当て制限のテーブルを拡張できません。 +.It Bq Er EINVAL +.Fa cmd +引数またはコマンドタイプが無効です。 +.Dv Q_GETQUOTA +および +.Dv Q_SETQUOTA +では、クォータはこのシステムに対して現在有効ではありません。 +.It Bq Er EACCES +.Dv Q_QUOTAON +において、割り当て制限情報ファイルがプレーンファイルではありません。 +.It Bq Er EACCES +指定されたパスには、検索が許可されていないディレクトリが含まれています。 +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定されたファイルが存在しません。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EROFS +.Dv Q_QUOTAON +で、割り当て制限を記録したファイルが +読取り専用ファイルシステム上にあります。 +.It Bq Er EIO +割り当て制限を記録したファイルに読み書きしている間に +.Tn I/O +(入出力) エラーが発生しました。 +.It Bq Er EFAULT +無効な +.Fa addr +が指定されました。 +対応する構造体をカーネルに、またはカーネルからコピーできませんでした。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EPERM +特権が必要な呼び出しであったにも関わらず、 +スーパユーザ以外のユーザによって呼び出されました。 +.El +.Sh 関連項目 +.Xr quota 1 , +.Xr fstab 5 , +.Xr edquota 8 , +.Xr quotacheck 8 , +.Xr quotaon 8 , +.Xr repquota 8 +.Sh バグ +このシステムコールを +.Xr setrlimit 2 +および +.Xr getrlimit 2 +で提供されるリソース制限に関するインタフェースと統合する、 +何らかの方法があるはずです。 +.Sh 歴史 +.Fn quotactl +システムコールは +.Bx 4.3 Reno +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/read.2 b/documentation/manual-pages/ja/man2/read.2 new file mode 100644 index 0000000000..ff66800c85 --- /dev/null +++ b/documentation/manual-pages/ja/man2/read.2 @@ -0,0 +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.2.1 2004/11/13 11:55:41 yar Exp % +.\" +.\" $FreeBSD$ +.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/documentation/manual-pages/ja/man2/readlink.2 b/documentation/manual-pages/ja/man2/readlink.2 new file mode 100644 index 0000000000..306bb07f69 --- /dev/null +++ b/documentation/manual-pages/ja/man2/readlink.2 @@ -0,0 +1,100 @@ +.\" 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. +.\" +.\" @(#)readlink.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/readlink.2,v 1.13 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt READLINK 2 +.Os +.Sh 名称 +.Nm readlink +.Nd シンボリックリンクの値を読み取る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn readlink "const char *path" "char *buf" "int bufsiz" +.Sh 解説 +.Fn readlink +システムコールは、 +.Fa bufsiz +サイズであるバッファ +.Fa buf +内にシンボリックリンク +.Fa path +の内容を配置します。 +.Fn readlink +システムコールは +.Fa buf +の末尾に +.Dv NUL +文字を追加しません。 +.Sh 戻り値 +呼び出しが正常に完了した場合、バッファ内に配置した文字数を返します。 +エラーが起きた場合は -1 を返し、エラーコードがグローバル変数 +.Va errno +に設定されます。 +.Sh エラー +.Fn readlink +システムコールは次の場合に失敗します: +.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 EINVAL +指定のファイルがシンボリックリンクではありません。 +.It Bq Er EIO +ファイルシステムから読み取る間に入出力エラーが発生しました。 +.It Bq Er EFAULT +.Fa buf +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr lstat 2 , +.Xr stat 2 , +.Xr symlink 2 , +.Xr symlink 7 +.Sh 歴史 +.Fn readlink +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/reboot.2 b/documentation/manual-pages/ja/man2/reboot.2 new file mode 100644 index 0000000000..60de7452e4 --- /dev/null +++ b/documentation/manual-pages/ja/man2/reboot.2 @@ -0,0 +1,170 @@ +.\" 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. +.\" +.\" @(#)reboot.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/reboot.2,v 1.18 2003/09/08 19:57:16 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt REBOOT 2 +.Os +.Sh 名称 +.Nm reboot +.Nd システムをリブートするかまたはプロセッサを停止する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.In sys/reboot.h +.Ft int +.Fn reboot "int howto" +.Sh 解説 +.Fn reboot +システムコールはシステムをリブートします。 +スーパユーザだけが必要に応じてマシンをリブートできます。 +しかし、回復不可能なシステム障害の場合は、リブートは自動的に起動されます。 +.Pp +.Fa howto +引数はオプションのマスクです。 +システムコールインタフェースはインクルードファイル +.In sys/reboot.h +内に定義された次のオプションを受付け、 +新しいカーネルまたは新しいブートストラップと +init プログラムに渡されるようにします。 +.Bl -tag -width RB_INITNAMEA +.It Dv RB_AUTOBOOT +デフォルト。 +システムが通常の方法でリブートするようにします。 +.It Dv RB_ASKNAME +ブートストラッププログラム自体によって解釈され、 +どのファイルをブートすべきかについて、 +コンソールにプロンプトを表示するようにします。 +通常、システムはファイル +.Dq Ar xx Ns No (0,0)kernel +からブートされます。 +ここで、 +.Ar xx +はファイル名を入力するようにプロンプトを出さない場合の、 +デフォルトのディスク名です。 +.It Dv RB_DFLTROOT +コンパイル時に指定されたルートデバイスを使用します。 +通常、システムは、 +可能であればブートされたデバイスをルートデバイスとして使用します +(デフォルトの動作は、システムがどのドライブからロードされたかを判別する +ブートストラッププログラムの能力に依存します。 +これはすべてのシステムで可能なわけではありません)。 +.It Dv RB_DUMP +リブートの前にカーネルメモリをダンプします。 +詳細については、 +.Xr savecore 8 +を参照してください。 +.It Dv RB_HALT +プロセッサは単に停止されます。 +リブートは起きません。 +このオプションは注意して使用する必要があります。 +.It Dv RB_POWEROFF +システム停止の後、シャットダウンコードは、可能であれば電源を切ります。 +これにはハードウェアのサポートが必要です。 +.It Dv RB_INITNAME +システムがリブートした際に、 +.Pa /sbin/init +以外の init プログラム +.Pf ( Xr init 8 +を参照) が実行されるよう指定するオプションです。 +このスイッチは現時点では無効です。 +.It Dv RB_KDB +シンボルテーブルをロードし、システム内の組み込みデバッガを有効にします。 +カーネルがデバッグ用に構成されていない場合、このオプションは意味を持ちません。 +これ以外のいくつかのオプションは、このオプションと組み合わせると +通常と異なる意味を持つようになりますが、それらの機能を使用することは +.Fn reboot +システムコールでは不可能な場合があります。 +詳細については、 +.Xr ddb 4 +を参照してください。 +.It Dv RB_NOSYNC +通常、プロセッサが停止されるかまたはリブートされる前に、ディスクへまだ +書き込まれていないデータがあればそれを書き込みます +.Pf ( Xr sync 8 +を参照)。 +このオプションは、ファイルシステムへの変更が手作業で行われた場合や、 +プロセッサが暴走している場合、有用なことがあります。 +.It Dv RB_RDONLY +初期段階で、ルートファイルシステムを読取り専用でマウントします。 +現在はこれがデフォルトであり、このオプションは無意味なものになっています。 +.It Dv RB_SINGLE +通常のリブート処理ではまず自動的にディスクの一貫性チェックが行われ、 +次いでマルチユーザ環境へ移行するようになっています。 +.Dv RB_SINGLE +は、これを行わず、 +システムをコンソール上のシングルユーザシェルでブートします。 +.Dv RB_SINGLE +は、実際にはブートし直されたシステムで +.Xr init 8 +プログラムによって解釈されます。 +.El +.Pp +オプションを指定しない場合 (すなわち、 +.Dv RB_AUTOBOOT +が使用される場合)、システムは、プロセッサが所定の方法で選択した +ユニット 0 のディスクのルートファイルシステムにある +.Dq kernel +というファイルからリブートされます。 +この際、通常はディスクの一貫性チェックが自動的に実行されます +.Pf ( Xr fsck 8 +を参照)。 +.Sh 戻り値 +正常に処理が終了した場合、この呼び出しは戻ることはありません。 +そうでない場合は -1 が返され、エラーがグローバル変数 +.Va errno +内に返されます。 +.Sh エラー +.Bl -tag -width Er +.It Bq Er EPERM +呼び出し側がスーパユーザではありません。 +.El +.Sh 関連項目 +.Xr crash 8 , +.Xr halt 8 , +.Xr init 8 , +.Xr reboot 8 , +.Xr savecore 8 +.Sh バグ +HP300 システムは、 +.Dv RB_DFLTROOT +と +.Dv RB_KDB +のどちらもサポートしていません。 +.Sh 歴史 +.Fn reboot +システムコールは +.Bx 4.0 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/recv.2 b/documentation/manual-pages/ja/man2/recv.2 new file mode 100644 index 0000000000..cbf4d29053 --- /dev/null +++ b/documentation/manual-pages/ja/man2/recv.2 @@ -0,0 +1,316 @@ +.\" 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.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 +が NULL ポインタでなく、ソケットが接続指向でない場合、 +ここにはメッセージのソースアドレスが保存されます。 +.Fa fromlen +引数は値と結果の引数であり、 +.Fa from +に対応するバッファのサイズに初期化され、 +戻り時には保存されたアドレスの実際のサイズを示すように変更されます。 +.Pp +.Fn recv +システムコールは、通常 +.Em 接続された +ソケット上だけで使用され +.Pf ( Xr connect 2 +を参照)、 +.Fa from +引数に 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 +.Fn recv +関数への +.Fa flags +引数は、次の値の 1 つまたは複数の論理和 +.\".Em or Ap ing +.Em ( or ) +から成ります: +.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 +フラグは帯域外データの受信を要求し、 +通常のデータストリームからは受信しません。 +急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、 +このフラグはそのようなプロトコルでは使用できません。 +.Dv MSG_PEEK +フラグは受信待ち行列の先頭からデータを除去することなく、 +そのデータを返します。 +したがって、後続の受信呼び出しは同じデータを返します。 +.Dv MSG_WAITALL +フラグは要求が完全に満たされるまでブロックするように要求します。 +しかし、シグナルが捕捉された場合、エラーまたは切断が発生した場合、 +または受信する次のデータが返されたタイプと異なる +場合、呼び出しは要求されたより少ないデータを返す可能性があります。 +.Dv MSG_DONTWAIT +フラグは、フラグが指定されてなかったらブロックするような時に、 +戻ることを要求します。 +利用可能なデータが無い場合には、 +.Va errno +が +.Er EAGAIN +に設定されます。 +このフラグは、厳格な +.Tn ANSI +または C99 のコンパイルモードでは利用できません。 +.Pp +.Fn recvmsg +システムコールは、直接に指定される引数の数を最小にするために +.Fa msghdr +構造体を使用します。 +この構造体は +.In sys/socket.h +で定義されているように、次の形式になっています: +.Pp +.Bd -literal +struct msghdr { + caddr_t msg_name; /* アドレス (オプション) */ + u_int msg_namelen; /* アドレスのサイズ */ + struct iovec *msg_iov; /* スキャッタ / ギャザー配列 */ + u_int msg_iovlen; /* msg_iov の要素数 */ + caddr_t msg_control; /* 補助データ、後述 */ + u_int msg_controllen; /* 補助データのバッファ長 */ + int msg_flags; /* 受信されたメッセージ上のフラグ */ +}; +.Ed +.Pp +ここで +.Fa msg_name +と +.Fa msg_namelen +は、ソケットが接続されていない場合に、宛先アドレスを指定します。 +名前を要求しない場合や必要でない場合、 +.Fa msg_name +は NULL ポインタとして指定できます。 +.Fa msg_iov +と +.Fa msg_iovlen +引数は +.Xr read 2 +で説明されているようにスキャッタ / ギャザーの場所を記述します。 +.Fa msg_control +引数は、長さが +.Fa msg_controllen +の、他のプロトコル制御に関連するメッセージまたはその他の +各種補助データ用のバッファを指しています。 +メッセージは次の形式です: +.Bd -literal +struct cmsghdr { + u_int cmsg_len; /* データバイトカウント、hdr を含む */ + int cmsg_level; /* メッセージを生成したプロトコル */ + int cmsg_type; /* プロトコルに固有のタイプ */ +/* u_char cmsg_data[]; が後に続く */ +}; +.Pp +.Ed +たとえば、これを使用して XNS/SPP において +データストリームの変化を知ることができます。 +また、ISO において +.Fn accept +システムコールの直後に、データバッファを伴わずに +.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 +システムコールを使用して受信しようとしました。 +しかし、受信側プログラムのにそれらを受け取るだけの +十分な空きファイル記述子スロットがありませんでした。 +この場合、該当する記述子はクローズされ、保留されているデータは別の +.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/documentation/manual-pages/ja/man2/rename.2 b/documentation/manual-pages/ja/man2/rename.2 new file mode 100644 index 0000000000..b58b645366 --- /dev/null +++ b/documentation/manual-pages/ja/man2/rename.2 @@ -0,0 +1,190 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)rename.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/rename.2,v 1.22 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt RENAME 2 +.Os +.Sh 名称 +.Nm rename +.Nd ファイル名を変更する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In stdio.h +.Ft int +.Fn rename "const char *from" "const char *to" +.Sh 解説 +.Fn rename +システムコールによって +.Fa from +と名づけられたリンクを +.Fa to +に変更します。 +.Fa to +がすでに存在する場合は、先にこれを削除します。 +.Fa from +と +.Fa to +は同じタイプでなければならず (両方とも +ディレクトリであるか、両方ともディレクトリではないか)、 +同じファイルシステム上に存在している必要があります。 +.Pp +.Fa to +が既に存在する場合には、操作の途中でシステムがクラッシュしたとしても、 +.Fn rename +システムコールは +.Fa to +のインスタンスが必ず存在することを保証します。 +.Pp +.Fa from +の最後の構成要素がシンボリックリンクの場合、それが指している +ファイルまたはディレクトリではなく、 +そのシンボリックリンクの名前が変更されます。 +.\".Sh CAVEAT +.\"The system can deadlock if a loop in the file system graph is present. +.\"This loop takes the form of an entry in directory +.\".Pa a , +.\"say +.\".Pa a/foo , +.\"being a hard link to directory +.\".Pa b , +.\"and an entry in +.\"directory +.\".Pa b , +.\"say +.\".Pa b/bar , +.\"being a hard link +.\"to directory +.\".Pa a . +.\"When such a loop exists and two separate processes attempt to +.\"perform +.\".Ql rename a/foo b/bar +.\"and +.\".Ql rename b/bar a/foo , +.\"respectively, +.\"the system may deadlock attempting to lock +.\"both directories for modification. +.\"Hard links to directories should be +.\"replaced by symbolic links by the system administrator. +.Sh 戻り値 +.Rv -std rename +.Sh エラー +.Fn rename +システムコールは次の場合に失敗し、いずれの引数ファイルも影響を受けません: +.Bl -tag -width Er +.It Bq Er ENAMETOOLONG +いずれかのパス名の構成要素が 255 文字を越えているか、またはいずれかの +パス名全体の長さが 1023 文字を越えています。 +.It Bq Er ENOENT +.Fa from +パスの構成要素が存在しないか、または +.Fa to +の前置パス名が存在しません。 +.It Bq Er EACCES +指定されたパスには、検索が許可されていないディレクトリが含まれています。 +.It Bq Er EACCES +指定されたリンクは、書込みが許可されていない +ディレクトリへの書込みを要求しています。 +.It Bq Er EPERM +.Fa from +ファイルを含むディレクトリにスティッキビットが設定されており、 +そのディレクトリと +.Fa from +のどちらの所有者も実効ユーザ ID とは異なっています。 +.It Bq Er EPERM +.Fa to +引数によって指されるファイルが存在し、かつ +.Fa to +を含んでいるディレクトリにスティッキビットが設定されており、 +そのディレクトリと +.Fa to +ファイルのどちらの所有者も実効ユーザ ID とは異なっています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENOTDIR +.Fa from +引数はディレクトリですが、 +.Fa to +はディレクトリではありません。 +.It Bq Er EISDIR +.Fa to +引数はディレクトリですが、 +.Fa from +はディレクトリではありません。 +.It Bq Er EXDEV +.Fa to +によって指定されたリンク、および +.Fa from +によって指定されたファイルが +異なる論理デバイス (ファイルシステム) 上にあります。 +実装がクロスデバイスリンクを許容する場合、このエラーコードは +返らないことに注意してください。 +.It Bq Er ENOSPC +ディレクトリを格納しているファイルシステム上の空間が枯渇したため、 +新しい名前のためのエントリを置くディレクトリを拡張できません。 +.It Bq Er EDQUOT +ディレクトリを格納しているファイルシステム上のディスクブロックのユーザの +クォータが枯渇したため、 +新しい名前のためのエントリを置くディレクトリを拡張できません。 +.It Bq Er EIO +ディレクトリエントリを作成または更新している間に入出力エラーが発生しました。 +.It Bq Er EROFS +指定されたリンクは、読取り専用ファイルシステム上のディレクトリへの +書込みを要求しています。 +.It Bq Er EFAULT +path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINVAL +.Fa from +引数が +.Fa to +の親ディレクトリであるか、 +.Ql .\& +または +.Ql \&.. +に名前を変更しようとしました。 +.It Bq Er ENOTEMPTY +.Fa to +引数はディレクトリであり、空ではありません。 +.El +.Sh 関連項目 +.Xr open 2 , +.Xr symlink 7 +.Sh 規格 +.Fn rename +システムコールは +.St -p1003.1-96 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/revoke.2 b/documentation/manual-pages/ja/man2/revoke.2 new file mode 100644 index 0000000000..00c8f4f643 --- /dev/null +++ b/documentation/manual-pages/ja/man2/revoke.2 @@ -0,0 +1,107 @@ +.\" Copyright (c) 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Berkeley Software Design, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)revoke.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/revoke.2,v 1.12 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt REVOKE 2 +.Os +.Sh 名称 +.Nm revoke +.Nd ファイルアクセスを無効にする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn revoke "const char *path" +.Sh 解説 +.Fn revoke +システムコールは、 +.Fa path +によって指定されたファイルの、システム内に現在ある +すべてのオープンファイル記述子を無効にします。 +そのような記述子についての後続の操作は全て失敗します。 +ただし、キャラクタ型デバイスファイルへの +.Fn read +がカウント 0 (ファイルの終了) を返すのと、 +.Fn close +システムコールが成功するのは例外です。 +指定されたファイルが +あるデバイスについてのオープンされた特殊ファイルであった場合、 +そのファイルへのすべての参照がクローズされたかのように、 +デバイスをクローズする関数が呼び出されます。 +.Pp +ファイルへのアクセスはその所有者または +スーパユーザによってだけ無効にされます。 +.Fn revoke +システムコールは、現時点ではブロック型およびキャラクタ型特殊ファイルに +ついてのみサポートされています。 +これは通常、新しいログインセッション用に端末デバイスを準備するとき、 +以前の端末使用者によるアクセスを防止するために使用されます。 +.Sh 戻り値 +.Rv -std revoke +.Sh エラー +次の場合を除いて、指定ファイルへのアクセスは無効にされます: +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1024 文字を越えています。 +.It Bq Er ENOENT +指定されたファイルまたはパス名が存在しません。 +.It Bq Er EACCES +指定されたパスには、検索が許可されていないディレクトリが含まれています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINVAL +システムは、指定されたファイルについて +.Fn revoke +操作をサポートしません。 +.It Bq Er EPERM +呼び出し側がファイルの所有者でもスーパユーザでもありません。 +.El +.Sh 関連項目 +.Xr close 2 +.Sh 歴史 +.Fn revoke +システムコールは +.Bx 4.3 Reno +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/rfork.2 b/documentation/manual-pages/ja/man2/rfork.2 new file mode 100644 index 0000000000..f38a44173e --- /dev/null +++ b/documentation/manual-pages/ja/man2/rfork.2 @@ -0,0 +1,169 @@ +.\" +.\" This manual page is taken directly from Plan9, and modified to +.\" describe the actual BSD implementation. Permission for +.\" use of this page comes from Rob Pike <rob@plan9.att.com>. +.\" +.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.32 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd January 31, 2003 +.Dt RFORK 2 +.Os +.Sh 名称 +.Nm rfork +.Nd プロセスリソースの操作 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft pid_t +.Fn rfork "int flags" +.Sh 解説 +fork, vfork, rfork は、新しいプロセスが作成される唯一の方法です。 +.Fn rfork +への引数 +.Fa flags +は、起動しているプロセス (親) のどのリソースが新しいプロセス (子) に +よって共有されるか、またはそれらのデフォルト値に初期化されるかを選択します。 +リソースにはオープンファイル記述子テーブル (これは、共有される場合、 +プロセスが他のプロセスについてファイルを開閉することを +許容します) およびオープンファイルが含まれます。 +.Fa flags +引数は次の項目の論理和 (OR) です: +.Bl -tag -width ".Dv RFLINUXTHPN" +.It Dv RFPROC +設定されている場合、新しいプロセスが作成されます。 +そうでない場合、変更が現在のプロセスに影響を及ぼします。 +.It Dv RFNOWAIT +設定されている場合、子プロセスは親プロセスから分離されます。 +終了時に、子プロセスは、親プロセスが集めるステータスを残しません。 +.Xr wait 2 +を参照してください。 +.It Dv RFFDG +設定されている場合、起動側のファイル記述子テーブル +.Xr ( intro 2 +を参照) がコピーされます。 +そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。 +.It Dv RFCFDG +設定されている場合、新しいプロセスは新しいファイル記述子テーブルを持って +開始します。 +.Dv RFFDG +とは互いに排他的です。 +.It Dv RFMEM +設定されている場合、 +通常、ハードウェアのページテーブルを直接共有することで、 +カーネルはアドレス空間全体を強制的に共有します。 +子は、このような方法で、親プロセスが所有しているすべてのセグメントを、 +それが普段共有可能であるか否かに関係なく、継承し共有します。 +スタックセグメントは分割されない +(親と子の両方が同じスタック上に復帰する) ので、RFMEM フラグを指定した +.Fn rfork +は一般に、C 言語を含む高級言語から直接呼び出すことはできません。 +共に設定可能なフラグは +.Dv RFPROC +だけです。 +この問題を解決し、提供されたスタック上で新しいプロセスを +走らせるために補助関数が提供されています。 +詳しくは +.Xr rfork_thread 3 +を参照してください。 +.It Dv RFSIGSHARE +設定されている場合、カーネルは、親子間で sigacts 構造体を強制的に共有します。 +.It Dv RFLINUXTHPN +設定されている場合、カーネルは、子についてのスレッド終了時に、 +SIGCHILD の代わりに SIGUSR1 を返します。 +これは特定の Linux クローン動作を模倣するためです。 +.El +.Pp +共有ファイル記述子テーブル内のファイル記述子は、 +明示的に閉じられるか、またはテーブルを +共有しているすべてのプロセスが終了するまで開いたままに保たれます。 +.Pp +.Dv RFPROC +が設定されている場合、 +親プロセス内で返される値は子プロセスのプロセス ID です。 +子プロセス内で返される値は 0 です。 +.Dv RFPROC +がない場合、戻り値は 0 です。 +プロセス ID の範囲は 1 から最大整数値 +.Ft ( int ) +です。 +必要であれば、要求されたプロセスリソースが利用できるようになるまで +.Fn rfork +システムコールは待機します。 +.Pp +.Fn fork +システムコールは、 +.Fn rfork "RFFDG | RFPROC" +への呼び出しとして実装可能ですが、後方互換性のために +そのようには実装されていません。 +.Sh 戻り値 +正常に完了した場合、 +.Fn rfork +は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに +返します。 +そうでない場合、子プロセスは作成されずに、値 -1 が親プロセスに返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn rfork +システムコールは、次の場合に処理を失敗し、子プロセスは作成されません: +.Bl -tag -width Er +.It Bq Er EAGAIN +実行中のプロセスの合計数がシステムの課す制限を超過してしまいます。 +制限は +.Xr sysctl 3 +MIB 変数 +.Dv KERN_MAXPROC +によって指定されます (スーパユーザを除いて、制限は実際には +これより 10 個少なくなります)。 +.It Bq Er EAGAIN +ユーザがスーパユーザではなく、1 人のユーザによる実行中の +プロセスの合計数がシステムの課した制限を超過してしまいます。 +制限は、 +.Xr sysctl 3 +MIB 変数 +.Dv KERN_MAXPROCPERUID +によって指定されます。 +.It Bq Er EAGAIN +ユーザがスーパユーザではなく、 +.Fa resource +引数 +.Dv RLIMIT_NOFILE +に対応するソフトリソースの制限を超過してしまいます +.Pf ( Xr getrlimit 2 +を参照)。 +.It Bq Er EINVAL +RFFDG フラグと RFCFDG フラグの両方が指定されました。 +.It Bq Er EINVAL +これまでに列挙されていないフラグが指定されました。 +.It Bq Er ENOMEM +新しいプロセス用に十分なスワップ空間が不足しました。 +.El +.Sh 関連項目 +.Xr fork 2 , +.Xr intro 2 , +.Xr minherit 2 , +.Xr vfork 2 , +.Xr rfork_thread 3 +.Sh バグ +.Fx +では、ネイティブな +.Fn clone +ライブラリコールは未だに実装されていませんし、 +現在の pthreads 実装は RFMEM を指定した +.Fn rfork +を利用していません。 +linux スレッドライブラリのネイティブポートである、 +.Pa /usr/ports/devel/linuxthreads +は RFMEM を利用して動作する +.Fn clone +呼び出しを含んでいます。 +.Xr rfork_thread 3 +関数は +.Fn clone +の代わりとして利用することができます。 +.Sh 歴史 +.Fn rfork +関数は Plan9 ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/rmdir.2 b/documentation/manual-pages/ja/man2/rmdir.2 new file mode 100644 index 0000000000..480c5700fb --- /dev/null +++ b/documentation/manual-pages/ja/man2/rmdir.2 @@ -0,0 +1,106 @@ +.\" 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. +.\" +.\" @(#)rmdir.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/rmdir.2,v 1.13 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt RMDIR 2 +.Os +.Sh 名称 +.Nm rmdir +.Nd ディレクトリファイルを削除する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn rmdir "const char *path" +.Sh 解説 +.Fn rmdir +システムコールは、名前が +.Fa path +で指定されるディレクトリファイルを削除します。 +ディレクトリには +.Ql .\& +と +.Ql \&.. +以外のエントリがあってはなりません。 +.Sh 戻り値 +.Rv -std rmdir +.Sh エラー +次の場合を除いて、指定されたファイルが削除されます: +.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 ENOTEMPTY +指定されたディレクトリには +.Ql .\& +と +.Ql ..\& +以外のファイルが含まれています。 +.It Bq Er EACCES +指定されたパスには、検索が許可されていないディレクトリが含まれています。 +.It Bq Er EACCES +削除するリンクが入っているディレクトリの書込みが許可されていません。 +.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 mkdir 2 , +.Xr unlink 2 +.Sh 歴史 +.Fn rmdir +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/rtprio.2 b/documentation/manual-pages/ja/man2/rtprio.2 new file mode 100644 index 0000000000..a082c91f56 --- /dev/null +++ b/documentation/manual-pages/ja/man2/rtprio.2 @@ -0,0 +1,123 @@ +.\" Copyright (c) 1994, Henrik Vestergaard Draboel +.\" 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 Henrik Vestergaard Draboel. +.\" 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 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/rtprio.2,v 1.25 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd July 23, 1994 +.Dt RTPRIO 2 +.Os +.Sh 名称 +.Nm rtprio +.Nd ユーティリティやプロセスのリアルタイム / アイドル優先順位の取得と修正 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/rtprio.h +.Ft int +.Fn rtprio "int function" "pid_t pid" "struct rtprio *rtp" +.Sh 解説 +.Fn rtprio +システムコールを使用して、プロセスのリアルタイムまたはアイドル優先順位を +取得または変更します。 +.Pp +.Fa function +引数で実行する操作を指定します。 +現在の優先順位を取得するには RTP_LOOKUP、優先順位を設定するには RTP_SET です。 +.Fa pid +引数は、対象のプロセスを指定します。 +現在のプロセスを指定するには 0 を使います。 +.Pp +.Fa *rtp +引数は、優先順位と優先順位のタイプを指定するのに使用する struct rtprio を指す +ポインタです。 +この構造体は次の型です: +.Bd -literal +struct rtprio { + u_short type; + u_short prio; +}; +.Ed +.Pp +.Va type +の値は、リアルタイム優先順位については RTP_PRIO_REALTIME、 +通常の優先順位については RTP_PRIO_NORMAL、 +アイドル優先順位については RTP_PRIO_IDLE です。 +.Va prio +によって指定する優先順位は、0 から +.Dv RTP_PRIO_MAX (通常は 31) +の範囲になります。 +0 が指定可能な最高の優先順位です。 +.Pp +リアルタイム優先順位とアイドル優先順位は、 +fork() と exec() を通じて継承されます。 +.Pp +リアルタイムプロセスは、それ以上の優先順位をもつプロセス、 +または割り込みによってだけ優先権を取得できます。 +アイドル優先順位のプロセスは、 +他のリアルタイムまたは通常の優先順位プロセスが +実行可能でないときにだけ実行されます。 +優先順位の高いリアル / アイドルのプロセスは +優先順位の低いリアル / アイドルのプロセスから優先権を取得します。 +優先順位が等しいリアル / アイドルの +プロセスはラウンドロビン方式で実行されます。 +.Sh 戻り値 +.Rv -std rtprio +.Sh エラー +.Fn rtprio +システムコールは次の場合に処理を失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +指定された +.Fa prio +が範囲外でした。 +.It Bq Er EPERM +呼び出しプロセスがリアルタイム優先順位を設定できません。 +root だけが任意のプロセスのリアル優先順位を変更することができます。 +root でないユーザは現在のプロセスのアイドル優先順位を変更できるだけです。 +.It Bq Er ESRCH +指定のプロセスが見つかりませんでした。 +.El +.Sh 作者 +.An -nosplit +オリジナルの作者は +.An Henrik Vestergaard Draboel Aq hvd@terry.ping.dk +です。 +.Fx +での実装は +.An David Greenman +によって本質的に書き直されました。 +.Sh 関連項目 +.Xr nice 1 , +.Xr ps 1 , +.Xr rtprio 1 , +.Xr setpriority 2 , +.Xr nice 3 , +.Xr renice 8 diff --git a/documentation/manual-pages/ja/man2/sched_get_priority_max.2 b/documentation/manual-pages/ja/man2/sched_get_priority_max.2 new file mode 100644 index 0000000000..5a5c21205a --- /dev/null +++ b/documentation/manual-pages/ja/man2/sched_get_priority_max.2 @@ -0,0 +1,120 @@ +.\" Copyright (c) 1998 HD Associates, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/sched_get_priority_max.2,v 1.19 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 12, 1998 +.Dt SCHED_GET_PRIORITY_MAX 2 +.Os +.Sh 名称 +.Nm sched_get_priority_max , +.Nm sched_get_priority_min , +.Nm sched_rr_get_interval +.Nd スケジュールパラメータの上限 / 下限を取得する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sched.h +.Ft int +.Fn sched_get_priority_max "int policy" +.Ft int +.Fn sched_get_priority_min "int policy" +.Ft int +.Fn sched_rr_get_interval "pid_t pid" "struct timespec *interval" +.Sh 解説 +.Fn sched_get_priority_max +システムコールと +.Fn sched_get_priority_min +システムコールは、 +.Fa policy +で指定されたスケジューリング方針について、 +それぞれ該当する最大と最小を返します。 +.Fn sched_rr_get_interval +システムコールは、 +.Fa interval +引数によって参照される +.Fa timespec +構造体を、 +.Fa pid +で指定されるプロセスについて +現在の実行時間制限 (すなわち、時間量) が含まれるように更新します。 +.Fa pid +が 0 の場合、呼び出し元プロセスに関する現在の実行時間制限が返されます。 +.Pp +.Fa policy +の値は +.Fa <sched.h> +で定義されたスケジュール方針の 1 つにする必要があります: +.Bl -tag -width [SCHED_OTHER] +.It Bq Er SCHED_FIFO +ラウンドロビンスケジュールなしの先入先出 (FIFO) 固定優先順位スケジュール。 +.It Bq Er SCHED_OTHER +標準のタイムシェアリングスケジューラ。 +.It Bq Er SCHED_RR +同じ優先順位のプロセス間でのラウンドロビンスケジューリング。 +.El +.Sh 戻り値 +.Fn sched_get_priority_max +システムコールと +.Fn sched_get_priority_min +システムコールは、正常に完了するとそれぞれ該当する最大値または最小値を返します。 +そうでない場合、どちらの関数も -1 が返され、エラーを示すために +.Fa errno +が設定されます。 +.Pp +.Rv -std sched_rr_get_interval +.Sh エラー +処理を失敗すると、 +.Va errno +は対応する値に設定されます: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa policy +引数の値が定義されているスケジュール方針ではありません。 +.It Bq Er ENOSYS +.Fn sched_get_priority_max +システムコール、 +.Fn sched_get_priority_min +システムコール、そして +.Fn sched_rr_get_interval +システムコールは、この実装ではサポートされていません。 +.It Bq Er ESRCH +.Fa pid +で指定されるプロセスに対応するプロセスが見つかりません。 +.El +.Sh 関連項目 +.Xr sched_getparam 2 , +.Xr sched_getscheduler 2 , +.Xr sched_setparam 2 , +.Xr sched_setscheduler 2 +.Sh 規格 +.Fn sched_get_priority_max +システムコール、 +.Fn sched_get_priority_min +システムコール、それから +.Fn sched_rr_get_interval +システムコールは +.St -p1003.1b-93 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/sched_setparam.2 b/documentation/manual-pages/ja/man2/sched_setparam.2 new file mode 100644 index 0000000000..341397d072 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sched_setparam.2 @@ -0,0 +1,174 @@ +.\" %FreeBSD: src/lib/libc/sys/sched_setparam.2,v 1.17 2004/07/04 20:55:48 ru Exp % +.\" Copyright (c) 1998 HD Associates, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.Dd March 12, 1998 +.Dt SCHED_SETPARAM 2 +.Os +.Sh 名称 +.Nm sched_setparam , +.Nm sched_getparam +.Nd スケジュールパラメータの設定 / 取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sched.h +.Ft int +.Fn sched_setparam "pid_t pid" "const struct sched_param *param" +.Ft int +.Fn sched_getparam "pid_t pid" "struct sched_param *param" +.Sh 解説 +.Fn sched_setparam +システムコールは、 +.Fa pid +で指定するプロセスのスケジュールパラメータを、 +.Fa param +が指す構造体 +.Fa sched_param +の指定する値に設定します。 +構造体 +.Fa param +のメンバ +.Fa sched_priority +の値は、 +.Fa pid +で指定するプロセスの現在のスケジュール方針用の +優先順位範囲内 (両端含む) の整数である必要があります。 +優先順位の数値が高いほど優先順位が高いことを表します。 +.Pp +この実装では、 +.Fa pid +の値が負の場合、システムコールは処理に失敗します。 +.Pp +.Fa pid +で指定するプロセスが存在し、かつ +呼び出し元プロセスにパーミッションがある場合、 +プロセス ID が +.Fa pid +と等しいプロセスに対してスケジュールパラメータを設定します。 +.Pp +.Fa pid +が 0 の場合、呼び出し元プロセスに対して +スケジュールパラメータを設定します。 +.Pp +この実装では、あるプロセスが別のプロセスのスケジュールパラメータに +いつ影響を及ぼせるのかという方針は、書込みスタイル操作として +.St -p1003.1b-93 +に指定されているものです。 +.Pp +ターゲットプロセスは、実行中にせよ実行中でないにせよ、 +優先順位が等しいかまたはより高い、 +他のすべての実行可能なプロセスが実行されるようにスケジュールされた後で、 +実行を再開します。 +.Pp +.Fa pid +引数で指定するプロセスの優先順位が、 +最も優先順位の低い実行中のプロセスの優先順位より高く設定されており、 +しかも指定のプロセスの実行準備ができている場合、 +.Fa pid +引数で指定するプロセスは +優先順位が最も低い実行中のプロセスをプリエンプトします。 +同じように、 +.Fn sched_setparam +を呼び出しているプロセスがその優先順位を、 +1 つまたは複数の空でないプロセスリストの優先順位より低く設定する場合、 +優先順位が最も高いリストの先頭のプロセスも +呼び出し元プロセスをプリエンプトします。 +このように、いずれのケースでも、 +優先順位の高いプロセスが実行されてしまうまで、 +元のプロセスが要求した優先順位変更の完了通知を受信しない可能性があります。 +.Pp +この実装では、 +.Fa pid +で指定するプロセスの現在のスケジュール方針が通常のタイムシェアリング +(SCHED_OTHER; POSIX ソースでない場合は SCHED_NORMAL) +であるかアイドル方針 (POSIX ソースでない場合は SCHED_IDLE) であるなら、 +その動作は、実在するリアルタイム優先順位よりも低い優先順位の +SCHED_RR でプロセスが実行されていたかのようになります。 +.Pp +.Fn sched_getparam +関数は、 +.Fa pid +で指定するプロセスのスケジュールパラメータを +.Fa param +が指す +.Fa sched_param +構造体に入れて返します。 +.Pp +.Fa pid +で指定するプロセスが存在してかつ、 +呼び出し元プロセスにパーミッションがある場合、 +プロセス ID が +.Fa pid +に等しいプロセスのスケジュールパラメータを返します。 +.Pp +この実装では、あるプロセスが別のプロセスのスケジュールパラメータを +いつ得られるかの方針は、読取りスタイル操作として +.St -p1003.1b-93 +に詳説されているものです。 +.Pp +.Fa pid +が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。 +この実装では、 +.Fa pid +が負の場合、 +.Fa sched_getparam +システムコールは処理に失敗します。 +.Sh 戻り値 +.Rv -std +.Sh エラー +処理に失敗すると、 +.Va errno +を対応する値に設定します: +.Bl -tag -width Er +.It Bq Er ENOSYS +システムはこの機能をサポートするように構成されていません。 +.It Bq Er EPERM +要求しているプロセスは、 +.St -p1003.1b-93 +で詳説されているパーミッションを持っていません。 +.It Bq Er ESRCH +.Fa pid +で指定したプロセスに対応するプロセスが見つかりません。 +.It Bq Er EINVAL +.Fn sched_setparam +で、要求された 1 つ以上のスケジュールパラメータが、指定の +.Fa pid +のスケジュール方針で定義された範囲の外側にあります。 +.El +.Sh 関連項目 +.Xr sched_get_priority_max 2 , +.Xr sched_get_priority_min 2 , +.Xr sched_getscheduler 2 , +.Xr sched_rr_get_interval 2 , +.Xr sched_setscheduler 2 , +.Xr sched_yield 2 +.Sh 規格 +.Fn sched_setparam +システムコールと +.Fn sched_getparam +システムコールは +.St -p1003.1b-93 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/sched_setscheduler.2 b/documentation/manual-pages/ja/man2/sched_setscheduler.2 new file mode 100644 index 0000000000..2e2897a2ec --- /dev/null +++ b/documentation/manual-pages/ja/man2/sched_setscheduler.2 @@ -0,0 +1,165 @@ +.\" %FreeBSD: src/lib/libc/sys/sched_setscheduler.2,v 1.17 2004/07/02 23:52:13 ru Exp % +.\" Copyright (c) 1998 HD Associates, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.Dd March 12, 1998 +.Dt SCHED_SETSCHEDULER 2 +.Os +.Sh 名称 +.Nm sched_setscheduler , +.Nm sched_getscheduler +.Nd スケジュール方針とスケジューラパラメータの設定 / 取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sched.h +.Ft int +.Fn sched_setscheduler "pid_t pid" "int policy" "const struct sched_param *param" +.Ft int +.Fn sched_getscheduler "pid_t pid" +.Sh 解説 +.Fn sched_setscheduler +システムコールは、 +.Fa pid +で指定したプロセスのスケジュール方針とスケジュールパラメータを、それぞれ、 +.Fa policy +および +.Fa param +が指す +.Vt sched_param +構造体の指定するパラメータに設定します。 +.Fa param +構造体のメンバ +.Fa sched_priority +の値は、 +.Fa policy +で指定するスケジュール方針用の +優先度範囲内 (両端含む) の整数である必要があります。 +.Pp +この実装では、 +.Fa pid +の値が負である場合、システムコールは処理に失敗します。 +.Pp +.Fa pid +で指定するプロセスが存在し、かつ呼び出し元プロセスにパーミッションがある場合、 +プロセス ID が +.Fa pid +と等しいプロセスに対して +スケジュール方針とスケジュールパラメータを設定します。 +.Pp +.Fa pid +が 0 の場合、呼び出し元プロセスに対して +スケジュール方針とスケジュールパラメータを設定します。 +.Pp +この実装では、あるプロセスが別のプロセスのスケジュールパラメータに +いつ影響を及ぼせるのかという方針は、書込みスタイル操作として +.St -p1003.1b-93 +に指定されているものです。 +.Pp +スケジュール方針は +.Fa <sched.h> +内にあります。 +.Bl -tag -width [SCHED_OTHER] +.It Bq Er SCHED_FIFO +ラウンドロビンスケジュールのない、 +先入先出 (FIFO) 優先順位固定スケジュール。 +.It Bq Er SCHED_OTHER +標準のタイムシェアリングスケジューラ。 +.It Bq Er SCHED_RR +同じ優先順位のプロセス間でのラウンドロビンスケジュール。 +.El +.Pp +.Vt sched_param +構造体は +.Fa <sched.h> +に定義されています。 +.Pp +.Bd -literal -offset indent +struct sched_param { + int sched_priority; /* スケジュール優先順位 */ +}; +.Ed +.Pp +.Fn sched_getscheduler +システムコールは、 +.Fa pid +で指定するプロセスのスケジュール方針を返します。 +.Pp +.Fa pid +で指定するプロセスが存在してかつ、 +呼び出し元プロセスにパーミッションがある場合、 +プロセス ID が +.Fa pid +に等しいプロセスのスケジュールパラメータを返します。 +.Pp +この実装では、あるプロセスが別のプロセスのスケジュールパラメータを +いつ得られるかの方針は、読取りスタイル操作として +.St -p1003.1b-93 +に詳説されているものです。 +.Pp +.Fa pid +が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。 +この実装では、 +.Fa pid +が負の場合、 +.Fa sched_getscheduler +システムコールは処理に失敗します。 +.Sh 戻り値 +.Rv -std +.Sh エラー +処理に失敗すると、 +.Va errno +を対応する値に設定します。 +.Bl -tag -width Er +.It Bq Er ENOSYS +システムは、この機能をサポートするように構成されていません。 +.It Bq Er EPERM +要求しているプロセスは +.St -p1003.1b-93 +で詳説されているパーミッションを持っていません。 +.It Bq Er ESRCH +.Fa pid +で指定したプロセスに対応するプロセスが見つかりません。 +.It Bq Er EINVAL +.Fa policy +引数の値が無効であるか、または +.Fa param +に含まれている 1 つまたは複数のパラメータが、 +指定されたスケジュール方針で有効な範囲の外にあります。 +.El +.Sh 関連項目 +.Xr sched_getparam 2 , +.Xr sched_get_priority_max 2 , +.Xr sched_get_priority_min 2 , +.Xr sched_rr_get_interval 2 , +.Xr sched_setparam 2 , +.Xr sched_yield 2 +.Sh 規格 +.Fn sched_setscheduler +システムコールと +.Fn sched_getscheduler +システムコールは +.St -p1003.1b-93 +に準拠しています。 diff --git a/documentation/manual-pages/ja/man2/sched_yield.2 b/documentation/manual-pages/ja/man2/sched_yield.2 new file mode 100644 index 0000000000..dcc5c9d5b3 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sched_yield.2 @@ -0,0 +1,58 @@ +.\" %FreeBSD: src/lib/libc/sys/sched_yield.2,v 1.13 2004/07/02 23:52:13 ru Exp % +.\" Copyright (c) 1998 HD Associates, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.Dd March 12, 1998 +.Dt SCHED_YIELD 2 +.Os +.Sh 名称 +.Nm sched_yield +.Nd プロセッサを明け渡す +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sched.h +.Ft int +.Fn sched_yield void +.Sh 解説 +.Fn sched_yield +システムコールは、実行中のプロセスが再びプロセスリストの先頭になるまで、 +プロセッサを放棄させます。 +引数はありません。 +.Sh 戻り値 +.Rv -std sched_yield +.Sh エラー +処理に失敗すると、 +.Va errno +に対応する値が設定されます: +.Bl -tag -width Er +.It Bq Er ENOSYS +システムがこの機能をサポートするように構成されていません。 +.El +.Sh 規格 +.Fn sched_yield +システムコールは +.St -p1003.1b-93 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/select.2 b/documentation/manual-pages/ja/man2/select.2 new file mode 100644 index 0000000000..e0c9aaf681 --- /dev/null +++ b/documentation/manual-pages/ja/man2/select.2 @@ -0,0 +1,207 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)select.2 8.2 (Berkeley) 3/25/94 +.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.29 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd November 17, 2002 +.Dt SELECT 2 +.Os +.Sh 名称 +.Nm select +.Nd 同期的な入出力の多重化 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/select.h +.Ft int +.Fn select "int nfds" "fd_set *readfds" "fd_set *writefds" "fd_set *exceptfds" "struct timeval *timeout" +.Fn FD_SET fd &fdset +.Fn FD_CLR fd &fdset +.Fn FD_ISSET fd &fdset +.Fn FD_ZERO &fdset +.Sh 解説 +.Fn select +システムコールは、 +.Fa readfds , +.Fa writefds +および +.Fa exceptfds +でアドレスを渡された入出力記述子集合を調べ、 +それらの記述子のいくつかがそれぞれ、読取り準備完了であるか、 +書込み準備完了であるか、または保留されている例外条件があるかを調べます。 +検出可能な唯一の例外条件は、ソケット上に受信した帯域外のデータです。 +最初の +.Fa nfds +個の記述子が各集合内でチェックされます。 +すなわち、記述子集合中の 0 〜 +.Fa nfds Ns No -1 +の記述子が調べられます。 +戻り時に +.Fn select +システムコールは指定の記述子集合を、要求された操作の準備ができている記述子で +構成される部分集合で置き換えます。 +.Fn select +は、すべての集合の中で準備ができた記述子の総数を返します。 +.Pp +記述子の集合は、整数配列内のビットフィールドとして保存されます。 +このような記述子集合を操作するために次のマクロが用意されています: +.Fn FD_ZERO &fdset +は記述子集合 +.Fa fdset +を空集合で初期化します。 +.Fn FD_SET fd &fdset +は特定の記述子 +.Fa fd +を +.Fa fdset +に含めます。 +.Fn FD_CLR fd &fdset +は +.Fa fd +を +.Fa fdset +から削除します。 +.Fn FD_ISSET fd &fdset +は +.Fa fd +が +.Fa fdset +のメンバである場合は非 0 の値を、そうでない場合は 0 を返します。 +これらのマクロの動作は、記述子の値が 0 未満であるか、または +.Dv FD_SETSIZE +以上である場合は未定義です。 +.Dv FD_SETSIZE +は通常、少なくとも、システムがサポートする記述子の最大数に等しくなります。 +.Pp +.Fa timeout +が、NULL ポインタでない場合、それはセレクションの完了を +待つ最大間隔を指定します。 +システムの活動性が、この間隔を不定時間延長することがあります。 +.Pp +.Fa timeout +が NULL ポインタの場合、 +.Fn select +は無期限にブロックします。 +.Pp +ポーリングのためには、 +.Fa timeout +引数は NULL でなく、値が 0 の timeval 構造体を指しているべきです。 +.Pp +.Fa readfds , +.Fa writefds +および +.Fa exceptfds +のどれについても、いずれの記述子も興味がない場合は +NULL ポインタを指定できます。 +.Sh 戻り値 +.Fn select +システムコールは記述子集合に含まれている準備のできた記述子の数を返し、 +エラーが起きた場合は -1 を返します。 +タイムリミットが来ると、 +.Fn select +は 0 を返します。 +システムコールの割り込まれることによるものも含めて +.Fn select +がエラーで戻る場合は、記述子集合は変更されません。 +.Sh エラー +.Fn select +から戻るエラーは次のことを示します: +.Bl -tag -width Er +.It Bq Er EBADF +記述子集合のどれかが無効な記述子を指定していました。 +.It Bq Er EFAULT +.Fa readfds , writefds , exceptfds +または +.Fa timeout +の引数の 1 つが無効なアドレスを指しています。 +.It Bq Er EINTR +タイムリミットが切れる前あるいは選択したイベントのいずれかが起きる前に、 +シグナルが配送されました。 +.It Bq Er EINVAL +指定のタイムリミットは無効です。 +どれかが負であるか、または大きすぎます。 +.It Bq Er EINVAL +.Fa nfds +引数が無効でした。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr connect 2 , +.Xr getdtablesize 2 , +.Xr gettimeofday 2 , +.Xr kqueue 2 , +.Xr poll 2 , +.Xr read 2 , +.Xr recv 2 , +.Xr send 2 , +.Xr write 2 , +.Xr clocks 7 +.Sh 注 +.Dv FD_SETSIZE +のデフォルトのサイズは現時点では 1024 です。 +多数のオープンファイルを使用する可能性があるプログラムで +.Fn select +を実行するために、 +.In sys/types.h +を取り込むヘッダを含める前にプログラムで +.Dv FD_SETSIZE +を定義することで、このサイズを増加できます。 +.Pp +.Fa nfds +がオープンファイルの数より大きい場合、 +.Fn select +が未使用のファイル記述子を調査することは保証されていません。 +歴史的な理由で、 +.Fn select +は最初の 256 個の記述子を必ず調査します。 +.Sh バグ +.St -susv2 +では、システムが元の timeout を適当に更新することを許しています。 +したがって、タイムアウトの値が +.Fn select +システムコールによって変更されないと想定するのは賢明ではありません。 +.Sh 規格 +.Fn select +システムコールおよび +.Fn FD_CLR , +.Fn FD_ISSET , +.Fn FD_SET , +.Fn FD_ZERO +マクロは +.St -p1003.1-2001 +に適合します。 +.Sh 歴史 +.Fn select +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/semctl.2 b/documentation/manual-pages/ja/man2/semctl.2 new file mode 100644 index 0000000000..347d0afc8a --- /dev/null +++ b/documentation/manual-pages/ja/man2/semctl.2 @@ -0,0 +1,206 @@ +.\" +.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com> +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/semctl.2,v 1.19 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd September 12, 1995 +.Dt SEMCTL 2 +.Os +.Sh 名称 +.Nm semctl +.Nd セマフォ集合に対する操作を制御する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/ipc.h +.In sys/sem.h +.Ft int +.Fn semctl "int semid" "int semnum" "int cmd" ... +.Sh 解説 +.Fn semctl +システムコールは、 +.Fa cmd +が示す操作を +.Fa semid +で示されるセマフォ集合に対して実行します。 +ある値の +.Fa cmd +に対しては、4 番目の引数 +.Fa "union semun arg" +が必要です。 +.Fa arg +引数を使用するコマンドの場合、 +.Fa "union semun" +は次のように定義されます: +.Bd -literal +.\" +.\" From <sys/sem.h>: +.\" +union semun { + int val; /* SETVAL 用の値 */ + struct semid_ds *buf; /* IPC_STAT および IPC_SET 用のバッファ */ + u_short *array; /* GETALL および SETALL 用の配列 */ +}; +.Ed +.Pp +コマンドは次のように実行されます: +.\" +.\" This section based on Stevens, _Advanced Programming in the UNIX +.\" Environment_. +.\" +.Bl -tag -width IPC_RMIDXXX +.It Dv IPC_STAT +セマフォ集合の +.Fa "struct semid_ds" +を取得し、 +.Fa arg.buf +が指すメモリに保存します。 +.It Dv IPC_SET +セマフォ集合の +.Fa "struct semid_ds" +のメンバ +.Fa sem_perm.uid , +.Fa sem_perm.gid +および +.Fa sem_perm.mode +を、 +.Fa arg.buf +が指す構造体のメンバと一致するように変更します。 +呼び出し元プロセスの実効ユーザ ID は、 +.Fa sem_perm.uid +または +.Fa sem_perm.cuid +のどちらかと一致する必要があるか、 +またはスーパユーザ特権を持っている必要があります。 +.It IPC_RMID +セマフォ集合をただちにシステムから削除します。 +呼び出し元プロセスの実効ユーザ ID がセマフォ集合の +.Fa sem_perm.uid +または +.Fa sem_perm.cuid +と等しいか、またはプロセスがスーパユーザ特権を持っている必要があります。 +.It Dv GETVAL +セマフォ番号 +.Fa semnum +の値を返します。 +.It Dv SETVAL +セマフォ番号 +.Fa semnum +の値を +.Fa arg.val +に設定します。 +あらゆるプロセス中の、このセマフォに対する未適用の終了時調整値は、 +消されます。 +.It Dv GETPID +セマフォ番号 +.Fa semnum +について操作を実行した最後のプロセスのプロセス ID を返します。 +.It Dv GETNCNT +セマフォ番号 +.Fa semnum +の値が現在の値より大きくなるのを待っているプロセスの数を返します。 +.It Dv GETZCNT +セマフォ番号 +.Fa semnum +の値が 0 になるのを待っているプロセスの数を返します。 +.It Dv GETALL +集合内のすべてのセマフォの値を +.Fa arg.array +が指す配列内へ取得します。 +.It Dv SETALL +集合内のすべてのセマフォの値を +.Fa arg.array +が指す配列内の値に設定します。 +あらゆるプロセス中の、この集合に属するすべてのセマフォに対する未適用の +終了時調整値は、消されます。 +.El +.Pp +.Vt "struct semid_ds" +は次のように定義されます: +.Bd -literal +.\" +.\" Taken straight from <sys/sem.h>. +.\" +struct semid_ds { + struct ipc_perm sem_perm; /* 操作パーミッション構造体 */ + struct sem *sem_base; /* 集合内の最初のセマフォへのポインタ */ + u_short sem_nsems; /* 集合内のセマフォの数 */ + time_t sem_otime; /* 最後の操作時刻 */ + long sem_pad1; /* SVABI/386 によるとこれが必要 */ + time_t sem_ctime; /* 最後の変更時刻 + * 1970/01/01 00:00:00 GMT + * からの秒単位の経過時間 + */ + long sem_pad2; /* SVABI/386 によるとこれが必要 */ + long sem_pad3[4]; /* SVABI/386 によるとこれが必要 */ +}; +.Ed +.Sh 戻り値 +処理が正常に完了すると、 +.Fa cmd +が +.Dv GETVAL , +.Dv GETPID , +.Dv GETNCNT , +.Dv GETZCNT +のどれかであるとき、 +.Fn semctl +は対応する値を返します。 +そうでない場合は 0 を返します。 +処理に失敗した場合は、-1 を返し、エラーを示すために +.Va errno +を設定します。 +.Sh エラー +.Fn semctl +システムコールは次の場合に処理に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa semid +に対応するセマフォ集合がありません。 +.It Bq Er EINVAL +.Fa semnum +引数が、指定のセマフォ集合に対して有効なセマフォの範囲内にありません。 +.It Bq Er EPERM +呼び出し元プロセスの実効ユーザ ID が、 +セマフォ集合の所有者または作成者のユーザ ID と一致しません。 +.It Bq Er EACCES +操作とセマフォ集合のモードの間に不一致があったために +パーミッションが拒否されました。 +.It Bq Er ERANGE +.Dv SETVAL +または +.Dv SETALL +が、セマフォを +.Bq 0 .. Dv SEMVMX +の許容範囲外に設定しようとしました。 +.El +.Sh 関連項目 +.Xr semget 2 , +.Xr semop 2 +.Sh バグ +.Dv SETALL +は、エラーを返す前にいくつかのセマフォ要素を更新することがあります。 diff --git a/documentation/manual-pages/ja/man2/semget.2 b/documentation/manual-pages/ja/man2/semget.2 new file mode 100644 index 0000000000..db0799bf6e --- /dev/null +++ b/documentation/manual-pages/ja/man2/semget.2 @@ -0,0 +1,143 @@ +.\" +.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com> +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/semget.2,v 1.15 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd September 12, 1995 +.Dt SEMGET 2 +.Os +.Sh 名称 +.Nm semget +.Nd セマフォ ID を取得する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/ipc.h +.In sys/sem.h +.Ft int +.Fn semget "key_t key" "int nsems" "int flag" +.Sh 解説 +.Fa key +と +.Fa flag +の値に基づき、 +.Fn semget +は新たに作成された、あるいは +以前から存在するセマフォ集合の識別子を返します。 +.\" +.\" This is copied verbatim from the shmget manpage. Perhaps +.\" it should go in a common manpage, such as .Xr ipc 2 +.\" +キーはファイル名に類似しています。 +キーは IPC オブジェクトに名前を付けるハンドルを提供します。 +キーを指定する方法は 3 つあります: +.Bl -bullet +.It +IPC_PRIVATE +を指定できます。 +この場合、新しい IPC オブジェクトが作成されます。 +.It +整数定数を指定できます。 +.Fa key +に対応する IPC オブジェクトが指定されておらず、 +しかも IPC_CREAT ビットを +.Fa flag +引数で設定している場合、新しい IPC オブジェクトが作成されます。 +.It +.Xr ftok 3 +関数を使用して、パス名からキーを生成できます。 +.El +.\" +.\" Likewise for this section, except SHM_* becomes SEM_*. +.\" +.Pp +新しく作成される IPC オブジェクトのモードは、次の定数の論理和 ( +.Em OR +) を +.Fa flag +引数に設定することで決定されます: +.Bl -tag -width XSEM_WXX6XXX +.It Dv SEM_R +ユーザ用の読取りアクセス +.It Dv SEM_A +ユーザ用の書換えアクセス +.It Dv ( SEM_R>>3 ) +グループ用の読取りアクセス +.It Dv ( SEM_A>>3 ) +グループ用の書換えアクセス +.It Dv ( SEM_R>>6 ) +その他用の読取りアクセス +.It Dv ( SEM_A>>6 ) +その他用の書換えアクセス +.El +.Pp +新しいセマフォ集合が作成されている場合、 +.Fa nsems +を使用して、集合の中に入れる必要のあるセマフォの数を示します。 +そうでない場合、 +.Fa nsems +を 0 として指定できます。 +.Sh 戻り値 +.Fn semget +システムコールは、正常に完了するとセマフォ集合の識別子を返します。 +そうでない場合は、-1 を返し、エラーを示すように +.Va errno +を設定します。 +.Sh エラー +.Fn semget +システムコールは次の場合に処理に失敗します: +.Bl -tag -width Er +.\" ipcperm could fail (we're opening to read and write, as it were) +.It Bq Er EACCES +アクセスパーミッション障害。 +.\" +.\" sysv_sem.c is quite explicit about these, so I'm pretty sure +.\" this is accurate +.\" +.It Bq Er EEXIST +IPC_CREAT および IPC_EXCL が指定されているのに、 +.Fa key +に対応するセマフォ集合が既に存在します。 +.It Bq Er EINVAL +要求されたセマフォの数が、 +システムが集合単位で課している最大値を超過しています。 +.It Bq Er ENOSPC +利用可能なセマフォが不足しています。 +.It Bq Er ENOSPC +カーネルが +.Fa "struct semid_ds" +を割り当てられませんでした。 +.It Bq Er ENOENT +.Fa key +に対応するセマフォ集合が見つからず、その際に +IPC_CREAT +が指定されていませんでした。 +.El +.Sh 関連項目 +.Xr semctl 2 , +.Xr semop 2 , +.Xr ftok 3 diff --git a/documentation/manual-pages/ja/man2/semop.2 b/documentation/manual-pages/ja/man2/semop.2 new file mode 100644 index 0000000000..c3dbbdd04a --- /dev/null +++ b/documentation/manual-pages/ja/man2/semop.2 @@ -0,0 +1,276 @@ +.\" +.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com> +.\" +.\" 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" +内にエンコードされており、 +それは次のように定義されます: +.Bd -literal +.\" +.\" From <sys/sem.h> +.\" +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 ) +を取って +.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/documentation/manual-pages/ja/man2/send.2 b/documentation/manual-pages/ja/man2/send.2 new file mode 100644 index 0000000000..d9a67f8cdd --- /dev/null +++ b/documentation/manual-pages/ja/man2/send.2 @@ -0,0 +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.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/documentation/manual-pages/ja/man2/sendfile.2 b/documentation/manual-pages/ja/man2/sendfile.2 new file mode 100644 index 0000000000..c38e1ec033 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sendfile.2 @@ -0,0 +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.2.2 2005/02/28 03:32:34 brueffer Exp % +.\" +.\" $FreeBSD$ +.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 +.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 を +指すポインタを指定することによってファイルの前と後で送信できます。 +.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 +ポインタは、 +.Dv NULL +でない場合に +.Vt "struct iovec" +構造体の配列を指します。 +iovec 構造体の詳細については、 +.Fn writev +システムコールを参照してください。 +これらの配列内の iovecs の数は、 +.Fa hdr_cnt +と +.Fa trl_cnt +によって指定されます。 +.Pp +.Dv NULL +でない場合に、システムは、ソケット上に送信された合計バイト数を、 +.Fa sbytes +によって指された変数に書き込みます。 +.Pp +.Fa flags +引数として利用できる値は 1 つです: +.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/documentation/manual-pages/ja/man2/setgroups.2 b/documentation/manual-pages/ja/man2/setgroups.2 new file mode 100644 index 0000000000..b162a5c4fc --- /dev/null +++ b/documentation/manual-pages/ja/man2/setgroups.2 @@ -0,0 +1,87 @@ +.\" Copyright (c) 1983, 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. +.\" +.\" @(#)setgroups.2 8.2 (Berkeley) 4/16/94 +.\" %FreeBSD: src/lib/libc/sys/setgroups.2,v 1.13 2003/11/19 13:05:50 dds Exp % +.\" +.\" $FreeBSD$ +.Dd April 16, 1994 +.Dt SETGROUPS 2 +.Os +.Sh 名称 +.Nm setgroups +.Nd グループアクセスリストを設定する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/param.h +.In unistd.h +.Ft int +.Fn setgroups "int ngroups" "const gid_t *gidset" +.Sh 解説 +.Fn setgroups +システムコールは、配列 +.Fa gidset +に従って、現在のユーザプロセスのグループアクセスリストを設定します。 +.Fa ngroups +引数は、配列内のエントリの数を示し、 +.In sys/param.h +内に定義されている値 +.Dv NGROUPS +を超えてはいけません。 +.Pp +スーパユーザだけが新しいグループを設定できます。 +.Sh 戻り値 +.Rv -std setgroups +.Sh エラー +.Fn setgroups +システムコールは次の場合に処理に失敗します: +.Bl -tag -width Er +.It Bq Er EPERM +スーパユーザ以外のユーザによって呼び出されました。 +.It Bq Er EINVAL +.Fa ngroups +引数で指定された数値が +.Dv NGROUPS +の制限を越えています。 +.It Bq Er EFAULT +.Fa gidset +に指定されたアドレスは、 +プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr getgroups 2 , +.Xr initgroups 3 +.Sh 歴史 +.Fn setgroups +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/setpgid.2 b/documentation/manual-pages/ja/man2/setpgid.2 new file mode 100644 index 0000000000..28b324304c --- /dev/null +++ b/documentation/manual-pages/ja/man2/setpgid.2 @@ -0,0 +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 +のプロセスグループを指定された +.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/documentation/manual-pages/ja/man2/setregid.2 b/documentation/manual-pages/ja/man2/setregid.2 new file mode 100644 index 0000000000..21dfe1abdb --- /dev/null +++ b/documentation/manual-pages/ja/man2/setregid.2 @@ -0,0 +1,91 @@ +.\" 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. +.\" +.\" @(#)setregid.2 8.2 (Berkeley) 4/16/94 +.\" %FreeBSD: src/lib/libc/sys/setregid.2,v 1.14 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd April 16, 1994 +.Dt SETREGID 2 +.Os +.Sh 名称 +.Nm setregid +.Nd 実グループ ID と実効グループ ID を設定する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn setregid "gid_t rgid" "gid_t egid" +.Sh 解説 +現在のプロセスの実グループ ID と実効グループ ID を引数で +指定されたように設定します。 +実グループ ID が変更されると、退避グループ ID は新しい実効グループ ID の +値に変更されます。 +.Pp +特権のないユーザは、実グループ ID をその実効グループ ID に、または +実効グループ ID をその実グループ ID に変更できます。 +スーパユーザだけがその他の変更を行えます。 +.Pp +実グループ ID と実効グループ ID のどちらかに値 -1 を指定すると、 +システムは -1 引数の代わりに現在の ID で置き換えます。 +.Pp +.Fn setregid +システムコールは、グループ ID 設定プログラム内の実グループ ID と +実効グループ ID を +スワップし、グループ ID 設定の値を一時的に放棄できるようにするために +作られました。 +このシステムコールは正しく機能せず、その目的は、今では +.Xr setegid 2 +システムコールを使用するとより良く達成できます。 +.Pp +実グループ ID と実効グループ ID を同じ値に設定するときは、標準の +.Fn setgid +システムコールを使用してください。 +.Sh 戻り値 +.Rv -std setregid +.Sh エラー +.Bl -tag -width Er +.It Bq Er EPERM +現在のプロセスがスーパユーザでなく、その実効グループ ID を +その実グループ ID に変更する以外の変更が指定されました。 +.El +.Sh 関連項目 +.Xr getgid 2 , +.Xr issetugid 2 , +.Xr setegid 2 , +.Xr setgid 2 , +.Xr setuid 2 +.Sh 歴史 +.Fn setregid +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/setresuid.2 b/documentation/manual-pages/ja/man2/setresuid.2 new file mode 100644 index 0000000000..594ecde9a6 --- /dev/null +++ b/documentation/manual-pages/ja/man2/setresuid.2 @@ -0,0 +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 解説 +.Fn setresuid +システムコールは、 +現在のプロセスのユーザの実 ID、実効 ID、退避 ID をセットします。 +同様に +.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 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/documentation/manual-pages/ja/man2/setreuid.2 b/documentation/manual-pages/ja/man2/setreuid.2 new file mode 100644 index 0000000000..b29d7439a2 --- /dev/null +++ b/documentation/manual-pages/ja/man2/setreuid.2 @@ -0,0 +1,91 @@ +.\" Copyright (c) 1980, 1991, 1993, 1994 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)setreuid.2 8.2 (Berkeley) 4/16/94 +.\" %FreeBSD: src/lib/libc/sys/setreuid.2,v 1.16 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd February 8, 2001 +.Dt SETREUID 2 +.Os +.Sh 名称 +.Nm setreuid +.Nd 実ユーザ ID と実効ユーザ ID を設定する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn setreuid "uid_t ruid" "uid_t euid" +.Sh 解説 +現在のプロセスの実ユーザ ID と実効ユーザ ID が引数に従って設定されます。 +.Fa ruid +または +.Fa euid +が -1 の場合、現在の UID が指定されたことになります。 +特権のないユーザは、実ユーザ ID をその実効ユーザ ID に、 +または実効ユーザ ID をその実ユーザ ID に変更できます。 +スーパユーザだけがその他の変更を行えます。 +.Pp +実ユーザ ID が変更された場合 (つまり +.Fa ruid +が -1 ではない)、 +もしくは実効ユーザ ID がその実ユーザ ID 以外へと変更された場合、 +退避ユーザ ID はその実効ユーザ ID へ設定されます。 +.Pp +.Fn setreuid +システムコールはユーザ ID 設定プログラム内で実ユーザ ID と実効ユーザ ID を +スワップし、ユーザ ID 設定の値を一時的に放棄するために使われてきました。 +この目的は、現在では +.Xr seteuid 2 +システムコールを使用するとより良く達成できます。 +.Pp +実ユーザ ID と実効ユーザ ID を同じ値に設定するときは、標準の +.Fn setuid +システムコールを使用するようにしてください。 +.Sh 戻り値 +.Rv -std setreuid +.Sh エラー +.Bl -tag -width Er +.It Bq Er EPERM +現在のプロセスがスーパユーザでなく、実効ユーザ ID を実ユーザ ID に +変更する以外の変更が指定されました。 +.El +.Sh 関連項目 +.Xr getuid 2 , +.Xr issetugid 2 , +.Xr seteuid 2 , +.Xr setuid 2 +.Sh 歴史 +.Fn setreuid +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/setsid.2 b/documentation/manual-pages/ja/man2/setsid.2 new file mode 100644 index 0000000000..74045e8fbe --- /dev/null +++ b/documentation/manual-pages/ja/man2/setsid.2 @@ -0,0 +1,82 @@ +.\" 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. +.\" +.\" @(#)setsid.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/setsid.2,v 1.13 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt SETSID 2 +.Os +.Sh 名称 +.Nm setsid +.Nd セッションを作成しプロセスグループ ID を設定する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft pid_t +.Fn setsid void +.Sh 解説 +.Fn setsid +システムコールは新しいセッションを作成します。 +呼び出しセッションは新しいセッションのセッションリーダであり、 +新しいプロセスグループのプロセスグループリーダで、制御端末はありません。 +呼び出しプロセスは、セッションまたは +プロセスグループのどちらかにある唯一のプロセスです。 +.Sh 戻り値 +正常に完了すると、 +.Fn setsid +システムコールは、新しいプロセスグループのプロセスグループ ID の値を返します。 +これは呼び出しプロセスのプロセス ID と同じです。 +エラーが起きると、 +.Fn setsid +は -1 を返し、エラーを示すためにグローバル変数 +.Va errno +を設定します。 +.Sh エラー +.Fn setsid +システムコールは次の場合に処理を失敗します: +.Bl -tag -width Er +.It Bq Er EPERM +呼び出しプロセスが既にプロセスグループリーダであるか、 +または呼び出しプロセス以外のプロセスのプロセスグループ ID が +呼び出しプロセスのプロセス ID と一致します。 +.El +.Sh 関連項目 +.Xr setpgid 2 , +.Xr tcgetpgrp 3 , +.Xr tcsetpgrp 3 +.Sh 規格 +.Fn setsid +システムコールは +.St -p1003.1-90 +仕様に適合しています。 diff --git a/documentation/manual-pages/ja/man2/setuid.2 b/documentation/manual-pages/ja/man2/setuid.2 new file mode 100644 index 0000000000..6dd2140f73 --- /dev/null +++ b/documentation/manual-pages/ja/man2/setuid.2 @@ -0,0 +1,189 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)setuid.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/setuid.2,v 1.23 2004/07/05 17:12:52 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt SETUID 2 +.Os +.Sh 名称 +.Nm setuid , +.Nm seteuid , +.Nm setgid , +.Nm setegid +.Nd ユーザ ID とグループ ID を設定する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In unistd.h +.Ft int +.Fn setuid "uid_t uid" +.Ft int +.Fn seteuid "uid_t euid" +.Ft int +.Fn setgid "gid_t gid" +.Ft int +.Fn setegid "gid_t egid" +.Sh 解説 +.Fn setuid +システムコールは、現在のプロセスの実ユーザ ID と実効ユーザ ID と +退避ユーザ ID を指定した値に設定します。 +.\" Comment out next block for !_POSIX_SAVED_IDS +.\" The real user ID and the saved set-user-ID are changed only if the +.\" effective user ID is that of the super user. +.\" I.e. +.\" .Fn setuid +.\" system call is equal to +.\" .Fn seteuid +.\" system call if the effective user ID is not that of the super user. +.\" End of block +.Fn setuid +システムコールが許容されるのは、指定の ID がプロセスの実ユーザ ID +または実効ユーザ ID に等しい場合、 +または実効ユーザ ID がスーパユーザのものと等しい場合です。 +.\" Comment out next line for !_POSIX_SAVED_IDS +.\" or the saved set-user-ID +.\" Next line is for Appendix B.4.2.2 case. +.Pp +.Fn setgid +システムコールは、現在のプロセスの実グループ ID と実効グループ ID と +退避グループ ID を指定した値に設定します。 +.\" Comment out next block for !_POSIX_SAVED_IDS +.\" The real group ID and the saved set-group-ID are changed only if the +.\" effective user ID is that of the super user. +.\" I.e. +.\" .Fn setgid +.\" system call is equal to +.\" .Fn setegid +.\" system call if the effective user ID is not that of the super user. +.\" End of block +.Fn setgid +システムコールが許容されるのは、指定の ID がプロセスの実グループ ID +または実効グループ ID に等しい場合、 +または実効ユーザ ID がスーパユーザのものと等しい場合です。 +.\" Comment out next line for !_POSIX_SAVED_IDS +.\" or the saved set-group-ID +.\" Next line is for Appendix B.4.2.2 case. +.Pp +.Fn seteuid +システムコール +.Pq Fn setegid +は、現在のプロセスの実効ユーザ (グループ ID) を設定します。 +実効ユーザ ID は実ユーザ ID または退避ユーザ ID ( +.Xr intro 2 +と +.Xr execve 2 +を参照 ) の値に設定できます。 +これを利用し、ユーザ ID 設定された実行可能ファイルの実効ユーザ ID を +実ユーザ ID に切り替えた後に、ユーザ ID 設定の値に戻ることで、 +元の権限を得ることができます。 +同じように、実効グループ ID は、 +実グループ ID または退避グループ ID の値に設定できます。 +.Sh 戻り値 +.Rv -std +.Sh エラー +本システムコールは次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EPERM +ユーザがスーパユーザでない場合、または指定された uid がその実 ID、 +実効 ID、または退避 ID でない場合。 +.El +.Sh セキュリティに関する考察 +ファイルへの読取りと書込み許可は、 +.Xr open 2 +が呼ばれた時に判断されます。 +一度ファイル記述子がオープンされると、権限を落してもそのプロセスの +読取りまたは書込み許可には影響しません。 +指定されたユーザ ID に、そのファイルへの読取りまたは書込み許可が +なくともです。 +通常これらのファイルは、新しいプロセスの実行時にオープンされたままとなり、 +その結果、ユーザがもしかすると要注意であるデータを読んだり修正したり +できてしまいます。 +.Pp +これらのファイルが +.Xr exec 3 +呼び出しの後でもオープンされたままにされるのを防ぐには、 +close-on-exec フラグを設定するようにしてください: +.Bd -literal +void +pseudocode(void) +{ + int fd; + /* ... */ + + fd = open("/path/to/sensitive/data", O_RDWR); + if (fd == -1) + err(1, "open"); + + /* + * close-on-exec フラグの設定; さらなる情報は fcntl(2) を参照。 + */ + if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) + err(1, "fcntl(F_SETFD)"); + /* ... */ + execve(path, argv, environ); +} +.Ed +.Sh 関連項目 +.Xr getgid 2 , +.Xr getuid 2 , +.Xr issetugid 2 , +.Xr setregid 2 , +.Xr setreuid 2 +.Sh 規格 +.Fn setuid +システムコールと +.Fn setgid +システムコールは +.St -p1003.1-90 +仕様と互換性があります。 +ただし、 +.Li _POSIX_SAVED_IDS +.\" Uncomment next line for !_POSIX_SAVED_IDS +は付録 B.4.2.2 の許可された拡張で定義されていません。 +.Fn seteuid +システムコールと +.Fn setegid +システムコールは、 +.Li _POSIX_SAVED_IDS +の +.Tn POSIX +コンセプトを基礎にして拡張してあり、規格の将来の改定用に提案されています。 +.Sh 歴史 +.Fn setuid +関数と +.Fn setgid +関数は +.At v7 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/shmat.2 b/documentation/manual-pages/ja/man2/shmat.2 new file mode 100644 index 0000000000..ca7244590a --- /dev/null +++ b/documentation/manual-pages/ja/man2/shmat.2 @@ -0,0 +1,109 @@ +.\" +.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com> +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/shmat.2,v 1.18 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd August 2, 1995 +.Dt SHMAT 2 +.Os +.Sh 名称 +.Nm shmat , +.Nm shmdt +.Nd 共有メモリをアタッチまたはデタッチする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In machine/param.h +.In sys/types.h +.In sys/ipc.h +.In sys/shm.h +.Ft void * +.Fn shmat "int shmid" "const void *addr" "int flag" +.Ft int +.Fn shmdt "const void *addr" +.Sh 解説 +.Fn shmat +システムコールは、 +.Fa shmid +によって識別された共有メモリセグメントを呼び出しプロセスの +アドレス空間にアタッチします。 +セグメントがアタッチされるアドレスは次のように決定されます: +.\" +.\" These are cribbed almost exactly from Stevens, _Advanced Programming in +.\" the UNIX Environment_. +.\" +.Bl -bullet +.It +.Fa addr +が 0 の場合、セグメントは、カーネルが選択したアドレスにアタッチされます。 +.It +.Fa addr +が 0 でなく、しかも SHM_RND が +.Fa flag +で指定されない場合、セグメントは指定のアドレスにアタッチされます。 +.It +.Fa addr +が指定されており、しかも SHM_RND が指定されている場合、 +.Fa addr +は最も近い SHMLBA の倍数に切捨てされます。 +.El +.Pp +.Fn shmdt +は、 +.Fa addr +で指定されるアドレスにある共有メモリセグメントを、呼び出しプロセスの +アドレス空間からデタッチします。 +.Sh 戻り値 +正常に完了すると、 +.Fn shmat +はセグメントがアタッチされているアドレスを返します。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Pp +.Rv -std shmdt +.Sh エラー +.Fn shmat +システムコールは次の場合に処理を失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa shmid +に対応する共有メモリセグメントが見つかりませんでした。 +.It Bq Er EINVAL +.Fa addr +引数が有効なアドレスではありませんでした。 +.El +.Pp +.Fn shmdt +システムコールは次の場合に処理に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +引数は共有メモリセグメントを指していません。 +.El +.Sh 関連項目 +.Xr shmctl 2 , +.Xr shmget 2 diff --git a/documentation/manual-pages/ja/man2/shmctl.2 b/documentation/manual-pages/ja/man2/shmctl.2 new file mode 100644 index 0000000000..de2f1ce6d5 --- /dev/null +++ b/documentation/manual-pages/ja/man2/shmctl.2 @@ -0,0 +1,135 @@ +.\" +.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com> +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/shmctl.2,v 1.17 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd July 17, 1995 +.Dt SHMCTL 2 +.Os +.Sh 名称 +.Nm shmctl +.Nd 共有メモリ制御 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In machine/param.h +.In sys/types.h +.In sys/ipc.h +.In sys/shm.h +.Ft int +.Fn shmctl "int shmid" "int cmd" "struct shmid_ds *buf" +.Sh 解説 +.Fa shmid +によって指定された共有メモリセグメント上で +.Fa cmd +によって指定された処理を実行します: +.Bl -tag -width SHM_UNLOCKX +.It Dv IPC_STAT +.Fa "struct shmid_ds" +のセグメントを取得し、 +.Fa buf +によって指定されたメモリにそれを保存します。 +.\" +.\" XXX need to make sure that this is correct for FreeBSD +.\" +.It Dv IPC_SET +.Fa "struct shmid_ds" +セグメントの +.Fa shm_perm.uid , +.Fa shm_perm.gid , +および +.Fa shm_perm.mode +の各メンバを +.Fa buf +で指された構造体のメンバに変更します。 +呼び出しプロセスの実効ユーザ ID は、 +.Fa shm_perm.uid +または +.Fa shm_perm.cuid +のどちらかと一致するか、またはスーパユーザ特権を持っている必要があります。 +.It Dv IPC_RMID +システムからセグメントを除去します。 +セグメントにアタッチしたすべてのプロセスが終了するまで、除去は行われません。 +しかし、いったん IPC_RMID 操作が実行されると、それ以降プロセスは +そのセグメントにアタッチすることを許されません。 +操作が成功するためには、呼び出しプロセスの実効ユーザ ID が +.Fa shm_perm.uid +または +.Fa shm_perm.cuid +と一致するか、または呼び出しプロセスにスーパユーザ特権が必要です。 +.\" .It Dv SHM_LOCK +.\" Locks the segment in memory. The calling process must have +.\" superuser privileges. Not implemented in FreeBSD. +.\" .It Dv SHM_UNLOCK +.\" Unlocks the segment from memory. The calling process must +.\" have superuser privileges. Not implemented in FreeBSD. +.El +.Pp +.Vt shmid_ds +構造体は次のように定義されます: +.\" +.\" I fiddled with the spaces a bit to make it fit well when viewed +.\" with nroff, but otherwise it's straight from sys/shm.h +.\" +.Bd -literal +struct shmid_ds { + struct ipc_perm shm_perm; /* 操作パーミッション構造体 */ + int shm_segsz; /* セグメントのサイズ (バイト単位) */ + pid_t shm_lpid; /* 最後の共有メモリ操作のプロセス ID */ + pid_t shm_cpid; /* 作成者のプロセス ID */ + short shm_nattch; /* 現在のアタッチの数 */ + time_t shm_atime; /* 最後の shmat() の時刻 */ + time_t shm_dtime; /* 最後の shmdt() の時刻 */ + time_t shm_ctime; /* shmctl() による最後の変更の時刻 */ + void *shm_internal; /* SystemV の愚行 */ +}; +.Ed +.Sh 戻り値 +.Rv -std shmctl +.Sh エラー +.Fn shmctl +システムコールは次の場合に処理に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +無効な操作、または +.Fa shmid +に指定された共有メモリセグメントが検出されませんでした。 +.\" +.\" XXX I think the following is right: ipcperm() only returns EPERM +.\" when an attempt is made to modify (IPC_M) by a non-creator +.\" non-owner +.It Bq Er EPERM +呼び出しプロセスの実効ユーザ ID が、共有メモリセグメントの所有者 +または作成者のユーザ ID と一致しません。 +.It Bq Er EACCES +操作と共有メモリセグメントモードの間の不一致のために +パーミッションが拒絶されました。 +.El +.Sh 関連項目 +.Xr shmat 2 , +.Xr shmdt 2 , +.Xr shmget 2 , +.Xr ftok 3 diff --git a/documentation/manual-pages/ja/man2/shmget.2 b/documentation/manual-pages/ja/man2/shmget.2 new file mode 100644 index 0000000000..041fbe516d --- /dev/null +++ b/documentation/manual-pages/ja/man2/shmget.2 @@ -0,0 +1,136 @@ +.\" +.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com> +.\" +.\" 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 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/documentation/manual-pages/ja/man2/shutdown.2 b/documentation/manual-pages/ja/man2/shutdown.2 new file mode 100644 index 0000000000..600749a6d6 --- /dev/null +++ b/documentation/manual-pages/ja/man2/shutdown.2 @@ -0,0 +1,104 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)shutdown.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/shutdown.2,v 1.15 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd February 27, 2001 +.Dt SHUTDOWN 2 +.Os +.Sh 名称 +.Nm shutdown +.Nd 全二重接続の一部をシャットダウン +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn shutdown "int s" "int how" +.Sh 解説 +.Fn shutdown +システムコールにより、ファイル記述子 +.Fa s +に関連するソケットの全二重接続の全部か一部がシャットダウンされます。 +引数 +.Fa how +でシャットダウンのタイプを指定します。 +可能な値は以下のとおりです: +.Bl -tag -width SHUT_RDWR +.It Dv SHUT_RD +これ以降の受信ができなくなります。 +.It Dv SHUT_WR +これ以降の送信ができなくなります。 +.It Dv SHUT_RDWR +これ以降の送受信ができなくなります。 +.El +.Sh 戻り値 +.Rv -std shutdown +.Sh エラー +.Fn shutdown +システムコールは、次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er EINVAL +引数 +.Fa how +が有効な値ではありません。 +.It Bq Er ENOTCONN +ソケットは接続されていません。 +.It Bq Er ENOTSOCK +引数 +.Fa s +はソケットを参照していません。 +.El +.Sh 関連項目 +.Xr connect 2 , +.Xr socket 2 +.Sh 規格 +.Fn shutdown +システムコールは、完成時には +.St -p1003.1g-2000 +に適合しています。 +.Sh 歴史 +.Fn shutdown +システムコールは、 +.Bx 4.2 +で登場しました。 +定数 +.Dv SHUT_RD , SHUT_WR , SHUT_RDWR +は、 +.St -p1003.1g-2000 +に追加されました。 diff --git a/documentation/manual-pages/ja/man2/sigaction.2 b/documentation/manual-pages/ja/man2/sigaction.2 new file mode 100644 index 0000000000..e48d44a95e --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigaction.2 @@ -0,0 +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 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 SIGXCPU No " プロセスの終了" " cpu 制限時間の超過" +.Xr ( setrlimit 2 +参照) +.It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過" +.Xr ( setrlimit 2 +参照) +.It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム" +.Xr ( setitimer 2 +参照) +.It Dv SIGPROF No " プロセスの終了" " プロファイリングタイマアラーム" +.Xr ( setitimer 2 +参照) +.It Dv SIGWINCH No " シグナルの破棄" " ウィンドウサイズの変化" +.It Dv SIGINFO No " シグナルの破棄" " キーボードからのステータス要求" +.It Dv SIGUSR1 No " プロセスの終了" " ユーザ定義シグナル 1" +.It Dv SIGUSR2 No " プロセスの終了" " ユーザ定義シグナル 2" +.El +.Sh 注 +.Fa act +に指定する +.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 : +.Ft void +.Fn handler int ; +.It 伝統的な BSD スタイル: +.Ft void +.Fn handler int "int code" "struct sigcontext *scp" ; +.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/documentation/manual-pages/ja/man2/sigaltstack.2 b/documentation/manual-pages/ja/man2/sigaltstack.2 new file mode 100644 index 0000000000..7dceafe73f --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigaltstack.2 @@ -0,0 +1,159 @@ +.\" Copyright (c) 1983, 1991, 1992, 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. +.\" +.\" @(#)sigaltstack.2 8.2 (Berkeley) 5/1/95 +.\" %FreeBSD: src/lib/libc/sys/sigaltstack.2,v 1.21 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd May 1, 1995 +.Dt SIGALTSTACK 2 +.Os +.Sh 名称 +.Nm sigaltstack +.Nd シグナルスタックコンテキストの設定や入手 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In signal.h +.Bd -literal +typedef struct sigaltstack { + char *ss_sp; + size_t ss_size; + int ss_flags; +} stack_t; +.Ed +.Ft int +.Fn sigaltstack "const stack_t * restrict ss" "stack_t * restrict oss" +.Sh 解説 +.Fn sigaltstack +システムコールを使用することにより、ユーザはシグナルを処理する別のスタックを +定義できます。 +.Fa ss +が 0 でない場合、シグナルを配信する +.Em シグナルスタック +へのポインタとサイズが指定され、プロセスがそのスタックで +動作中であるかどうかがシステムに伝えられます。 +ハンドラがシグナルスタックで動作する必要があることを +シグナルのアクションが示す場合 ( +.Xr sigaction 2 +システムコールで指定)、システムは、プロセスがそのスタックで +動作中であるかどうかをチェックします。 +プロセスがシグナルスタックで動作していない場合、システムは、 +シグナルハンドラの動作中はシグナルスタックを適切なものに切り替えます。 +.Pp +.Dv SS_DISABLE +が +.Fa ss_flags +で設定されていると、 +.Fa ss_sp +と +.Fa ss_size +は無視されてシグナルスタックは無効になります。 +アクティブなスタックを無効にしようとすると、 +.Fn sigaltstack +は -1 を戻し +.Va errno +を +.Er EINVAL +に設定します。 +スタックが無効になると、すべてのシグナルは通常の +ユーザスタックで動作するようになります。 +スタックが後で有効にると、代替スタックで処理するように指定された +すべてのシグナルは、その指定どおりに再開されます。 +.Pp +.Fa oss +を 0 以外にすると、現在のシグナルスタックの状態が戻されます。 +.Fa ss_flags +フィールドの値は、プロセスが現在シグナルスタックにある場合は +.Dv SS_ONSTACK +に、シグナルスタックが現在無効である場合は +.Dv SS_DISABLE +になります。 +.Sh 注 +値 +.Dv SIGSTKSZ +は、代替スタック領域を割り当てる一般的なケースで使用する +バイト数 / 文字数に定義されます。 +代替スタックの割り当てには、一般的に以下のようなコードが使用されます。 +.Bd -literal -offset indent +if ((sigstk.ss_sp = malloc(SIGSTKSZ)) == NULL) + /* error return */ +sigstk.ss_size = SIGSTKSZ; +sigstk.ss_flags = 0; +if (sigaltstack(&sigstk,0) < 0) + perror("sigaltstack"); +.Ed +デフォルトサイズ以外の特定量のスタックスペースを必要とする +シグナルハンドラを使用するプログラムでは、別の方法が使用できます。 +値 +.Dv MINSIGSTKSZ +は、代替スタックの実行にオペレーティングシステムが +必要とするバイト数 / 文字数に定義されています。 +代替スタックのサイズを算出する場合は、プログラムでスタック要件に +.Dv MINSIGSTKSZ +を追加し、オペレーティングシステムのオーバヘッドを許容する必要があります。 +.Pp +シグナルスタックは、スタックの拡大傾向とアラインメント要件に従って +自動的に調整されます。 +シグナルスタックは、ハードウェアで保護されることもされないこともあり、 +通常のスタックのように自動的に ``拡大'' しません。 +スタックがオーバフローし、スペースが保護されていない場合は、 +予期せぬ結果となることがあります。 +.Sh 戻り値 +.Rv -std sigaltstack +.Sh エラー +以下のうち 1 つが発生すると、 +.Fn sigaltstack +システムコールは処理を失敗し、シグナルスタックコンテキストは変更されずに +残ります。 +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa ss +か +.Fa oss +が、プロセスアドレス空間の有効な部分でないメモリを指しています。 +.It Bq Er EINVAL +アクティブなスタックを無効にしようとしました。 +.It Bq Er ENOMEM +代替スタック領域のサイズが +.Dv MINSIGSTKSZ +以下になっています。 +.El +.Sh 関連項目 +.Xr sigaction 2 , +.Xr setjmp 3 +.Sh 歴史 +.Fn sigaltstack +の前バージョンである +.Fn sigstack +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/sigpause.2 b/documentation/manual-pages/ja/man2/sigpause.2 new file mode 100644 index 0000000000..d9a73376f8 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigpause.2 @@ -0,0 +1,93 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)sigpause.2 8.1 (Berkeley) 6/2/93 +.\" %FreeBSD: src/lib/libc/compat-43/sigpause.2,v 1.13 2003/06/20 22:41:00 wollman Exp % +.\" +.\" $FreeBSD$ +.Dd June 2, 1993 +.Dt SIGPAUSE 2 +.Os +.Sh 名称 +.Nm sigpause +.Nd ブロックされたシグナルを不可分に解放、割込み待機する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In signal.h +.Ft int +.Fn sigpause "int sigmask" +.Sh 解説 +.Sy このインタフェースは +.Xr sigsuspend 2 +.Sy によって旧式のものとなっています。 +.Pp +.Fn sigpause +関数は、マスクされたシグナルのセットに +.Fa sigmask +を割り当ててからシグナルの到着を待機します。 +戻ると、マスクされたシグナルのセットが復元されます。 +通常、 +.Fa sigmask +引数の 0 はブロックされるシグナルがないことを表わします。 +.Fn sigpause +関数は、常に割り込まれることで終了し、 +.Va errno +を +.Er EINTR +に設定して -1 を戻します。 +.Sh 関連項目 +.Xr kill 2 , +.Xr sigaction 2 , +.Xr sigblock 2 , +.Xr sigprocmask 2 , +.Xr sigsuspend 2 , +.Xr sigvec 2 +.Sh 規格 +.Fn sigpause +関数は歴史的な +.Bx 4.3 +アプリケーションとのコンパチビリティのために実装されています。 +シグナルマスクではなく 1 つのシグナル番号を使用していた、 +同じ名前の非コンパチブルなインタフェースが +.At V +に存在し、そこから +.St -p1003.1-2001 +のオプションとして +.Sy X/Open System Interfaces +.Pq Tn XSI +にコピーされました。 +.Sh 歴史 +.Fn sigpause +関数は、 +.Bx 4.2 +で登場しました。 +しかし、現在ではこの関数を使用することは推奨されていません。 diff --git a/documentation/manual-pages/ja/man2/sigpending.2 b/documentation/manual-pages/ja/man2/sigpending.2 new file mode 100644 index 0000000000..c27d8bff7a --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigpending.2 @@ -0,0 +1,80 @@ +.\" Copyright (c) 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Berkeley Software Design, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)sigpending.2 8.3 (Berkeley) 1/12/94 +.\" %FreeBSD: src/lib/libc/sys/sigpending.2,v 1.12 2003/06/24 15:41:19 yar Exp % +.\" +.\" $FreeBSD$ +.Dd January 12, 1994 +.Dt SIGPENDING 2 +.Os +.Sh 名称 +.Nm sigpending +.Nd 保留中のシグナルの取得 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In signal.h +.Ft int +.Fn sigpending "sigset_t *set" +.Sh 解説 +.Fn sigpending +システムコールは、 +.Fa set +で示された場所の呼び出しプロセスの配信が保留になっているシグナルの +マスクを戻します。 +シグナルは、現在マスクをかけられているとき、 +または配信前に一時的に保留になります +(通常、後者を検出することはできません)。 +.Sh 戻り値 +.Rv -std sigpending +.Sh エラー +.Fn sigpending +システムコールは、失敗した場合に次のエラーを返します。 +.Bl -tag -width Er +.It Bq Er EFAULT +引数 +.Fa set +が示すアドレスが無効です。 +.El +.Sh 関連項目 +.Xr sigaction 2 , +.Xr sigprocmask 2 , +.Xr sigsuspend 2 , +.Xr sigsetops 3 +.Sh 規格 +.Fn sigpending +システムコールは、 +.St -p1003.1-90 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/sigprocmask.2 b/documentation/manual-pages/ja/man2/sigprocmask.2 new file mode 100644 index 0000000000..0b615b14e6 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigprocmask.2 @@ -0,0 +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 +で定義される以下の値を使用して +.Fa how +で指定します。 +.Bl -tag -width SIG_UNBLOCK +.It Dv SIG_BLOCK +新しいマスクは、現在のマスクと指定した +.Fa set +の和集合になります。 +.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 +システムコールはエラーになり、シグナルマスクは変更されません。 +.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/documentation/manual-pages/ja/man2/sigreturn.2 b/documentation/manual-pages/ja/man2/sigreturn.2 new file mode 100644 index 0000000000..6cbc309e01 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigreturn.2 @@ -0,0 +1,93 @@ +.\" 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. +.\" +.\" @(#)sigreturn.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/sigreturn.2,v 1.16 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt SIGRETURN 2 +.Os +.Sh 名称 +.Nm sigreturn +.Nd シグナルから戻る +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In signal.h +.Ft int +.Fn sigreturn "ucontext_t *scp" +.Sh 解説 +.Fn sigreturn +システムコールにより、マスクの解除、スタックの切り替え、 +シグナルコンテキストからの復帰を、不可分に実行可能です。 +プロセスのシグナルマスクとスタックステータスは、 +.Fa scp +で指されるコンテキスト構造体から復元されます。 +システムコールは戻りません。 +ユーザのスタックポインタ、フレームポインタ、引数ポインタ、 +プロセッサステータスロングワードは、コンテキストから復元されます。 +実行は、指定された pc で再開されます。 +このシステムコールは、前に実行していたプログラムに +シグナルから戻る場合に、トランポリンコードと +.Xr longjmp 3 +で使用されます。 +.Sh 注 +このシステムコールは +.Bx 4.2 +では使用できないので、下位互換性が必要な場合は使用しないでください。 +.Sh 戻り値 +処理が正常に完了すると、このシステムコールは戻りません。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます +.Sh エラー +以下のうち 1 つが発生すると、 +.Fn sigreturn +システムコールは処理を失敗し、プロセスコンテキストは変更されずに残ります。 +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa scp +引数が、プロセスアドレス空間の有効な部分ではない +メモリを指しています。 +.It Bq Er EINVAL +プロセスステータスロングワードが正しくないか、 +プロセスの権限レベルを不適切に上げています。 +.El +.Sh 関連項目 +.Xr sigvec 2 , +.Xr setjmp 3 , +.Xr ucontext 3 +.Sh 歴史 +.Fn sigreturn +システムコールは、 +.Bx 4.3 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/sigsetmask.2 b/documentation/manual-pages/ja/man2/sigsetmask.2 new file mode 100644 index 0000000000..84273cf1e7 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigsetmask.2 @@ -0,0 +1,104 @@ +.\" 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. +.\" +.\" @(#)sigsetmask.2 8.1 (Berkeley) 6/2/93 +.\" %FreeBSD: src/lib/libc/compat-43/sigsetmask.2,v 1.13 2002/12/18 12:45:08 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 2, 1993 +.Dt SIGSETMASK 2 +.Os +.Sh 名称 +.Nm sigsetmask , +.Nm sigblock +.Nd 現在のシグナルマスクを操作する +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In signal.h +.Ft int +.Fn sigsetmask "int mask" +.Ft int +.Fn sigblock "int mask" +.Ft int +.Fn sigmask "int signum" +.Sh 解説 +.Bf -symbolic +このインタフェースは +.Ef +.Xr sigprocmask 2 +.Bf -symbolic +によって旧式のものとなっています。 +.Ef +.Pp +.Fn sigsetmask +関数は、指定された +.Fa mask +を現在のシグナルマスクに設定します。 +.Fa mask +で対応するビットが 1 である場合、シグナルの配信はブロックされます。 +.Fn sigblock +関数は、指定された +.Fa mask +中のシグナルを現在のシグナルマスクに追加します。 +.Fn sigsetmask +と違い、上書きはしません。 +マクロ +.Fn sigmask +は、指定した +.Fa signum +のマスクを作成するために提供されています。 +.Pp +システムでは、 +.Dv SIGKILL +や +.Dv SIGSTOP +のブロックが許可されていません。 +.Sh 戻り値 +.Fn sigblock +関数と +.Fn sigsetmask +関数は、マスクされたシグナルの前のセットが戻されます。 +.Sh 関連項目 +.Xr kill 2 , +.Xr sigaction 2 , +.Xr sigprocmask 2 , +.Xr sigsuspend 2 , +.Xr sigvec 2 , +.Xr sigsetops 3 +.Sh 歴史 +.Fn sigsetmask +関数と +.Fn sigblock +関数は +.Bx 4.2 +ではじめて登場しました。 +しかし、現在では この関数を使用することは推奨されていません。 diff --git a/documentation/manual-pages/ja/man2/sigstack.2 b/documentation/manual-pages/ja/man2/sigstack.2 new file mode 100644 index 0000000000..613c988f83 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigstack.2 @@ -0,0 +1,55 @@ +.\" Copyright (c) 1983, 1992, 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. +.\" +.\" @(#)sigstack.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/sigstack.2,v 1.8 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt SIGSTACK 2 +.Os +.Sh 名称 +.Nm sigstack +.Nd シグナルスタックコンテキストの設定や取得 +.Sh ライブラリ +.Lb libc +.Sh 解説 +.Fn sigstack +関数は、 +.Xr sigaltstack 2 +で説明したインタフェースで置き換えられました。 +.Sh 関連項目 +.Xr sigaltstack 2 +.Sh 歴史 +.Fn sigstack +システムコールは、 +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/sigsuspend.2 b/documentation/manual-pages/ja/man2/sigsuspend.2 new file mode 100644 index 0000000000..f1c3261958 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigsuspend.2 @@ -0,0 +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 sigsuspend +システムコールは、 +.St -p1003.1-90 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/sigvec.2 b/documentation/manual-pages/ja/man2/sigvec.2 new file mode 100644 index 0000000000..ebb3817927 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigvec.2 @@ -0,0 +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 SIGXCPU No " プロセスの終了" " cpu 制限時間の超過" +.Xr ( setrlimit 2 +参照) +.It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過" +.Xr ( setrlimit 2 +参照) +.It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム" +.Xr ( setitimer 2 +参照) +.It Dv SIGPROF No " プロセスの終了" " プロファイリングタイマアラーム" +.Xr ( setitimer 2 +参照) +.It Dv SIGWINCH No " シグナルの放棄" " ウィンドウサイズの変化" +.It Dv SIGINFO No " シグナルの放棄" " キーボードからのステータス要求" +.It Dv SIGUSR1 No " プロセスの終了" " ユーザ定義シグナル 1" +.It Dv SIGUSR2 No " プロセスの終了" " ユーザ定義シグナル 2" +.El +.Pp +シグナルハンドラが設置されると、 +.Fn sigvec +を再度呼び出すか +.Xr execve 2 +を実行するまでシグナルハンドラは設置されたまま残ります。 +シグナルに固有なデフォルトアクションへは、 +.Fa sv_handler +を +.Dv SIG_DFL +に設定することでリセットできます。 +デフォルトは、プロセスの終了 (コアダンプが取られることもあります)、 +アクションなし、プロセスの停止、プロセスの継続です。 +それぞれのシグナルのデフォルトアクションについては、 +上のシグナルリストを参照してください。 +.Fa sv_handler +が +.Dv SIG_IGN +である場合、シグナルの現在と保留中のインスタンスは無視されて放棄されます。 +.Pp +以下のリストのシステムコール中にシグナルが補足されると、 +通常の場合、呼び出しは再開されます。 +.Dv SV_INTERRUPT +ビットを +.Fa sv_flags +で設定することで、システムコールは、 +.Er EINTR +エラー値を伴い、途中で終了するように強制可能です。 +影響を受けるシステムコールは、 +通信チャネルか遅いデバイス (端末などで、通常ファイルではない) に対する +.Xr read 2 , +.Xr write 2 , +.Xr sendto 2 , +.Xr recvfrom 2 , +.Xr sendmsg 2 , +.Xr recvmsg 2 +と +.Xr wait 2 , +.Xr ioctl 2 +の途中です。 +しかし、すでに実行されているシステムコールは再開されず、 +部分的な結果 (短い読取りカウントなど) を返します。 +.Pp +.Xr fork 2 +か +.Xr vfork 2 +の後では、すべてのシグナル、シグナルマスク、シグナルスタック、 +再開 / 割込みフラグが子に継承されます。 +.Pp +.Xr execve 2 +システムコールは、補足されたすべてのシグナルのデフォルトアクションを元に戻し、 +ユーザスタックで補足されるすべてのシグナルをリセットします。 +無視されたシグナルは無視されたまま残ります。 +シグナルマスクは同じ状態のままです。 +システムコールに割り込むシグナルは、割込みを続けます。 +.Sh 注 +.Fa vec +に指定したマスクでは、 +.Dv SIGKILL +と +.Dv SIGSTOP +をブロックできません。 +これは、システムが暗黙的に課す制限事項です。 +.Pp +.Bx 4.2 +では +.Dv SV_INTERRUPT +フラグを使用できないので、下位互換性が必要な場合は使用しないでください。 +.Sh 戻り値 +.Rv -std sigvec +.Sh エラー +以下のうち 1 つが発生すると、 +.Fn sigvec +関数はエラーとなり、新しいシグナルハンドラは設置されません: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa vec +か +.Fa ovec +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINVAL +.Fa sig +引数が、正しいシグナル番号になっていません。 +.It Bq Er EINVAL +.Dv SIGKILL +か +.Dv SIGSTOP +のハンドラを無視するか提供しようとしました。 +.El +.Sh 関連項目 +.Xr kill 1 , +.Xr kill 2 , +.Xr ptrace 2 , +.Xr sigaction 2 , +.Xr sigaltstack 2 , +.Xr sigblock 2 , +.Xr sigpause 2 , +.Xr sigprocmask 2 , +.Xr sigsetmask 2 , +.Xr sigsuspend 2 , +.Xr setjmp 3 , +.Xr siginterrupt 3 , +.Xr signal 3 , +.Xr sigsetops 3 , +.Xr tty 4 +.Sh 使用例 +.Tn VAX\-11 +では、以下のようにハンドラルーチンを宣言できます。 +.Bd -literal -offset indent +void handler(sig, code, scp) +int sig, code; +struct sigcontext *scp; +.Ed +.Pp +.Fa sig +は、ハードウェアフォルトとトラップのマップ対象のシグナル番号であり、 +下のように定義されます。 +.Fa code +引数は、下で定義する定数、または互換性モードフォルトの場合は、 +ハードウェアが提供するコードであるパラメータです +(互換性モードフォルトは、pslに +.Dv PSL_CM +が設定されていることから、他の +.Dv SIGILL +トラップと区別されます)。 +.Fa scp +引数は、 +.Fa sigcontext +構造体 +.In ( signal.h +で定義) へのポインタで、シグナル前にコンテキストを復元するために使用されます。 +.Sh バグ +このマニュアルページは不明確です。 diff --git a/documentation/manual-pages/ja/man2/sigwait.2 b/documentation/manual-pages/ja/man2/sigwait.2 new file mode 100644 index 0000000000..bb6891c007 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sigwait.2 @@ -0,0 +1,88 @@ +.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>. +.\" 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(s), this list of conditions and the following disclaimer as +.\" the first lines of this file unmodified other than the possible +.\" addition of one or more copyright notices. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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/sigwait.2,v 1.11 2004/07/03 23:14:34 ru Exp % +.\" +.\" $FreeBSD$ +.\" +.Dd April 27, 2000 +.Dt SIGWAIT 2 +.Os +.Sh 名称 +.Nm sigwait +.Nd シグナルの組の選択 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In signal.h +.Ft int +.Fn sigwait "const sigset_t * restrict set" "int * restrict sig" +.Sh 解説 +.Fn sigwait +システムコールは +.Fa set +によって指定されたシグナルの組を選択します。 +選択されたシグナルのいずれも保留状態でない場合には、 +.Fn sigwait +は 1 つ以上の選択されたシグナルが発生させられるまで待ちます。 +それから +.Fn sigwait +は不可分に、そのプロセスのために保留されているシグナルの組から 1 つの選択 +されたシグナルをクリアし、 +.Fa sig +によって指されている場所にそのクリアされたシグナル番号を設定します。 +.Pp +.Fa set +によって指定されたシグナルは +.Fn sigwait +の呼び出し時点でブロックされるべきです。 +.Sh 戻り値 +成功した場合には、 +.Fn sigwait +は 0 を返し +.Fa sig +によって指されている場所にそのクリアされたシグナル番号を設定します。 +そうでない場合には、エラー番号が返されます。 +.Sh エラー +.Fn sigwait +システムコールは、以下の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa set +引数が 1 つ以上の無効なシグナル番号を指定しています。 +.El +.Sh 関連項目 +.Xr sigaction 2 , +.Xr sigpending 2 , +.Xr sigsuspend 2 , +.Xr pause 3 , +.Xr pthread_sigmask 3 +.Sh 規格 +.Fn sigwait +関数は +.St -p1003.1-96 +に適合しています。 diff --git a/documentation/manual-pages/ja/man2/socket.2 b/documentation/manual-pages/ja/man2/socket.2 new file mode 100644 index 0000000000..5b359cb2ee --- /dev/null +++ b/documentation/manual-pages/ja/man2/socket.2 @@ -0,0 +1,268 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/socket.2,v 1.30 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.\" +.Dd November 24, 1997 +.Dt SOCKET 2 +.Os +.Sh 名称 +.Nm socket +.Nd 通信のエンドポイントの作成 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn socket "int domain" "int type" "int protocol" +.Sh 解説 +.Fn socket +システムコールは、通信のエンドポイントを作成し、記述子を戻します。 +.Pp +.Fa domain +引数では、通信を行う通信ドメインを指定します。 +これにより、使用するプロトコルファミリが選択されます。 +このプロトコルファミリは、インクルードファイル +.In sys/socket.h +で定義されています。 +現在解釈されるフォーマットは以下のとおりです: +.Pp +.Bd -literal -offset indent -compact +PF_LOCAL PF_UNIX と呼ばれていた、ホスト内プロトコル +PF_UNIX ホスト内プロトコル、使用は奨励されない。 + PF_LOCAL を使用のこと +PF_INET IPv4 プロトコル +PF_PUP BSP のような PUP プロトコル +PF_APPLETALK AppleTalk プロトコル +PF_ROUTE 内部ルーティングプロトコル +PF_LINK リンク層インタフェース +PF_IPX Novell 社 IPX (Internet Packet eXchange) プロトコル +PF_RTIP RTIP パケットの識別に使用 +PF_PIP PIP パケットの識別に使用 +PF_ISDN 統合デジタル通信サービス網 (ISDN) +PF_KEY 内部鍵管理機能 +PF_INET6 IPv6 プロトコル +PF_NATM ATM へのネイティブアクセス +PF_ATM ATM +PF_NETGRAPH Netgraph ソケット +.Ed +.Pp +ソケットには、通信の種類を指定する +.Fa タイプ +があります。 +現在、定義されているタイプは以下のとおりです: +.Pp +.Bd -literal -offset indent -compact +SOCK_STREAM ストリーム型ソケット +SOCK_DGRAM データグラム型ソケット +SOCK_RAW 生プロトコルインタフェース +SOCK_RDM 伝達が信頼できるパケット +SOCK_SEQPACKET 順序付きパケットストリーム +.Ed +.Pp +.Dv SOCK_STREAM +タイプは、連続した、信頼性のある、双方向接続ベースの +バイトストリームを提供します。 +帯域外データ転送メカニズムがサポートされることもあります。 +.Dv SOCK_DGRAM +ソケットでは、データグラム (コネクションレスで信頼性のない、 +最大長が固定の (一般的には小さい) メッセージ) がサポートされます。 +.Dv SOCK_SEQPACKET +ソケットは、連続した、信頼性のある、双方向接続ベースの +最大長が固定のデータグラムの転送を提供します。 +各読取りシステムコールでパケット全体を読み取る必要があるかもしれません。 +この機能はプロトコル固有のもので、現在のところ実装されていません。 +.Dv SOCK_RAW +ソケットでは、内部ネットワークプロトコルとインタフェースにアクセスできます。 +スーパユーザしか使用できない +.Dv SOCK_RAW +タイプ、および計画されているがまだ実装されていない +.Dv SOCK_RDM +については、ここでは説明しません。 +.Pp +.Fa protocol +引数では、ソケットで使用する特定プロトコルを指定します。 +通常の場合は、1 つのプロトコルのみが存在して、 +指定したプロトコルファミリの特定ソケットタイプをサポートします。 +しかし、複数のプロトコルが存在することも可能です。 +この場合は、特定プロトコルをこの方法で指定する必要があります。 +使用するプロトコル番号は、通信を行う +.Dq 通信ドメイン +に固有です。 +.Xr protocols 5 +を参照してください。 +.Pp +タイプ +.Dv SOCK_STREAM +のソケットは、パイプに類似した全二重バイトストリームです。 +ストリームソケットでは、 +.Em 接続済み状態 +にしてからデータを送受信する必要があります。 +別のソケットへの接続は、 +.Xr connect 2 +システムコールを呼び出して作成できます。 +接続されたら、 +.Xr read 2 +と +.Xr write 2 +を呼び出すか、 +.Xr send 2 +と +.Xr recv 2 +関数の変種を呼び出してデータを転送できます。 +(インターネットファミリなど、一部のプロトコルファミリでは、 +.Dq 暗黙接続 +という観念がサポートされています。 +この接続では、 +.Xr sendto 2 +システムコールを呼び出し、接続オペレーションに乗せてデータを送信できます。) +セッションが終了したら、 +.Xr close 2 +を実行しても構いません。 +帯域外データは、 +.Xr send 2 +で説明されているように送信し、 +.Xr recv 2 +で説明されているように受信できます。 +.Pp +.Dv SOCK_STREAM +の実装に使用する通信プロトコルでは、データの喪失や重複がないことが +保証されます。 +ピアプロトコルにバッファ空間があるデータの一部を合理的な時間内に +問題なく転送できない場合は、接続が破損したとみなされて呼び出しが +エラーとなり、-1 が戻されてグローバル変数 +.Va errno +に +.Er ETIMEDOUT +が設定されます。 +その他の動作がない場合、プロトコルは約 1 分ごとに転送を強制し、ソケットの +.Dq 接続 +を任意に維持します。 +一定期間 (例えば 5 分間) アイドル接続で応答がない場合はエラーとなります。 +破損したストリームでプロセスが送信すると、 +.Dv SIGPIPE +シグナルが発生します。 +この場合、シグナルを処理しないプロセスは終了します。 +.Pp +.Dv SOCK_SEQPACKET +ソケットは、 +.Dv SOCK_STREAM +ソケットとほぼ同じシステムコールです。 +.Xr read 2 +を呼び出しても、要求された量のデータしか戻されず、 +受信パケットの残りの部分は放棄される点のみが異なります。 +.Pp +.Dv SOCK_DGRAM +ソケットと +.Dv SOCK_RAW +ソケットでは、 +.Xr send 2 +の呼び出しで指定された通信相手にデータグラムを送信できます。 +一般的にデータグラムは、次のデータグラムのアドレスを戻す +.Xr recvfrom 2 +で受信されます。 +.Pp +.Xr fcntl 2 +システムコールは、帯域外データを受信した場合の +.Dv SIGURG +シグナルを受信するプロセスグループを指定できます。 +非ブロッキング入出力、および入出力イベントの非同期通知も、 +.Dv SIGIO +で有効にできます。 +.Pp +ソケットのオペレーションは、ソケットレベルの +.Em オプション +で制御されます。 +このオプションは、ファイル +.In sys/socket.h +に定義されています。 +.Xr setsockopt 2 +システムコールはオプションの設定に、 +.Xr getsockopt 2 +システムコールはオプションの入手に使用します。 +.Sh 戻り値 +エラーが発生すると -1 が戻されます。 +エラーが発生しなかった場合は、ソケットを参照する記述子が戻されます。 +.Sh エラー +以下のような場合、 +.Fn socket +システムコールはエラーになります: +.Bl -tag -width Er +.It Bq Er EPROTONOSUPPORT +プロトコルタイプか指定されたプロトコルがドメインでサポートされていません。 +.It Bq Er EMFILE +プロセスごとの記述子テーブルが満杯です。 +.It Bq Er ENFILE +システムファイルテーブルが満杯です。 +.It Bq Er EACCES +指定されたタイプやプロトコルのソケットを作成する権限が拒否されました。 +.It Bq Er ENOBUFS +バッファ空間が不足しています。 +充分なリソースが解放されるまでソケットを作成できません。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr bind 2 , +.Xr connect 2 , +.Xr getpeername 2 , +.Xr getsockname 2 , +.Xr getsockopt 2 , +.Xr ioctl 2 , +.Xr listen 2 , +.Xr read 2 , +.Xr recv 2 , +.Xr select 2 , +.Xr send 2 , +.Xr shutdown 2 , +.Xr socketpair 2 , +.Xr write 2 , +.Xr getprotoent 3 , +.Xr netgraph 4 , +.Xr protocols 5 +.Rs +.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial" +.%B PS1 +.%N 7 +.Re +.Rs +.%T "BSD Interprocess Communication Tutorial" +.%B PS1 +.%N 8 +.Re +.Sh 歴史 +.Fn socket +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/socketpair.2 b/documentation/manual-pages/ja/man2/socketpair.2 new file mode 100644 index 0000000000..30ad56c870 --- /dev/null +++ b/documentation/manual-pages/ja/man2/socketpair.2 @@ -0,0 +1,95 @@ +.\" 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. +.\" +.\" @(#)socketpair.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/socketpair.2,v 1.15 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt SOCKETPAIR 2 +.Os +.Sh 名称 +.Nm socketpair +.Nd 接続されたソケットのペアの作成 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/socket.h +.Ft int +.Fn socketpair "int d" "int type" "int protocol" "int *sv" +.Sh 解説 +.Fn socketpair +システムコールは、任意に指定された +.Fa protocol +を使用し、指定された +.Fa type +の、名前を持たない、接続されたソケットのペアを、指定されたドメイン +.Fa d +に作成します。 +このとき、ペアは指定できません。 +新しいソケットの参照に使用された記述子は、 +.Fa sv Ns [0] +と +.Fa sv Ns [1] +に戻されます。 +2 つのソケットは区別できません。 +.Sh 戻り値 +.Rv -std socketpair +.Sh エラー +以下のような場合、処理を失敗します: +.Bl -tag -width Er +.It Bq Er EMFILE +プロセスで使用されている記述子が多すぎます。 +.It Bq Er EAFNOSUPPORT +指定されたアドレスファミリが、この機械でサポートされていません。 +.It Bq Er EPROTONOSUPPORT +指定したプロトコルが、この機械でサポートされていません。 +.It Bq Er EOPNOTSUPP +指定したプロトコルでの、ソケットペアの作成がサポートされていません。 +.It Bq Er EFAULT +アドレス +.Fa sv +が、プロセスアドレス空間の有効な部分を指定していません。 +.El +.Sh 関連項目 +.Xr pipe 2 , +.Xr read 2 , +.Xr write 2 +.Sh バグ +この呼び出しは、現在のところ +.Ux +ドメインのみで実装されています。 +.Sh 歴史 +.Fn socketpair +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/stat.2 b/documentation/manual-pages/ja/man2/stat.2 new file mode 100644 index 0000000000..46d1bbd07a --- /dev/null +++ b/documentation/manual-pages/ja/man2/stat.2 @@ -0,0 +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.2.4 2005/02/28 03:32:34 brueffer Exp % +.\" +.\" $FreeBSD$ +.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 +ファイルシステムに関連する +.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 ".Va st_blksize" +.It Va st_size +バイトで表されるファイルサイズ。 +.It Va st_blksize +ファイルの最適な入出力ブロックサイズ。 +.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 互換性 +以前のバージョンのシステムでは、 +.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 +引数または +.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 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/statfs.2 b/documentation/manual-pages/ja/man2/statfs.2 new file mode 100644 index 0000000000..5308ee1834 --- /dev/null +++ b/documentation/manual-pages/ja/man2/statfs.2 @@ -0,0 +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/documentation/manual-pages/ja/man2/swapon.2 b/documentation/manual-pages/ja/man2/swapon.2 new file mode 100644 index 0000000000..a0bf742cf4 --- /dev/null +++ b/documentation/manual-pages/ja/man2/swapon.2 @@ -0,0 +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 +システムコールは、 +.Fx 5.0 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/symlink.2 b/documentation/manual-pages/ja/man2/symlink.2 new file mode 100644 index 0000000000..f40e589f09 --- /dev/null +++ b/documentation/manual-pages/ja/man2/symlink.2 @@ -0,0 +1,128 @@ +.\" 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. +.\" +.\" @(#)symlink.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/symlink.2,v 1.15 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt SYMLINK 2 +.Os +.Sh 名称 +.Nm symlink +.Nd ファイルへのシンボリックリンクの作成 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn symlink "const char *name1" "const char *name2" +.Sh 解説 +.Fa name1 +へのシンボリックリンク +.Fa name2 +が作成されます +.Fa ( name2 +は作成されるファイルの名前で、 +.Fa name1 +はシンボリックリンクの作成に使用される文字列です)。 +どちらの名前も任意のパス名です。 +ファイルが同じファイルシステムに存在する必要はありません。 +.Sh 戻り値 +.Rv -std symlink +.Sh エラー +以下のような場合、シンボリックリンクはエラーとなります: +.Bl -tag -width Er +.It Bq Er ENOTDIR +.Fa name2 +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定されたファイルが存在しません。 +.It Bq Er EACCES +.Fa name2 +指定されたパスには、検索が許可されていないディレクトリが含まれています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EEXIST +.Fa name2 +引数で指されるパス名がすでに存在します。 +.It Bq Er EIO +.Fa name2 +のディレクトリエントリの作成中、または +.Fa name2 +の inode の割り当て中、あるいは +.Fa name2 +のリンクコンテンツの書き出し中に入出力エラーが発生しました。 +.It Bq Er EROFS +ファイル +.Fa name2 +は読取り専用ファイルシステム上にあります。 +.It Bq Er ENOSPC +新しいシンボリックリンクを作成するディレクトリを含むファイルシステム上に +空間が残っていないため、新しいシンボリックリンクを作成できません。 +.It Bq Er ENOSPC +シンボリックリンクを含むファイルシステム上にシンボリックリンクを +作る空間が残っていないため、新しいシンボリックリンクを作成できません。 +.It Bq Er ENOSPC +シンボリックリンクを作成するファイルシステム上の inode が枯渇しました。 +.It Bq Er EDQUOT +新しいシンボリックリンクのエントリを配置するディレクトリを含む +ファイルシステム上のユーザのディスクブロックが枯渇したため、作成できません。 +.It Bq Er EDQUOT +シンボリックリンクを作るファイルシステム上のユーザのディスクブロックの +クォータが枯渇したため、新しいシンボリックリンクを作成できません。 +.It Bq Er EDQUOT +シンボリックリンクを作成するファイルシステム上のユーザの inode の +クォータが枯渇しました。 +.It Bq Er EIO +ディレクトリエントリの作成中、または inode の割り当て中に +入出力エラーが発生しました。 +.It Bq Er EFAULT +.Fa name1 +引数または +.Fa name2 +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr ln 1 , +.Xr link 2 , +.Xr lstat 2 , +.Xr readlink 2 , +.Xr unlink 2 , +.Xr symlink 7 +.Sh 歴史 +.Fn symlink +システムコールは、 +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/sync.2 b/documentation/manual-pages/ja/man2/sync.2 new file mode 100644 index 0000000000..c875a6330b --- /dev/null +++ b/documentation/manual-pages/ja/man2/sync.2 @@ -0,0 +1,75 @@ +.\" 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. +.\" +.\" @(#)sync.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/sync.2,v 1.14 2002/12/18 09:22:31 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt SYNC 2 +.Os +.Sh 名称 +.Nm sync +.Nd ファイルシステムの更新をスケジュールする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft void +.Fn sync void +.Sh 解説 +.Fn sync +システムコールは、ブロックバッファキャッシュのダーティな (更新された) バッファ +をディスクに強制的に書き出します。 +カーネルはこの情報をメモリ上に溜めこみ、システムが要求する +ディスク I/O 転送の数を減らします。 +システムがクラッシュするとキャッシュの情報が失われてしまうため、 +ユーザプロセス +.Xr syncer 4 +は +.Fn sync +システムコールを頻繁に呼び出します (約 30 秒ごと)。 +.Pp +それぞれのファイル記述子属性の同期を取るには、関数 +.Xr fsync 2 +システムコールを使用します。 +.Sh 関連項目 +.Xr fsync 2 , +.Xr syncer 4 , +.Xr sync 8 +.Sh バグ +.Fn sync +システムコールは、バッファが完全にフラッシュされる前に戻ることがあります。 +.Sh 歴史 +.Fn sync +関数は、 +.At v6 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/sysarch.2 b/documentation/manual-pages/ja/man2/sysarch.2 new file mode 100644 index 0000000000..d8b9953688 --- /dev/null +++ b/documentation/manual-pages/ja/man2/sysarch.2 @@ -0,0 +1,78 @@ +.\" %NetBSD: sysarch.2,v 1.6 1998/02/25 21:24:57 perry Exp % +.\" %FreeBSD: src/lib/libc/sys/sysarch.2,v 1.9 2004/07/02 23:52:13 ru Exp % +.\" +.\" Copyright (c) 1980, 1991 Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" from: @(#)syscall.2 6.3 (Berkeley) 3/10/91 +.\" +.\" $FreeBSD$ +.Dd October 11, 1993 +.Dt SYSARCH 2 +.Os +.Sh 名称 +.Nm sysarch +.Nd アーキテクチャ依存型システムコール +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In machine/sysarch.h +.Ft int +.Fn sysarch "int number" "void *args" +.Sh 解説 +.Fn sysarch +システムコールは、 +.Fa args +ポインタが指定する引数で、 +.Fa number +が指定するアーキテクチャ依存型関数を実行します。 +.Fa args +引数は、関数の実引数を定義する構造体のポインタです。 +アーキテクチャ依存型関数のシンボリック定数と引数の構造体は、 +ヘッダファイル +.In machine/sysarch.h +にあります。 +.Pp +ユーザプログラムでは、 +.Fn sysarch +システムコールを直接呼び出さず、 +アーキテクチャ依存型ライブラリを使用して関数にアクセスしてください。 +.Sh 戻り値 +戻り値については、それぞれのアーキテクチャ依存のシステムコールの +マニュアルページを参照してください。 +.Sh 関連項目 +.Xr i386_get_ioperm 2 , +.Xr i386_get_ldt 2 , +.Xr i386_vm86 2 +.Sh 歴史 +このマニュアルページは、 +.Nx +から取得されました。 diff --git a/documentation/manual-pages/ja/man2/syscall.2 b/documentation/manual-pages/ja/man2/syscall.2 new file mode 100644 index 0000000000..f3c02492d5 --- /dev/null +++ b/documentation/manual-pages/ja/man2/syscall.2 @@ -0,0 +1,80 @@ +.\" 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. +.\" +.\" @(#)syscall.2 8.1 (Berkeley) 6/16/93 +.\" %FreeBSD: src/lib/libc/sys/syscall.2,v 1.11 2003/09/10 19:24:33 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 16, 1993 +.Dt SYSCALL 2 +.Os +.Sh 名称 +.Nm syscall , +.Nm __syscall +.Nd 間接的なシステムコール +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/syscall.h +.In unistd.h +.Ft int +.Fn syscall "int number" ... +.Ft off_t +.Fn __syscall "quad_t number" ... +.Sh 解説 +.Fn syscall +関数は、指定した +.Fa number +を持つアセンブリ言語インタフェースのシステムコールを、 +指定した引数で実行します。 +システムコールのシンボリック定数は、ヘッダファイル +.In sys/syscall.h +にあります。 +.Fn __syscall +は、1 つ以上の引数が 64 ビット引数で、 +引数のアラインメントが正しいことを保証する場合に使用してください。 +このシステムコールは、C ライブラリにエントリがない +新しいシステムコールをテストする場合に有用です。 +.Sh 戻り値 +戻り値は、呼び出すシステムコールで定義されています。 +一般的に 0 は正常に完了したことを示します。 +-1 はエラーを表わし、エラーコードが +.Va errno +に設定されます。 +.Sh バグ +.Xr pipe 2 +のように、複数の戻り値があるシステムコールを +シミュレートする方法はありません。 +.Sh 歴史 +.Fn syscall +関数は、 +.Bx 4.0 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/truncate.2 b/documentation/manual-pages/ja/man2/truncate.2 new file mode 100644 index 0000000000..a74d5df7b9 --- /dev/null +++ b/documentation/manual-pages/ja/man2/truncate.2 @@ -0,0 +1,121 @@ +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)truncate.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/truncate.2,v 1.16 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt TRUNCATE 2 +.Os +.Sh 名称 +.Nm truncate , +.Nm ftruncate +.Nd 指定した長さにファイルを切り捨てたり拡張したりする +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn truncate "const char *path" "off_t length" +.Ft int +.Fn ftruncate "int fd" "off_t length" +.Sh 解説 +.Fn truncate +システムコールは、 +.Fa path +で指定されるファイルか +.Fa fd +で参照されるファイルのサイズが、 +.Fa length +バイトになるように切り捨てたり拡張します。 +ファイルがこのサイズより大きい場合は、余分なデータが失われます。 +ファイルがこのサイズより小さい場合は、0 が書き込まれたように拡張されます。 +.Fn ftruncate +では、ファイルが書込み用に開いている必要があります。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fn truncate +システムコールは、以下のような場合に処理を失敗します: +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定されたファイルが存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er EACCES +指定されたファイルにユーザが書き込めません。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EISDIR +指定されたファイルがディレクトリになっています。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er ETXTBSY +ファイルが、実行中のピュアプロシージャ (共有テキスト) ファイルです。 +.It Bq Er EIO +inode の更新をしている間に入出力エラーが発生しました。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Pp +.Fn ftruncate +システムコールは、以下のような場合に処理を失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +引数が有効な記述子ではありません。 +.It Bq Er EINVAL +.Fa fd +引数はファイルではなくソケットを参照しています。 +.It Bq Er EINVAL +.Fa fd +引数が書込み用に開いていません。 +.El +.Sh 関連項目 +.Xr open 2 +.Sh バグ +この呼出しは、ファイルのある範囲を放棄できるように一般化する +必要があります。 +.Pp +.Fn truncate +を使用してファイルを拡張すると、移植性が失われます。 +.Sh 歴史 +.Fn truncate +システムコールは、 +.Bx 4.2 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/umask.2 b/documentation/manual-pages/ja/man2/umask.2 new file mode 100644 index 0000000000..11fa162556 --- /dev/null +++ b/documentation/manual-pages/ja/man2/umask.2 @@ -0,0 +1,86 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)umask.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/umask.2,v 1.12 2004/07/02 23:52:13 ru Exp % +.\" +.\" $FreeBSD$ +.Dd June 4, 1993 +.Dt UMASK 2 +.Os +.Sh 名称 +.Nm umask +.Nd ファイルモード生成マスクの設定 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/stat.h +.Ft mode_t +.Fn umask "mode_t numask" +.Sh 解説 +.Fn umask +ルーチンは、プロセスのファイルモード生成マスクを +.Fa numask +に設定し、設定前のマスク値を返します。 +.Fa numask +のアクセス権の下位 9 ビットは、 +.Xr open 2 , +.Xr mkdir 2 , +.Xr mkfifo 2 +などのシステムコールが使用し、ファイルモードで要求される +対応するビットをオフにします ( +.Xr chmod 2 +を参照)。 +ビットをクリアにすることで、各ユーザはそのファイルへの +デフォルトアクセスを制限することができます。 +.Pp +デフォルトのマスク値は、S_IWGRP | S_IWOTH +(022、所有者のみの書込みアクセス) です。 +子プロセスは、呼び出しプロセスのマスクを継承します。 +.Sh 戻り値 +呼び出しによって、以前のファイルモードマスクの値が返されます。 +.Sh エラー +.Fn umask +システムコールは、常に成功します。 +.Sh 関連項目 +.Xr chmod 2 , +.Xr mknod 2 , +.Xr open 2 +.Sh 規格 +.Fn umask +システムコールは、 +.St -p1003.1-90 +に適合しています。 +.Sh 歴史 +.Fn umask +関数は、 +.At v7 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/undelete.2 b/documentation/manual-pages/ja/man2/undelete.2 new file mode 100644 index 0000000000..39ca9b7aa9 --- /dev/null +++ b/documentation/manual-pages/ja/man2/undelete.2 @@ -0,0 +1,102 @@ +.\" Copyright (c) 1994 +.\" Jan-Simon Pendry +.\" 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. +.\" +.\" @(#)undelete.2 8.4 (Berkeley) 10/18/94 +.\" %FreeBSD: src/lib/libc/sys/undelete.2,v 1.15 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd October 18, 1994 +.Dt UNDELETE 2 +.Os +.Sh 名称 +.Nm undelete +.Nd 削除したファイルの回復 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In unistd.h +.Ft int +.Fn undelete "const char *path" +.Sh 解説 +.Fn undelete +システムコールは、 +.Fa path +で指定された削除済みファイルを回復しようとします。 +現在は、指定されたオブジェクトがユニオンファイルシステムの +ホワイトアウトである場合に限って動作します。 +このシステムコールはホワイトアウトを削除し、 +ユニオンスタックの下層にあるオブジェクトが表示されるようにします。 +.Pp +最終的に +.Fn undelete +機能は、その他のログ構造ファイルシステムのような削除済みファイルを +回復できるファイルシステムに拡張されるでしょう。 +.Sh 戻り値 +.Rv -std undelete +.Sh エラー +.Fn undelete +は、以下の場合にエラーとなります: +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er EEXIST +パスがホワイトアウトを参照していません。 +.It Bq Er ENOENT +指定されたホワイトアウトが存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er EACCES +回復するファイルを含むディレクトリについて、書込み許可が拒否されています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EPERM +ファイルを含むディレクトリがスティッキとマークされ、 +そのディレクトリが、有効なユーザ ID に所有されていません。 +.It Bq Er EIO +ディレクトリエントリの更新している間に入出力エラーが発生しました。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EFAULT +.Fa path +引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr unlink 2 , +.Xr mount_unionfs 8 +.Sh 歴史 +.Fn undelete +関数呼び出しは、 +.Bx 4.4 Lite +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/unlink.2 b/documentation/manual-pages/ja/man2/unlink.2 new file mode 100644 index 0000000000..2fae17eb6b --- /dev/null +++ b/documentation/manual-pages/ja/man2/unlink.2 @@ -0,0 +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.2.1 2005/02/26 06:08:07 trhodes Exp % +.\" +.\" $FreeBSD$ +.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/documentation/manual-pages/ja/man2/utimes.2 b/documentation/manual-pages/ja/man2/utimes.2 new file mode 100644 index 0000000000..fe07cc1c5f --- /dev/null +++ b/documentation/manual-pages/ja/man2/utimes.2 @@ -0,0 +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 +が +.Dv NULL +以外である場合、 +.Fa times +は 2 つの timeval 構造体の配列を指していることが前提となります。 +アクセス時刻は最初の要素に、更新時刻は次の要素に +設定します。 +.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 +引数が +.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 +引数が +.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/documentation/manual-pages/ja/man2/utrace.2 b/documentation/manual-pages/ja/man2/utrace.2 new file mode 100644 index 0000000000..3a56531fd9 --- /dev/null +++ b/documentation/manual-pages/ja/man2/utrace.2 @@ -0,0 +1,91 @@ +.\" $NetBSD: utrace.2,v 1.11 2003/04/24 12:17:49 wiz Exp $ +.\" +.\" Copyright (c) 2000 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Gregory McGarry <g.mcgarry@ieee.org>. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the NetBSD +.\" Foundation, Inc. and its contributors. +.\" 4. Neither the name of The NetBSD Foundation nor the names of its +.\" contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/utrace.2,v 1.3 2004/07/03 23:14:34 ru Exp % +.\" +.\" $FreeBSD$ +.Dd December 28, 2000 +.Dt UTRACE 2 +.Os +.Sh 名称 +.Nm utrace +.Nd ktrace のログの中へのユーザレコードの挿入 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/param.h +.In sys/time.h +.In sys/uio.h +.In sys/ktrace.h +.Ft int +.Fn utrace "const void *addr" "size_t len" +.Sh 解説 +プロセストレースに、ユーザによって供給された情報のレコードを追加します。 +このレコードは +.Fa addr +によって指されているメモリから +.Fa len +バイトを格納しています。 +この呼び出しは、 +呼び出したプロセスがトレースされている場合にのみ効果があります。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Bl -tag -width Er +.It Bq Er EINVAL +指定されたデータの長さ +.Fa len +が +.Dv KTR_USER_MAXLEN +よりも大きいです。 +.It Bq Er ENOMEM +要求を実現するためにはメモリが不足しています。 +.It Bq Er ENOSYS +現在実行中のカーネルが +.Xr ktrace 2 +のサポート +.Pq Cd "options KTRACE" +を外してコンパイルされています。 +.El +.Sh 関連項目 +.Xr kdump 1 , +.Xr ktrace 1 , +.Xr ktrace 2 +.Sh 歴史 +.Fn utrace +システムコールは +.Fx 2.2 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/uuidgen.2 b/documentation/manual-pages/ja/man2/uuidgen.2 new file mode 100644 index 0000000000..89b0571608 --- /dev/null +++ b/documentation/manual-pages/ja/man2/uuidgen.2 @@ -0,0 +1,136 @@ +.\" Copyright (c) 2002 Marcel Moolenaar +.\" 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 ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/uuidgen.2,v 1.7 2003/06/27 13:41:29 yar Exp % +.\" +.\" $FreeBSD$ +.Dd May 26, 2002 +.Dt UUIDGEN 2 +.Os +.Sh 名称 +.Nm uuidgen +.Nd 全世界的に唯一の識別子の生成 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/uuid.h +.Ft int +.Fn uuidgen "struct uuid *store" "int count" +.Sh 解説 +.Fn uuidgen +システムコールは +.Fa count +個の全世界的に唯一の識別子 (UUID) を生成し、それらを +.Fa store +によって指されるバッファへ書込みます。 +この識別子は全世界的に唯一の識別子の異形である DEC version 1 の +文法とセマンティクスに従って生成されます。 +この識別子のより詳細な記述は下記を参照してください。 +利用可能な node フィールドのための IEEE 802 アドレスが無い場合には、 +個々のシステムコールの呼び出し毎に、ランダムなマルチキャストアドレスが +生成されます。 +時間基準の UUID の生成のアルゴリズムに従って、 +新しいランダムクロックシーケンスを強制します。 +それによって、識別子が唯一である可能性が増します。 +.Pp +複数の識別子が生成されなければならない時には、 +.Fn uuidgen +システムコールは、密度の濃い識別子の集合を生成します。 +これの意味するところは、 +集合の中で最小の識別子よりも大きくかつ、 +集合の中で最大の識別子よりも小さくかつ、 +集合の中にまだ存在していないという条件の識別子が存在しないということです。 +.Pp +地球規模に唯一の識別子 (GUID) としても知られる全世界的に唯一の識別子は、 +128 ビットのバイナリ表現を持っています。 +これらのビットの分類と意味は以下の構造体によって記述され、 +そのフィールドの説明が続きます: +.Bd -literal +struct uuid { + uint32_t time_low; + uint16_t time_mid; + uint16_t time_hi_and_version; + uint8_t clock_seq_hi_and_reserved; + uint8_t clock_seq_low; + uint8_t node[_UUID_NODE_LEN]; +}; +.Ed +.Bl -tag -width ".Va clock_seq_hi_and_reserved" +.It Va time_low +60 ビットのタイムスタンプの下位の 32 ビットです。 +このフィールドはネイティブのバイトオーダで格納されます。 +.It Va time_mid +60 ビットのタイムスタンプの上位 28 ビットのうちの下位の 16 ビットです。 +このフィールドはネイティブのバイトオーダで格納されます。 +.It Va time_hi_and_version +60 ビットのタイムスタンプの上位 12 ビットと 4 ビットのバージョン番号の +複合されたものです。 +バージョン番号は 16 ビットのフィールドの上位 4 ビットに格納されます。 +このフィールドはネイティブのバイトオーダで格納されます。 +.It Va clock_seq_hi_and_reserved +14 ビットのシーケンス番号の上位 6 ビットと 2 ビットのバリアント値の +複合されたものです。 +バリアント値の幅はそのバリアントによって決定されることに注意してください。 +.Fn uuidgen +システムコールによって生成される識別子が持つバリアント値は 10b です。 +バリアント値はこのフィールドの上位ビットに格納されます。 +.It Va clock_seq_low +14 ビットのシーケンス番号の下位 8 ビットです。 +.It Va node +そのノードのインタフェースの 1 つの 6 バイトの IEEE 802 (MAC) アドレスです。 +そのようなインタフェースが存在しない場合には、ランダムなマルチキャスト +アドレスが代わりに使用されます。 +.El +.Pp +バイナリ表現はバイトオーダに対して敏感です。 +あらゆるマルチバイトのフィールドは、ローカルまたはネイティブのバイトオーダで +格納されなければならず、また識別子はそのバイトオーダに同意しない +ホストに対して送信されるときに、変換されなければなりません。 +しかしながら、この仕様は具体的な用語で文書化されていません。また、 +その他の点ではこのシステムコールの範囲を超えています。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fn uuidgen +システムコールは失敗することがあります: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa store +によって指されるバッファに、どれか 1 つのまたは全ての識別子を書き込めません。 +.It Bq Er EINVAL +.Fa count +引数が 1 よりも小さい、またはハード上限の 2048 よりも大きいです。 +.El +.Sh 関連項目 +.Xr uuidgen 1 , +.Xr uuid 3 +.Sh 規格 +この識別子は DCE 1.1 RPC の仕様に適合して表現され、生成されます。 +.Fn uuidgen +システムコールそれ自身は仕様の一部ではありません。 +.Sh 歴史 +.Fn uuidgen +システムコールは +.Fx 5.0 +ではじめて登場しました。 diff --git a/documentation/manual-pages/ja/man2/vfork.2 b/documentation/manual-pages/ja/man2/vfork.2 new file mode 100644 index 0000000000..d9c1080041 --- /dev/null +++ b/documentation/manual-pages/ja/man2/vfork.2 @@ -0,0 +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 +を呼び出すか、終了する +.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 +は標準入出力チャネルをフラッシュして閉じるため、 +親プロセスの標準入出力データ構造体を壊してしまいます +.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 +と同義になるので、 +.Fn vfork +のメモリ共有の現実装には依存しないでください。 +.Pp +デッドロックを避けるため、 +.Fn vfork +の途中で子になるプロセスには、 +.Dv SIGTTOU +シグナルや +.Dv SIGTTIN +シグナルが送信されません。 +その代わりに出力、または、 +.Xr ioctl 2 +呼び出しが許可され、入力しようとすると EOF となります。 +.Sh 歴史 +.Fn vfork +システムコールは、 +.Bx 2.9 +で登場しました。 diff --git a/documentation/manual-pages/ja/man2/wait.2 b/documentation/manual-pages/ja/man2/wait.2 new file mode 100644 index 0000000000..001656c449 --- /dev/null +++ b/documentation/manual-pages/ja/man2/wait.2 @@ -0,0 +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 +オプションを設定すると、 +.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 +プロセスが終了していないが、停止していて再開できる場合に真となります。 +このマクロは +wait +呼び出しで +.Dv WUNTRACED +オプションを指定するか、子プロセスがトレースされている +.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/documentation/manual-pages/ja/man2/write.2 b/documentation/manual-pages/ja/man2/write.2 new file mode 100644 index 0000000000..e647448bc4 --- /dev/null +++ b/documentation/manual-pages/ja/man2/write.2 @@ -0,0 +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.2.1 2004/11/13 11:55:41 yar Exp % +.\" +.\" $FreeBSD$ +.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 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 +で登場しました。 |