diff options
author | Kazuo Horikawa <horikawa@FreeBSD.org> | 2001-01-28 15:56:14 +0000 |
---|---|---|
committer | Kazuo Horikawa <horikawa@FreeBSD.org> | 2001-01-28 15:56:14 +0000 |
commit | 8f404f43bbe2c0fb5493642471678bc9dd82a6f0 (patch) | |
tree | a7fb986d79af63448843c93c312b28151acb4601 | |
parent | aad78b54705aaead60daaf6821966ab63aff5ed8 (diff) | |
download | doc-8f404f43bbe2c0fb5493642471678bc9dd82a6f0.tar.gz doc-8f404f43bbe2c0fb5493642471678bc9dd82a6f0.zip |
3.4-RELEASE based section 2 w/o Makefile
Submitted by: jpman Project <man-jp@jp.FreeBSD.org>
Notes
Notes:
svn path=/head/; revision=8737
143 files changed, 21252 insertions, 0 deletions
diff --git a/ja_JP.eucJP/man/man2/_exit.2 b/ja_JP.eucJP/man/man2/_exit.2 new file mode 100644 index 0000000000..452533ed1c --- /dev/null +++ b/ja_JP.eucJP/man/man2/_exit.2 @@ -0,0 +1,119 @@ +.\" 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.8.2.2 1999/09/18 16:18:58 phantom Exp% +.\" +.Dd June 4, 1993 +.Dt EXIT 2 +.Os BSD 4 +.Sh 名称 +.Nm _exit +.Nd 呼び出し元プロセスを終了する +.Sh 書式 +.Fd #include <unistd.h> +.Ft void +.Fn _exit "int status" +.Sh 解説 +.Fn _exit +関数はプロセスを終了させ、以降のような結末をもたらします。: +.Bl -bullet +.It +呼び出し元プロセス内のすべての記述子が閉じられます。 +これには遅延が伴うことがあります。 +たとえば、出力がすべて出されてしまうのを待機することです。 +この状態のプロセスは既に死にかけているので、新たに kill はできません。 +.It +呼び出し元プロセスの親プロセスに、未解決の +.Xr wait 2 +呼び出しがある場合または +.Dv SIGCHLD +信号を捕捉した場合、呼び出し元プロセスの終了が親プロセスに通知され、 +.Xr wait 2 +で定義されたように +.Em 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 +を呼び出します。 +.Xr exit 3 +はバッファをフラッシュし、ストリームを閉じ、 +一時的ファイルをアンリンクしたりします。 +.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/ja_JP.eucJP/man/man2/accept.2 b/ja_JP.eucJP/man/man2/accept.2 new file mode 100644 index 0000000000..65542e6f5b --- /dev/null +++ b/ja_JP.eucJP/man/man2/accept.2 @@ -0,0 +1,190 @@ +.\" 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.6.2.2 1999/08/29 14:48:53 peter Exp% +.\" +.Dd December 11, 1993 +.Dt ACCEPT 2 +.Os BSD 4.2 +.Sh 名称 +.Nm accept +.Nd ソケット上の接続を受け入れる +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn accept "int s" "struct sockaddr *addr" "int *addrlen" +.Sh 解説 +引数 +.Fa s +は +.Xr socket 2 +で作成され、 +.Xr bind 2 +でアドレスにバインドされ、 +.Xr listen 2 +も済ませて接続を待ち受けているソケットです。 +.Fn accept +論法は、待ち行列上の最初の接続要求を取り出し、 +.Fa s +と同じプロパティの新しいソケットを作成し、 +ソケットのための新しいファイル記述子を割り当てます。 +接続要求が待ち行列上に存在せず、 +しかもソケットがノンブロッキングとマークされていない場合、 +.Fn accept +は接続要求があるまで呼び出し側をブロックします。 +ソケットがノンブロッキングとマークされており、 +しかも待ち行列に接続要求が存在しない場合、 +.Fn accept +は後述のようにエラーを返します。 +接続が成立したソケットは、それ以上の接続を受け入れるためには +使用されない可能性があります。 +オリジナルのソケット +.Fa s +は開いたままです。 +.Pp +引数 +.Fa addr +は結果パラメータで、通信レイヤに既知の接続エンティテイのアドレスで埋められます。 +.Fa addr +パラメータの正確な形式は通信が行なわれるドメインで決まります。 +.Fa addrlen +は、「値−結果」パラメータです。 +これは最初は +.Fa addr +が指す空間のサイズを含んでいなければなりません。 +戻り時には、返されるアドレスの実際の長さ (バイト単位) を含むことになります。 +この呼び出しは、コネクションをベースとしたソケットタイプ、 +現在では +.Dv SOCK_STREAM +とともに使用されます。 +.Pp +読取りでソケットを +.Xr select 2 +することによって、 +.Fn accept +するソケットを選ぶことができます。 +.Pp +.Tn ISO +または +.Tn DATAKIT +のような明瞭な確認が必要な特定のプロトコルでは、 +.Fn accept +は単に次の接続要求を待ち行列から除くだけで、 +確認は行わないと考えられます。確認は、新しいファイル記述子についての +通常の読取りまたは書込みによって行うことができ、 +拒絶は新しいソケットを閉じる事によって実現できます。 +.Pp +.Fa msg_iovlen +を 0 に、 +.Fa msg_controllen +を 0 でない値に設定して +.Xr recvmsg 2 +を発行することによって、 +または +.Xr getsockopt 2 +を発行することによって、確認なしにユーザ接続要求データを得ることができます。 +同じように、制御情報だけを指定して +.Xr sendmsg 2 +を発行することによって、または +.Xr setsockopt 2 +を発行する +ことによって、ユーザ接続拒絶情報を提供できます。 +.Sh システムの注意事項 +.Pp +ノンスレッドライブラリで +.Fn accept +は、 +.Va accept +システムコールとして実装されます。 +.Pp +スレッドライブラリでは、 +.Va accept +システムコール +は +.Fn _thread_sys_accept +にアセンブルされ、 +.Fn accept +は、読取りと書込み用に +.Va s +をロックしてから、 +.Fn _thread_sys_accept +を呼び出す関数として実現されます。 +.Fn _thread_sys_accept +への呼び出しがブロックする場合はコンテキストスイッチが +実行されます。戻る前に +.Fn accept +は +.Va s +をアンロックします。 +.Pp +.Sh 戻り値 +呼び出しはエラーがあった場合 \-1 を返します。 +処理が正常に完了した場合、受け付けたソケットの +記述子である負でない整数を返します。 +.Sh エラー +.Fn accept +は次の場合に失敗します: +.Bl -tag -width EWOULDBLOCK +.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 +ソケットがノンブロッキングとマークされており、 +受け付けるべき接続要求が存在しません。 +.El +.Sh 関連項目 +.Xr bind 2 , +.Xr connect 2 , +.Xr getpeername 2 , +.Xr listen 2 , +.Xr select 2 , +.Xr socket 2 +.Sh 歴史 +.Fn accept +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/access.2 b/ja_JP.eucJP/man/man2/access.2 new file mode 100644 index 0000000000..3b82406c15 --- /dev/null +++ b/ja_JP.eucJP/man/man2/access.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. +.\" +.\" @(#)access.2 8.2 (Berkeley) 4/1/94 +.\" %FreeBSD: src/lib/libc/sys/access.2,v 1.6.2.1 1999/08/29 14:48:53 peter Exp % +.\" +.Dd April 1, 1994 +.Dt ACCESS 2 +.Os BSD 4 +.Sh 名称 +.Nm access +.Nd ファイルまたはパス名のアクセス許可をチェックする +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn access "const char *path" "int mode" +.Sh 解説 +.Fn access +関数は、 +.Fa mode +によって示されたアクセス許可について +.Fa path +で指定されるファイルのアクセス可能性をチェックします。 +.Fa mode +の値は、チェックされるアクセス許可 (読取り許可については +.Dv R_OK +、書込み許可については +.Dv W_OK +、実行/検索許可については +.Dv X_OK ) +のビット単位の OR、または存在試験 +.Dv F_OK +です。 +パス名 +.Fa path +のすべての構成要素がアクセス許可についてチェックされます +.Pf ( Dv F_OK +も含まれます)。 +.Pp +実ユーザ ID は実効ユーザ ID の代わりに使用され、 +実グループアクセスリスト (実グループ ID を含む) +がパーミッションを検証するために実効 ID の代わりに使用されます。 +.Pp +プロセスに適切な特権があり、 +.Dv X_OK +について成功を示していても、実際にはファイルの実行許可ビットが +設定されていないことがあります。同じことが、 +.Dv R_OK +および +.Dv W_OK +にも該当します。 +.Sh 戻り値 +.Fa path +が見つからない場合、または希望のアクセスモードが認証されない場合、 +値 -1 が返されます。そうでない場合は、値 0 が返されます。 +.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 +ファイルモードの許可ビットが要求されたアクセスを許容しないか、 +またはパスの先頭構成要素について検索許可が拒絶されています。 +ファイルの所有者は``所有者(owner)''読取り、書込み、 +および実行のモードビットについてパーミッションがチェックされます。 +所有者以外のファイルのグループのメンバは``グループ(group)''モードビットに +ついてパーミッションがチェックされており、 +他のすべてのものは``その他(other)''モードビットについて +パーミッションをチェックされています。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr chmod 2 , +.Xr stat 2 +.Sh 規格 +.Fn access +関数は +.St -p1003.1-90 +に準拠しています。 +.Sh 警告 +.Fn access +は、セキュリティホールになる可能性があり、決して使用しないようにしてください。 +.Sh 歴史 +.Fn access +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/acct.2 b/ja_JP.eucJP/man/man2/acct.2 new file mode 100644 index 0000000000..31411ea956 --- /dev/null +++ b/ja_JP.eucJP/man/man2/acct.2 @@ -0,0 +1,111 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt ACCT 2 +.Os BSD 4 +.Sh 名称 +.Nm acct +.Nd プロセスアカウンティングを有効または無効にする +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn acct "const char *file" +.Sh 解説 +.Fn acct +呼び出しは、システムアカウンティングレコードの収集を有効または無効にします。 +引数 +.Fa file +が nil ポインタである場合、アカウンティングは無効にされます。 +.Fa file +が +.Em 既存 +のパス名 (null で終了) の場合、レコード収集が有効になり、 +通常の状況では終了する開始された各プロセスについてアカウンティングレコードが +.Fa file +に追加されます。 +終了の異常状況は再起動またはその他の致命的なシステムの問題です。 +決して終了しないプロセス用のレコードは +.Fn acct +によっては作成できません。 +.Pp +.Fn acct +が使用するレコード構造体の詳細については、 +.Pa /usr/include/sys/acct.h +および +.Xr acct 5 +を参照してください。 +.Pp +この呼び出しはスーパユーザにだけ許可されてます。 +.Sh 注 +アカウンティングファイルが常駐しているファイルシステムが空間不足になると、 +アカウンティングは自動的に無効になります。 +スペースが再び利用できるようになると有効になります。 +.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 sa 8 +.Sh 歴史 +.Fn acct +関数は +.At v7 +で登場しました。 + diff --git a/ja_JP.eucJP/man/man2/adjtime.2 b/ja_JP.eucJP/man/man2/adjtime.2 new file mode 100644 index 0000000000..cca0ee9f5e --- /dev/null +++ b/ja_JP.eucJP/man/man2/adjtime.2 @@ -0,0 +1,105 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt ADJTIME 2 +.Os BSD 4.3 +.Sh 名称 +.Nm adjtime +.Nd "システムクロックとの同期化ができるように時刻を訂正する" +.Sh 書式 +.Fd #include <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 戻り値 +戻り値 0 は呼び出しが成功したことを示します。 +戻り値 -1 はエラーが発生したことを示します。 +この場合、エラーコードはグローバル変数 +.Va errno +に保存されます。 +.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/ja_JP.eucJP/man/man2/aio_cancel.2 b/ja_JP.eucJP/man/man2/aio_cancel.2 new file mode 100644 index 0000000000..ee4de35425 --- /dev/null +++ b/ja_JP.eucJP/man/man2/aio_cancel.2 @@ -0,0 +1,75 @@ +.\" 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.4.2.2 1999/08/29 14:48:54 peter Exp % +.\" +.Dd June 2, 1999 +.Dt AIO_CANCEL 2 +.Os +.Sh 名称 +.Nm aio_cancel +.Nd 未解決の非同期入出力操作をキャンセルする (REALTIME) +.Sh 書式 +.Fd #include <aio.h> +.Ft int +.Fn aio_cancel "int something" "struct aiocb * iocb" +.Sh 解説 +.Fn aio_cancel +関数は、指定の未解決の非同期入出力要求をキャンセルすると想定されます。 +.Fn aio_cancel +は今回は実現されず、必ず処理失敗して +.Dv ENOSYS +を返しています。 +.Sh 戻り値 +.Fn aio_cancel +は、処理失敗しなければならない場合、 +.Dv ENOSYS +を返して、これがサポートされていないことを示します。 +.Sh 関連項目 +.Xr aio_error 2 , +.Xr aio_read 2 , +.Xr aio_return 2 , +.Xr aio_suspend 2 , +.Xr aio_write 2 . +.Sh エラー +.Fn aio_cancel +関数は次の理由で現時点では必ず処理失敗します。 +.Bl -tag -width Er +.It Bq Er ENOSYS +この操作は今回は実現されていません。 +.El +.Sh 規格 +.Nm +は、 +.St -p1003.2 +標準に準拠していません。 +.Sh 歴史 +.Nm +関数は +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルは +.An Wes Peters Aq wes@softweyr.com +が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_error.2 b/ja_JP.eucJP/man/man2/aio_error.2 new file mode 100644 index 0000000000..173621c331 --- /dev/null +++ b/ja_JP.eucJP/man/man2/aio_error.2 @@ -0,0 +1,91 @@ +.\" 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.4.2.2 1999/08/29 14:48:54 peter Exp % +.\" +.Dd June 2, 1999 +.Dt AIO_ERROR 2 +.Os +.Sh 名称 +.Nm aio_error +.Nd 非同期入出力操作のエラーステータスを取り出す (REALTIME) +.Sh 書式 +.Fd #include <aio.h> +.Ft int +.Fn aio_error "struct aiocb *iocb" +.Sh 解説 +.Fn aio_error +関数は、 +.Ar iocb +の指す構造体に対応する非同期入出力要求のエラー状態を返します。 +.Sh 戻り値 +非同期入出力要求が成功した上で正常に完了している場合に +.Fn aio_error +は 0 を返します。 +要求がまだ完了していない場合は +.Dv 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 +.Ar iocb +が未解決の非同期 I/O 要求を参照していません。 +.El +.Sh 関連項目 +.Xr aio_cancel 2 , +.Xr aio_read 2 , +.Xr aio_return 2 , +.Xr aio_suspend 2 , +.Xr aio_write 2 , +.Xr fsync 2 , +.Xr read 2 , +.Xr write 2 +.Sh 規格 +.Fn aio_error +関数は +.St -p1003.2 +に準拠しています。 +.Sh 歴史 +.Nm +関数は +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルページは +.An Wes Peters Aq wes@softweyr.com +が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_read.2 b/ja_JP.eucJP/man/man2/aio_read.2 new file mode 100644 index 0000000000..e4948bd2dc --- /dev/null +++ b/ja_JP.eucJP/man/man2/aio_read.2 @@ -0,0 +1,204 @@ +.\" 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.1.2.4 1999/08/29 14:48:55 peter Exp % +.\" +.Dd November 17, 1998 +.Dt AIO_READ 2 +.Os +.Sh 名称 +.Nm aio_read +.Nd ファイルからの非同期読取り (REALTIME) +.Sh 書式 +.Fd #include <aio.h> +.Ft int +.Fn aio_read "struct aiocb *iocb" +.Sh 解説 +.Fn aio_read +関数は、呼び出しプロセスに +記述子 +.Ar iocb->aio_fildes +のオフセット +.Ar iocb->aio_offset +で始まる +.Ar iocb->aio_nbytes +を、 +.Ar iocb->aio_buf +が指すバッファに +読み取れるようにします。 +呼び出しは、読取り要求が記述子に待ち行列として入れられ +るとただちに戻ります。 +呼び出しが戻った時点で読取りは完了していることもありますし、 +完了していないこともあります。 +.Pp +_POSIX_PRIORITIZED_IO が定義されており、 +しかも記述子がこれをサポートしている場合に +待ち行列に入れられている操作は、呼び出しプロセスの優先順位から +.Ar iocb->aio_reqprio +を除算したものに等しい優先順位でサブミットされます。 +.Pp +.Ar iocb->aio_lio_opcode +は +.Fn aio_read +呼び出しによって無視されます。 +.Pp +.Ar iocb +ポインタは、進行中に待ち行列に入れられた戻りステータスまたは +エラーステータスを判定するために、 +.Fn aio_return +と +.Fn aio_error +の引数として後に使用される可能性があります。 +.Pp +要求が待ち行列に入れられない場合 (一般には無効な引数のために)、 +呼び出しは要求を待ち行列に入れずに戻ります。 +.Pp +要求が正常に待ち行列に入れられると、コンテキストとして要求の間に +.Ar iocb->aio_offset +の値が修正される可能性があるので、 +この値は要求が待ち行列に入れられた後は参照してはなりません。 +.Sh 制限 +.Ar iocb +が指す非同期入出力制御ブロック構造体、およびその構造体の +.Ar iocb->aio_buf +メンバが参照するバッファは、操作が完了するまで有効である必要があります。 +このため、これらのオブジェクトについての自動 (スタック) 変数の +使用は推奨されません。 +.Pp +カーネルへの無効なコンテキスト情報の引き渡しを回避するために、 +非同期入出力制御バッファ +.Ar iocb +は +.Fn aio_read +呼び出しの前にゼロにする必要があります。 +.Pp +要求が待ち行列に入れられた後、要求が完了するまでは +非同期入出力制御ブロック構造体またはバッファ内容の修正は許されていません。 +.Pp +.Ar iocb->aio_offset +内のファイルオフセットが、 +.Ar iocb->aio_fildes +の最大オフセットを越えている場合は入出力は行われません。 +.Sh 戻り値 +.\".Rv -std aio_read +.Fn aio_read +関数は、成功すると値 0 を返します。それ以外の場合は値 -1 が +返され、エラーを示すグローバル変数 +.Fa errno +が設定されます。 +.Sh 規格 +.Fn aio_read +呼び出しは +.St -p1003.2 +標準に準拠しています。 +.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 を返し、 +.Ar errno +を適切に設定します。 +そうでない場合は、 +.Fn aio_return +関数を呼び出し、-1 を返し、 +.Ar errno +に返されている実際の値を判定するために +.Fn aio_error +を呼び出す必要があります。 +.Pp +.Bl -tag -width Er +.It Bq Er EBADF +.Ar iocb->aio_fildes +が無効です。 +.It Bq Er EINVAL +オフセット +.Ar iocb->aio_offset +が有効でないか、 +.Ar iocb->aio_reqprio +によって指定される優先順位が +有効な優先順位でないか、または +.Ar iocb->aio_nbytes +によって指定されるバイト数が有効でありません。 +.It Bq Er EOVERFLOW +ファイルは正規のファイルであり、 +.Ar iocb->aio_nbytes +はゼロより大きくて +.Ar iocb->aio_offset +内の開始オフセットはファイルの末尾の前にあるものの、 +.Ar 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 +.Ar iocb->aio_fildes +が読取りについては無効です。 +.It Bq Er ECANCELED +要求は +.Fn aio_cancel +への呼び出しによって明示的にキャンセルされました。 +.It Bq Er EINVAL +オフセット +.Ar iocb->aio_offset +は無効です。 +.El +.Sh 歴史 +.Nm +は +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルページは +.An Terry Lambert Aq terry@whistle.com +が作成しました。 +.Sh バグ +.Ar iocb->aio_offset +の値は無視されます。 +.Ar iocb->_aiocb_private +内の無効な情報はカーネルを混乱させる可能性があります。 diff --git a/ja_JP.eucJP/man/man2/aio_return.2 b/ja_JP.eucJP/man/man2/aio_return.2 new file mode 100644 index 0000000000..070ae841af --- /dev/null +++ b/ja_JP.eucJP/man/man2/aio_return.2 @@ -0,0 +1,93 @@ +.\" Copyright (c) 1999 Softweyr LLC. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY Softweyr LLC AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL Softweyr LLC OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/aio_return.2,v 1.4.2.2 1999/08/29 14:48:55 peter Exp % +.\" +.Dd June 2, 1999 +.Dt AIO_RETURN 2 +.Os +.Sh 名称 +.Nm aio_return +.Nd 非同期入出力操作の戻りステータスを取り出す (REALTIME) +.Sh 書式 +.Fd #include <aio.h> +.Ft int +.Fn aio_return "struct aiocb *iocb" +.Sh 解説 +.Fn aio_return +関数は +.Ar iocb +が指す構造体に対応する非同期入出力要求の最終ステータスを返します。 +.Pp +.Xr aio_error 2 +が +.Dv EINPROGRESS +以外の何かを返した時の非同期入出力操作の最終ステータスを得るためには +.Fn aio_return +を 1 回だけしか呼び出してはいけません。 +.Sh 戻り値 +非同期入出力要求が完了すると +.Xr read 2 , +.Xr write 2 , +または +.Xr fsync 2 +で説明したようなステータスが +返されます。処理を失敗した場合に +.Fn aio_return +は +.Dv -1 +を返し、エラー状態を指すように +.Dv errno +を設定します。 +.Sh 関連項目 +.Xr aio_cancel 2 , +.Xr aio_error 2 , +.Xr aio_read 2 , +.Xr aio_suspend 2 , +.Xr aio_write 2 , +.Xr fsync 2 , +.Xr read 2 , +.Xr write 2 . +.Sh エラー +.Fn aio_return +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Ar iocb +が未解決の非同期入出力要求を参照しません。 +.El +.Sh 規格 +.Fn aio_return +は +.St -p1003.2 +に準拠しています。 +.Sh 歴史 +.Nm +関数は +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルページは +.An Wes Peters Aq wes@softweyr.com +が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_suspend.2 b/ja_JP.eucJP/man/man2/aio_suspend.2 new file mode 100644 index 0000000000..b7f41653fb --- /dev/null +++ b/ja_JP.eucJP/man/man2/aio_suspend.2 @@ -0,0 +1,88 @@ +.\" 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.4.2.2 1999/08/29 14:48:56 peter Exp % +.\" +.Dd June 2, 1999 +.Dt AIO_SUSPEND 2 +.Os +.Sh 名称 +.Nm aio_suspend +.Nd 非同期入出力操作完了、またはタイムアウト経過まで延期する (REALTIME) +.Sh 書式 +.Fd #include <aio.h> +.Ft int +.Fn aio_suspend "const struct aiocb * const iocbs[]" "int niocb" "const struct timespec * timeout" +.Sh 解説 +指定の非同期入出力要求が完了するか、 +.Ar timeout +が経過するまで +.Fn aio_suspend +関数は呼び出しプロセスを延期します。 +.Ar iocbs +は、非同期入出力要求への +.Ar niocb +ポインタの配列です。 +NULL が入っている配列メンバはそのまま無視されます。 +.Sh 戻り値 +指定されたすべての非同期入出力要求が完了すると +.Fn aio_suspend +は 0 を返します。 +.Ar timeout +が時間切れになると +.Dv EAGAIN +が返されます。他の戻り値は後述するようにエラー状態を示します。 +.Sh 関連項目 +.Xr aio_cancel 2 , +.Xr aio_error 2 , +.Xr aio_read 2 , +.Xr aio_suspend 2 , +.Xr aio_write 2 . +.Sh エラー +.Fn aio_suspend +関数は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Ar iocbs +には +.Dv AIO_LISTIO_MAX +を越える非同期入出力要求が入っているか、または少なくとも 1 つの要求が +有効ではありません。 +.It Bq Er EINTR +延期はシグナルによって割り込みされました。 +.El +.Sh 規格 +.Fn aio_suspend +は +.St -p1003.2 +標準に準拠しています。 +.Sh 歴史 +.Nm +関数は +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルページは +.An Wes Peters Aq wes@softweyr.com +が作成しました。 diff --git a/ja_JP.eucJP/man/man2/aio_write.2 b/ja_JP.eucJP/man/man2/aio_write.2 new file mode 100644 index 0000000000..ea1f65bbcb --- /dev/null +++ b/ja_JP.eucJP/man/man2/aio_write.2 @@ -0,0 +1,196 @@ +.\" 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.3.2.2 1999/08/29 14:48:57 peter Exp % +.\" +.Dd June 2, 1999 +.Dt AIO_WRITE 2 +.Os +.Sh 名称 +.Nm aio_write +.Nd ファイルへの非同期書込み (REALTIME) +.Sh 書式 +.Fd #include <aio.h> +.Ft int +.Fn aio_write "struct aiocb *iocb" +.Sh 解説 +.Fn aio_write +関数によって、呼び出し元プロセスは +.Ar iocb->aio_buf +が指すバッファから記述子 +.Ar iocb->aio_fildes +に +.Ar iocb->aio_nbytes +を書き込めます。書込み要求が記述子への待ち行列に入れられてしまうと +ただちに呼び出しは戻ります。 +呼び出しが戻った時点で書込みは完了している可能性も完了していない +可能性もあります。無効な引数のためなどにより +要求を待ち行列に入れられない場合は、 +呼び出しは要求を待ち行列入れずに戻ります。 +.Pp +.Ar iocb->aio_fildes +用に +.Dv O_APPEND +が設定されている場合、 +.Fn aio_write +操作は呼び出しが行なわれたのと同じ順序で +ファイルの末尾に追加されます。 +.Dv O_APPEND +がファイル記述子用に設定されていない場合、書込み操作はファイルの先頭に +.Ar iocb->aio_offset +を加えた絶対位置で行われます。 +.Pp +.Dv _POSIX_PRIORITIZED_IO +が定義されており、かつ記述子がそれをサポートしている場合、 +待ち行列に入れられた操作は呼び出しプロセスの優先順位から +.Ar iocb->aio_reqprio +を減算したのに等しい優先順位にされます。 +.Pp +.Ar iocb +ポインタは待ち行列に入れられた操作の戻り値、またはエラー状態を +判定するために、 +.Fn aio_return +および +.Fn aio_error +への引数として使用できます。 +.Pp +要求が正常に待ち行列に入れられると、コンテキストとして要求の間に +.Ar iocb->aio_offset +の値が修正できるので、 +この値は要求が待ち行列に入れられた後に参照されてはなりません。 +.Sh 制限 +.Ar iocb +が指す非同期入出力制御ブロック構造体、およびその構造体の +.Ar iocb->aio_buf +メンバが参照するバッファは、 +操作が完了するまで有効なままでいる必要があります。 +このため、これらのオブジェクトについて自動 (スタック) 変数 +の使用は推奨されません。 +.Pp +正しくないコンテキスト情報がカーネルに引き渡されるのを回避するために、 +非同期入出力制御バッファ +.Ar iocb +は、 +.Fn aio_read +呼び出しの前にゼロにする必要があります。 +.Pp +要求が待ち行列に入れられた後、要求が完了するまでは +非同期入出力制御ブロック構造体、またはバッファ内容 +を修正することは許されません。 +.Pp +.Ar iocb->aio_offset +内のファイルオフセットが +.Ar iocb->aio_fildes +用のオフセット最大を越える場合は入出力は行われません。 +.Sh 戻り値 +.\".Rv -std aio_write +.Fn aio_write +関数は成功すると値 0 を返します。それ以外の場合は値 -1 が +返され、エラーを示すグローバル変数 +.Fa errno +が設定されます。 +.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 を返し +.Ar errno +を適切に設定します。 +そうでない場合は +.Fn aio_return +関数が戻り値 -1 で呼び出される必要があり、 +.Ar errno +で返されている実際の値を判定するために +.Fn aio_error +が呼び出される必要があります。 +.Pp +.Bl -tag -width Er +.It Bq Er EBADF +.Ar iocb->aio_fildes +が無効であるか、書込みには開かれていません。 +.It Bq Er EINVAL +オフセット +.Ar iocb->aio_offset +が有効でない、 +.Ar iocb->aio_reqprio +によって指定される優先順位が +有効な優先順位でない、または +.Ar 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 +.Ar iocb->aio_fildes +は書込みについては無効です。 +.It Bq Er ECANCELED +要求は +.Fn aio_cancel +への呼び出しによって明示的にキャンセルされました。 +.It Bq Er EINVAL +オフセット +.Ar iocb->aio_offset +は無効です。 +.El +.Sh 規格 +.Fn aio_write +は +.St -p1003.2 +標準に準拠しています。 +.Sh 歴史 +.Nm +関数は +.Fx 3.0 +ではじめて登場しました。 +.Sh 作者 +このマニュアルページは +.An Wes Peters Aq wes@softweyr.com +が作成しました。 +.Sh バグ +非同期入出力操作はこのバージョンではキャンセルできません。 +.Ar iocb->_aiocb_private +内の誤った情報はカーネルを混乱させる可能性があります。 diff --git a/ja_JP.eucJP/man/man2/bind.2 b/ja_JP.eucJP/man/man2/bind.2 new file mode 100644 index 0000000000..e30702765c --- /dev/null +++ b/ja_JP.eucJP/man/man2/bind.2 @@ -0,0 +1,145 @@ +.\" 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 +.\" %Id: bind.2,v 1.7 1999/06/10 22:48:27 markm Exp % +.\" +.Dd June 4, 1993 +.Dt BIND 2 +.Os BSD 4.2 +.Sh 名称 +.Nm bind +.Nd ローカルプロトコルアドレスをソケットに割り当てる +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn bind "int s" "const struct sockaddr *addr" "int addrlen" +.Sh 解説 +.Fn bind +は、ローカルプロトコルアドレスをソケットに割り当てます。ソケットは、 +.Xr socket 2 +で作成される時にアドレスファミリ空間に存在しますが、 +プロトコルアドレスは割り当てられていません。 +.Fn bind +は +.Fa addr +がソケットに割り当てられていることを必要とします。 +.Sh 注 +UNIX ドメイン内でのアドレスのバインドによってファイルシステム内に +ソケットが作成されます。 +これは、必要なくなったときに呼び出し側が +.Pf ( Xr unlink 2 +を使用して) 削除する必要があります。 +.Pp +アドレスのバインドで使用される規則は通信ドメイン間で異なります。 +詳細については、 +セクション 4 のマニュアルエントリを参照してください。 +.Sh システムの注意事項 +.Pp +ノンスレッドライブラリでは、 +.Fn bind +は +.Va bind +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va bind +システムコールは +.Fn _thread_sys_bind +にアセンブルされ、 +.Fn bind +は読取りと書込み用に +.Va s +をロックしてから、 +.Fn _thread_sys_bind +を呼び出す +関数として実装されています。戻る前に、 +.Fn bind +は +.Va s +をアンロックします。 +.Sh 戻り値 +バインドは成功すると値 0 を返します。戻り値 -1 はエラーを示し、 +このエラーはグローバル +.Va errno +で指定されています。 +.Sh エラー +.Fn bind +呼び出しは次の場合に失敗します。 +.Bl -tag -width EADDRNOTAVA +.It Bq Er EBADF +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +.Fa s +がソケットではありません。 +.It Bq Er EADDRNOTAVAIL +指定のアドレスがローカルマシンから利用できません。 +.It Bq Er EADDRINUSE +指定のアドレスは既に使用中です。 +.It Bq Er EACCES +要求されたアドレスは保護されており、現在のユーザが持っているパーミッションは +それにアクセスするのには不適切です。 +.It Bq Er EFAULT +.Fa addr +パラメータが有効なユーザアドレス空間ではありません。 +.El +.Pp +次のエラーは UNIX ドメイン内のバインドアドレスに固有のものです。 +.Bl -tag -width EADDRNOTAVA +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +パス名の接頭辞構成要素が存在しません。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EIO +ディレクトリエントリを作成している間、または iノードを割り振りしている間に +入出力エラーが発生しました。 +.It Bq Er EROFS +名前が読取り専用ファイルシステムに常駐します。 +.It Bq Er EISDIR +空のパス名が指定されました。 +.El +.Sh 関連項目 +.Xr connect 2 , +.Xr getsockname 2 , +.Xr listen 2 , +.Xr socket 2 +.Sh 歴史 +.Fn bind +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/brk.2 b/ja_JP.eucJP/man/man2/brk.2 new file mode 100644 index 0000000000..f2f44c0cb9 --- /dev/null +++ b/ja_JP.eucJP/man/man2/brk.2 @@ -0,0 +1,127 @@ +.\" 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 +.\" +.Dd May 1, 1995 +.Dt BRK 2 +.Os BSD 4 +.Sh 名称 +.Nm brk , +.Nm sbrk +.Nd データセグメントのサイズを変更する +.Sh 書式 +.Fd #include <unistd.h> +.Ft char * +.Fn brk "const char *addr" +.Ft char * +.Fn sbrk "int incr" +.Sh 解説 +.Bf -symbolic +brk 関数と sbrk 関数は、仮想メモリ管理の到来の前の初期の日々から残された +歴史的に興味あるものです。 +.Ef +.Fn brk +関数は、プロセスのデータセグメント (初期化されていないデータ) のブレーク +または最下位アドレスを +.Fa addr +(bss の真上) に設定します。データアドレス指定は、 +.Fa addr +とスタックセグメントへの最も低いスタックポインタの間に制約されます。 +メモリはページサイズ単位で +.Fa brk +によって割当てされます。 +.Fa addr +は、システムページサイズ上に均等に分割されない場合には +次のページ境界まで増加させます。 +.Pp +プログラムブレークの現在の値は、 +.Dq Li sbrk(0) +によって信頼性をもって返されます +.Pf ( Xr end 3 +も参照)。 +.Xr getrlimit 2 +システムコールは、 +.Em data +セグメントの許容できる最大のサイズを決定するのに利用できます。 +.Xr getrlimit 2 +の呼び出しから返された +.Em rlim_max +値を越えるブレークを設定することはできません。たとえば、 +.Dq etext + rlp\(->rlim_max +です +.Pf ( Em etext +の定義については +.Xr end 3 +を参照してください)。 +.Sh 戻り値 +.Fn brk +は、正常に完了すると 0 を返します。それ以外の場合は値 -1 を返し、 +割当てが処理失敗した理由を示す +.Va errno +が設定されます。 +.Fn sbrk +関数は、正常に完了すると新しい記憶域のベースを指すポインタを +返します。それ以外の場合は値 -1 を返し、割当てが処理失敗した理由を示す +.Va errno +が設定されます。 +.Sh エラー +.Fn brk +または +.Fn sbrk +は、以降のうちの 1 つが真の場合に処理に失敗し、新しくメモリを +割当てられません。 +.Bl -tag -width [ENOMEM] +.It Bq Er ENOMEM +.Xr setrlimit 2 +が設定した限界を越えました。 +.It Bq Er ENOMEM +データセグメントの可能な最大サイズ (システム内部にコンパイルされます) +を越えました。 +.It Bq Er ENOMEM +展開をサポートするスワップ領域内に不充分な空間が存在しました。 +.El +.Sh 関連項目 +.Xr execve 2 , +.Xr getrlimit 2 , +.Xr end 3 , +.Xr malloc 3 +.Sh バグ +ブレークの設定は、スワップ空間の一次的な不足のために処理が失敗する +可能性があります。これは +.Xr getrlimit 2 +を使用せずには、データセグメントの最大サイズを越えることで起こされた +障害と区別することはできません。 +.Sh 歴史 +.Fn brk +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/chdir.2 b/ja_JP.eucJP/man/man2/chdir.2 new file mode 100644 index 0000000000..1067027c41 --- /dev/null +++ b/ja_JP.eucJP/man/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.6.2.1 1999/08/29 14:48:57 peter Exp % +.\" +.Dd December 11, 1993 +.Dt CHDIR 2 +.Os BSD 4 +.Sh 名称 +.Nm chdir , +.Nm fchdir +.Nd 現在の作業ディレクトリを変更する +.Sh 書式 +.Fd #include <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 戻り値 +処理が正常に完了すると値 0 が返されます。 +それ以外の場合は、値 -1 が返されてエラーを示す +.Va errno +が設定されます。 +.Sh エラー +次の 1 つまたは複数が真の場合、 +.Fn chdir +は処理を失敗し、現在の作業ディレクトリは変更されません。 +.Bl -tag -width Er +.It Bq Er ENOTDIR +パス接頭辞の構成要素がディレクトリでありません。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定のディレクトリが存在しません。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EACCES +パス名の構成要素について検索パーミッションが拒否されました。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Pp +以降の 1 つまたは複数が真の場合、 +.Fn fchdir +は処理を失敗し、現在の作業ディレクトリは変更されません。 +.Bl -tag -width Er +.It Bq Er EACCES +ファイル記述子が参照するディレクトリについて検索パーミッションが拒絶されました。 +.It Bq Er ENOTDIR +ファイル記述子がディレクトリを参照していません。 +.It Bq Er EBADF +引数 +.Fa fd +が有効なファイル記述子ではありません。 +.El +.Sh 関連項目 +.Xr chroot 2 +.Sh 規格 +.Fn chdir +関数は +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn chdir +関数は +.At v7 +で登場しました。 +.Fn fchdir +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/chflags.2 b/ja_JP.eucJP/man/man2/chflags.2 new file mode 100644 index 0000000000..99ce5e525d --- /dev/null +++ b/ja_JP.eucJP/man/man2/chflags.2 @@ -0,0 +1,159 @@ +.\" 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.7.2.2 1999/09/18 16:18:58 phantom Exp % +.\" +.Dd May 2, 1995 +.Dt CHFLAGS 2 +.Os +.Sh 名称 +.Nm chflags , +.Nm fchflags +.Nd ファイルフラグを設定する +.Sh 書式 +.Fd #include <sys/stat.h> +.Fd #include <unistd.h> +.Ft int +.Fn chflags "const char *path" "u_long flags" +.Ft int +.Fn fchflags "int fd" "u_long flags" +.Sh 解説 +名前が +.Fa path +によって指定されるファイル、または記述子 +.Fa fd +によって参照されるファイルのフラグが +.Fa flags +に変更されます。 +.Pp +指定されたフラグは次の値の論理和 (or) を取ることで作成されます。 +.Pp +.Bl -tag -width "SF_IMMUTABLE" -compact -offset indent +.It UF_NODUMP +そのファイルはダンプしません。 +.It UF_IMMUTABLE +そのファイルは変更禁止です。 +.It UF_APPEND +そのファイルの末尾に追加だけが可能です。 +.It UF_NOUNLINK +そのファイルは名前を変更したり削除できません。 +.It UF_OPAQUE +ユニオンファイルシステムのスタックを通じて見るとき、 +このディレクトリは不透明です。 +.It SF_IMMUTABLE +そのファイルは変更禁止です。 +.It SF_APPEND +そのファイルの末尾に追加だけが可能です。 +.It SF_NOUNLINK +そのファイルは名前を変更したり削除できません。 +.El +.Pp +.Dq UF_IMMUTABLE , +.Dq UF_APPEND , +.Dq UF_NOUNLINK +フラグは、ファイルの所有者またはスーパユーザのどちらかによって +設定または設定解除できます。 +.Dq SF_IMMUTABLE , +.Dq SF_APPEND , +.Dq SF_NOUNLINK +フラグは、スーパユーザだけが設定または設定解除できます。 +スーパユーザのみのフラグをスーパユーザでないものが設定しようとしても +警告なしで無視されます。これらのフラグはいつでも設定できますが、 +通常は、システムがシングルユーザモードにあるときにだけ +設定解除するのが普通です (詳細については +.Xr init 8 +を参照してください)。 +.Pp +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。 +そうでない場合は値 -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn chflags +は以下の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定されたファイルが存在しません。 +.It Bq Er EACCES +検索パーミッションが前置パス名の構成要素について拒絶されました。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EPERM +実効ユーザ ID がファイルの所有者と一致せず、かつ、実効ユーザ ID が +スーパユーザでありません。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.It Bq Er EOPNOTSUPP +下側のファイルシステムがファイルフラグをサポートしません。 +.El +.Pp +.Fn fchflags +は以下の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er EBADF +記述子が有効ではありません。 +.Pp +.It Bq Er EINVAL +.Fa fd +がファイルではなくソケットを参照しています。 +.It Bq Er EPERM +実効ユーザ ID がファイルの所有者と一致せず、 +実効ユーザ ID がスーパユーザではありません。 +.It Bq Er EROFS +ファイルが読み取り専用システム上に存在しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr chflags 1 , +.Xr init 8 , +.Xr mount_union 8 +.Pp +.Sh 歴史 +.Nm chflags +関数と +.Nm fchflags +関数は +.Bx 4.4 +ではじめて登場しました。 +.\" Amended by N.Kumagai, 2000-3-18 diff --git a/ja_JP.eucJP/man/man2/chmod.2 b/ja_JP.eucJP/man/man2/chmod.2 new file mode 100644 index 0000000000..117ca23598 --- /dev/null +++ b/ja_JP.eucJP/man/man2/chmod.2 @@ -0,0 +1,224 @@ +.\" 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.12.2.3 1999/08/29 14:48:58 peter Exp % +.\" +.Dd June 4, 1993 +.Dt CHMOD 2 +.Os BSD 4 +.Sh 名称 +.Nm chmod , +.Nm fchmod , +.Nm lchmod +.Nd ファイルのモードを変更する +.Sh 書式 +.Fd #include <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 +.Fa lchmod +関数は +.Fn chmod +に類似していますが、シンボリックリンクをたどりません。 +.Pp +モードは +.Aq Pa sys/stat.h +で定義された許可ビットマスクの論理和 +.Pf ( Em or ) +から作成されます: +.Pp +.Bd -literal -offset indent -compact +#define S_IRWXU 0000700 /* 所有者用の RWX マスク */ +#define S_IRUSR 0000400 /* 所有者用の R */ +#define S_IWUSR 0000200 /* 所有者用の W */ +#define S_IXUSR 0000100 /* 所有者用の X */ + +#define S_IRWXG 0000070 /* グループ用の RWX マスク */ +#define S_IRGRP 0000040 /* グループ用の R */ +#define S_IWGRP 0000020 /* グループ用の W */ +#define S_IXGRP 0000010 /* グループ用の X */ + +#define S_IRWXO 0000007 /* その他用の RWX マスク */ +#define S_IROTH 0000004 /* その他用の R */ +#define S_IWOTH 0000002 /* その他用の W */ +#define S_IXOTH 0000001 /* その他用の X */ + +#define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ +#define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ +#define S_ISVTX 0001000 /* スティッキービット */ +#ifndef _POSIX_SOURCE +#define S_ISTXT 0001000 +#endif +.Ed +.Pp +.Tn FreeBSD +VM システムは、実行可能モジュールについてスティッキービット +.Pf ( Dv ISVTX ) +を完全に無視します。 +UFS をベースとしたファイルシステム (FFS, MFS, LFS) では、 +スティッキービットはディレクトリにだけ設定できます。 +.Pp +.Dv ISVTX +(`スティッキービット') が設定されているディレクトリでは、 +特権のないユーザはそのディレクトリの他のユーザのファイルを削除することも +名前を変更することもできません。 +スティッキービットは、ユーザが所有するか、 +または該当する許可のあるディレクトリについて +どのユーザでも設定できます。 +スティッキービットのプロパティの詳細については、 +.Xr sticky 8 +を参照してください。 +.Pp +あるディレクトリに ISUID (UID 設定) が設定されており、 +しかもファイルシステムをマウントする際に MNT_SUIDDIR オプションが +指定された場合、 +このディレクトリ内に作成される新しいファイルとサブディレクトリの所有者は、 +そのディレクトリの所有者と同じに設定されます。 +この機能が有効な場合、新しいディレクトリは親からそのビットを継承します。 +実行ビットはファイルから除去されます。 +ルートは所有者を継承する機能を利用できません。 +この動作は、ファイルへの書込みがユーザに許可される条件を変更しません。 +ファイルが作成された後の最終的な所有者の決定に影響するのみです。 +グループ継承には影響ありません。 +.Pp +この機能は、ftp、SAMBA または netatalk 経由で PC ユーザへの +ファイルサービスで使用されるよう設計されています。 +これはシェルユーザにセキュリティホールを提供するので、 +シェルマシン上で使用してはなりません。 +特に、ホームディレクトリでは使用してはなりません。 +このオプションは、利用するためにカーネル内で SUIDDIR オプションを必要とします。 +UFS ファイルシステムだけがこのオプションをサポートします。 +suiddir マウントオプションの詳細については、 +.Xr mount 8 +を参照してください。 +.Pp +スーパユーザ以外のユーザによる、 +ファイルの書込みまたはファイルの所有者の変更によって setuser-id +ビットと set-group-id ビットはオフに切り替えられます。 +互換性は犠牲になりますが、これによって +set-user-id (set-group-id) ファイルを、それらが変更された場合に +set-user-id (set-group-id) が残ったままになってしまわないように +する事によって、システムはいくらか安全になります。 +.Sh 戻り値 +正常に完了すると値 0 が返されます。そうでない場合は、値 -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.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 +関数は +EFTYPE の戻りと S_ISTXT の使用法を除いて +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn chmod +関数は +.At v7 +で登場しました。 +.Fn fchmod +関数は +.Bx 4.2 +で登場しました。 +.Fn lchmod +関数は +.Fx 3.0 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/chown.2 b/ja_JP.eucJP/man/man2/chown.2 new file mode 100644 index 0000000000..39db370e3d --- /dev/null +++ b/ja_JP.eucJP/man/man2/chown.2 @@ -0,0 +1,165 @@ +.\" 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.11.2.1 1999/08/29 14:48:59 peter Exp % +.\" +.Dd April 19, 1994 +.Dt CHOWN 2 +.Os BSD 4 +.Sh 名称 +.Nm chown , +.Nm fchown , +.Nm lchown +.Nd ファイルの所有者とグループを変更する +.Sh 書式 +.Fd #include <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 +は、スーパユーザによって実行されているのでない場合、 +ファイル上の set-user-id ビットと set-group-id ビットをクリアして、 +set-user-id プログラムと set-group-id プログラムを +偶然にまたはいたずらで作成するのを防止します。 +.Fn chown +は、シンボリックリンクを追跡し、 +リンク自体ではなくリンクのターゲットに作用します。 +.Pp +.Fn fchown +が特に便利なのは、ファイルロッキングプリミティブとともに使用するときです +.Pf ( Xr flock 2 +を参照)。 +.Pp +.Fn lchown +は、 +.Fn chown +に類似していますが、シンボリックリンクを追跡しません。 +.Pp +所有者またはグループ ID の 1 つを、 +-1 と指定することで変化しないままにしておけます。 +.Sh 戻り値 +操作が正常に完了すると 0 が返されます。 +エラーが発生すると -1 が返され、固有のエラーコードが +グローバル変数 +.Va errno +に設定されます。 +.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/ja_JP.eucJP/man/man2/chroot.2 b/ja_JP.eucJP/man/man2/chroot.2 new file mode 100644 index 0000000000..ac51dfeef2 --- /dev/null +++ b/ja_JP.eucJP/man/man2/chroot.2 @@ -0,0 +1,96 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt CHROOT 2 +.Os BSD 4.2 +.Sh 名称 +.Nm chroot +.Nd ルートディレクトリを変更する +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn chroot "const char *dirname" +.Sh 解説 +.Fa dirname +は、ASCII のナル文字で終了するディレクトリのパス名のアドレスです。 +.Fn chroot +は、 +.Fa dirname +がルートディレクトリになるようにします。すなわち、 +.Ql / +で開始するパス名のパス検索の +開始点です。 +.Pp +ディレクトリがルートディレクトリになるためには、 +プロセスにそのディレクトリへの実行 (検索) 許可がなければなりません。 +.Pp +.Fn chroot +はプロセスの現在のディレクトリに影響しないことに注意する必要があります。 +.Pp +この呼び出しはスーパユーザに限定されています。 +.Sh 戻り値 +正常に完了すると、値 0 が返されます。そうでない場合は、値 -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn chroot +は、次の場合、処理に失敗し、ルートディレクトリは変更されません。 +.Bl -tag -width [ENOTDIR] +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er EPERM +実効ユーザ ID がスーパユーザではありません。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定のディレクトリが存在しません。 +.It Bq Er EACCES +パス名のいずれかの構成要素で検索許可が拒絶されます。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr chdir 2 +.Sh 歴史 +.Fn chroot +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/clock_gettime.2 b/ja_JP.eucJP/man/man2/clock_gettime.2 new file mode 100644 index 0000000000..0b818a5adf --- /dev/null +++ b/ja_JP.eucJP/man/man2/clock_gettime.2 @@ -0,0 +1,126 @@ +.\" $OpenBSD: clock_gettime.2,v 1.4 1997/05/08 20:21:16 kstailey Exp $ +.\" %FreeBSD: src/lib/libc/sys/clock_gettime.2,v 1.2.2.1 1999/08/29 14:48:59 peter Exp % +.\" +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd May 8, 1997 +.Dt CLOCK_GETTIME 2 +.Os BSD 4 +.Sh 名称 +.Nm clock_gettime , +.Nm clock_settime , +.Nm clock_getres +.Nd 日付と時刻を取得/設定/キャリブレートする +.Sh 書式 +.Fd #include <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 +は、次の 3 つの値のうちの 1 つにできます。 +CLOCK_REALTIME は、普通の時計のように時間を進めます。 +CLOCK_VIRTUAL は、プロセスを呼び出す代わりに CPU がユーザモードで +実行されるときにだけ進む時間用です。 +CLOCK_PROF は、CPU がユーザモードまたはカーネルモードで実行される +ときに進む時間用です。 +.Pp +.Fa tp +によって指される構造体は +.Ao Pa sys/time.h Ac +内に次のように示されます。 +.Pp +.Bd -literal +struct timespec { + time_t tv_sec; /* 秒 */ + long tv_nsec; /* ナノ秒 */ +}; +.Ed +.Pp +スーパーユーザだけが時刻を設定できます。 +システム安全性レベルが 1 より大きい場合 +.Pf ( Xr init 8 +を参照) +に、時間を進めることができます。この制限は、 +悪意のあるスーパーユーザがファイルに +任意のタイムスタンプを設定するのを防止するために課せられています。 +システムが安全モードの時でも、 +.Xr adjtime 2 +システムコールを使用して後方に調整できます。 +.Pp +クロックの精度 (細かさ) は、 +.Fn clock_getres +呼び出しによって返されます。この値は、 +(非NULLポインタ) +.Fa *tp +内に配置されます。 +.Sh 戻り +戻り値 0 は呼び出しが正常に完了したことを示します。戻り値 -1 は +エラーが起こったことを示し、 +この場合、エラーコードはグローバル変数 +.Va errno +に保存されます。 +.Sh エラー +次のエラーコードが +.Va errno +に設定できます。 +.Bl -tag -width [EFAULT] +.It Bq Er EINVAL +.Fa clock_id +が有効な値ではありませんでした。 +.It Bq Er EFAULT +.Fa *tp +引数アドレスが無効なメモリを参照しました。 +.It Bq Er EPERM +スーパユーザ以外のユーザが時刻を設定しようとしました。 +.El +.Sh 関連項目 +.Xr date 1 , +.Xr adjtime 2 , +.Xr ctime 3 , +.Xr timed 8 +.Sh 規格 +.Fn clock_gettime +等の関数は +.St -p1003.1b-93 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/close.2 b/ja_JP.eucJP/man/man2/close.2 new file mode 100644 index 0000000000..13d1eb1f64 --- /dev/null +++ b/ja_JP.eucJP/man/man2/close.2 @@ -0,0 +1,153 @@ +.\" 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.8.2.2 1999/08/29 14:48:59 peter Exp % +.\" +.Dd April 19, 1994 +.Dt CLOSE 2 +.Os BSD 4 +.Sh 名称 +.Nm close +.Nd 記述子を削除する +.Sh 書式 +.Fd #include <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, 1) +が準備されています。これは execve が成功した後で、 +記述子が閉じるように手配します。呼び出し +.Dq Li fcntl(d, F_SETFD, 0) +はデフォルトを復元します。デフォルトは、記述子を閉じないというものです。 +.Sh システムの注意事項 +.Pp +ノンスレッドライブラリでは、 +.Fn close +は +.Va close +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va close +システムコールは、 +.Fn _thread_sys_close +にアセンブルされ、 +.Fn close +は、読取りと書込みについて +.Va d +をロックしてから、 +.Fn _thread_sys_close +を呼び出す関数として実装されています。戻る前に、 +.Fn close +は +.Va d +をアンロックします。 +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。そうでない場合は、 +値 -1 が返され、エラーを示すために +グローバル整数変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn close +は次の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa d +がアクティブな記述子でありません。 +.It Bq Er EINTR +割り込みが受信されました。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr execve 2 , +.Xr fcntl 2 , +.Xr flock 2 , +.Xr open 2 , +.Xr pipe 2 , +.Xr socket 2 , +.Xr socketpair 2 +.Sh 規格 +.Fn close +関数は +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn close +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/connect.2 b/ja_JP.eucJP/man/man2/connect.2 new file mode 100644 index 0000000000..37e6e4d559 --- /dev/null +++ b/ja_JP.eucJP/man/man2/connect.2 @@ -0,0 +1,166 @@ +.\" Copyright (c) 1983, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)connect.2 8.1 (Berkeley) 6/4/93 +.\" +.Dd June 4, 1993 +.Dt CONNECT 2 +.Os BSD 4.2 +.Sh 名称 +.Nm connect +.Nd ソケット上で接続を開始する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn connect "int s" "const struct sockaddr *name" "int namelen" +.Sh 解説 +パラメータ +.Fa s +はソケットです。これのタイプが +.Dv SOCK_DGRAM +の場合、この呼び出しは、ソケットが対応付けられる +通信相手を指定します。このアドレスはデータグラムが送信される宛先であり、 +データグラムが受信される元となる +唯一のアドレスです。ソケットのタイプが +.Dv SOCK_STREAM +の場合、この呼び出しは別のソケットに接続を作成 +しようとします。他のソケットは +.Fa name +で指定されます。 +.Fa name +はソケットの通信空間内のアドレスです。各通信空間は +.Fa name +パラメータを独自の方法で解釈します。一般に、ストリームソケットが正常に +.Fn connect +できるのは +1 回だけです。データグラムソケットは +.Fn connect +を複数回使用してその対応を変更できます。データグラム +ソケットは、NULL アドレスのような無効なアドレスに接続することによって +対応付けを解除する可能性があります。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn connect +は +.Va connect +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va connect +システムコールは +.Fn _thread_sys_connect +にアセンブルされ、 +.Fn connect +は、読取りと書込みについて +.Va s +をロックしてから +.Fn _thread_sys_connect +を呼び出す関数として実装されています。 +.Fn _thread_sys_connect +の呼び出しがブロックする場合、コンテキストスイッチが +実行されます。戻る前に +.Fn connect +は +.Va s +をアンロックします。 +.Sh 戻り値 +接続またはバインドが正常に完了すると 0 が返されます。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn connect +は次の場合に失敗します。 +.Bl -tag -width EADDRNOTAVAILABB +.It Bq Er EBADF +.Fa s +が有効な記述子でありません。 +.It Bq Er ENOTSOCK +.Fa s +がソケットではなくファイルの記述子です。 +.It Bq Er EADDRNOTAVAIL +指定のアドレスがこのマシンでは利用できません。 +.It Bq Er EAFNOSUPPORT +指定のアドレスファミリ内のアドレスがこのソケットでは使用できません。 +.It Bq Er EISCONN +ソケットは既に接続されています。 +.It Bq Er ETIMEDOUT +接続を確立せずに、接続確立が時間切れになりました。 +.It Bq Er ECONNREFUSED +接続しようとする試みが強制的に拒絶されました。 +.It Bq Er ENETUNREACH +このホストからネットワークにホストから到達できません。 +.It Bq Er EADDRINUSE +アドレスが既に使用中です。 +.It Bq Er EFAULT +.Fa name +パラメータはプロセスアドレス空間の外側の領域を指定しています。 +.It Bq Er EINPROGRESS +ソケットは非ブロッキングであり、コネクションがただちに完了できません。 +書込み用にソケットを選択することによって、完了用に +.Xr select 2 +を選択できます。 +.It Bq Er EALREADY +ソケットはノンブロッキングであり、 +以前のコネクションの試みがまだ完了していません。 +.El +.Pp +以降のエラーは、UNIX ドメイン内の接続名に固有です。 +これらのエラーは、UNIX IPC ドメインの将来の +バージョンには適用されない可能性があります。 +.Bl -tag -width EADDRNOTAVAILABB +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定のソケットが存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er EACCES +指定のソケットへの書込みアクセスが拒絶されています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr getpeername 2 , +.Xr getsockname 2 , +.Xr select 2 , +.Xr socket 2 +.Sh 歴史 +.Fn connect +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/creat.2 b/ja_JP.eucJP/man/man2/creat.2 new file mode 100644 index 0000000000..8f3df2a565 --- /dev/null +++ b/ja_JP.eucJP/man/man2/creat.2 @@ -0,0 +1,62 @@ +.\" 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 +.\" +.Dd June 2, 1993 +.Dt CREAT 2 +.Os BSD 4 +.Sh 名称 +.Nm creat +.Nd 新しいファイルを作成する +.Sh 書式 +.Fd #include <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/ja_JP.eucJP/man/man2/dup.2 b/ja_JP.eucJP/man/man2/dup.2 new file mode 100644 index 0000000000..bc67bf5608 --- /dev/null +++ b/ja_JP.eucJP/man/man2/dup.2 @@ -0,0 +1,200 @@ +.\" 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.8.2.1 1999/08/29 14:49:00 peter Exp % +.\" +.Dd June 4, 1993 +.Dt DUP 2 +.Os BSD 4 +.Sh 名称 +.Nm dup , +.Nm dup2 +.Nd 既存のファイル記述子を複写する +.Sh 書式 +.Fd #include <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 +によって返されます。呼び出しによって +返される記述子は、プロセスによって現時点では使用 +されていない最も小さい番号の付いた記述子です。 +.Pp +記述子が参照するオブジェクトは +.Fa oldd +と +.Fa newd +の間を区別しません。 +このように +.Fa newd +と +.Fa oldd +が開いたファイルへの重複参照の場合、 +.Xr read 2 , +.Xr write 2 +および +.Xr lseek 2 +の各呼び出しはすべて 1 つのポインタをファイル内に移動、 +モードを末尾に追加、ノンブロッキング入出力 +および非同期入出力オプションは参照の間で共有されます。 +ファイルへの別々のポインタが必要な場合は、追加の +.Xr open 2 + 呼び出しを出すことによって、ファイルへの異なるオブジェクト参照 +を得る必要があります。新しいファイル +上の close-on-exec フラグは設定解除されます。 +.Pp +.Fn dup2 +では新しい記述子 +.Fa newd +の値が指定されます。この記述子が既に使用されており、しかも +.Fa oldd +!= +.Fa newd +の場合に、記述子は +.Xr close 2 +呼び出しが使用されたかのように最初に割り当て解除されます。 +.Fa oldd +が有効な記述子でない場合、 +.Fa newd +は閉じられません。 +.Fa oldd +== +.Fa newd +であり、しかも +.Fa oldd +が有効な記述子の場合、 +.Fn dup2 +は正常に完了し何もしません。 +.Sh システムの注意事項 +.Pp +ノンスレッドライブラリ +.Fn dup +は +.Va dup +システムコールとして実装されています。 +.Pp +スレッドライブラリの場合、 +.Va dup +システムコールが +.Fn _thread_sys_dup +にアセンブルされ、 +.Fn dup +は読取りと書込み用に +.Va oldd +をロックしてから、 +.Fn _thread_sys_dup +を呼び出す関数として実装されています。 +戻る前に +.Fn dup +は +.Va oldd +をアンロックします。 +.Pp +ノンスレッドライブラリ +.Fn dup2 +は、 +.Va dup2 +システムコールとして実現されます。 +.Pp +スレッドライブラリでは、 +.Va dup2 +システムコールは +.Fn _thread_sys_dup2 +にアセンブルされ、 +.Fn dup2 +は、読取りと書込み用に +.Va oldd +と +.Va newd +の両方をロックしてから、 +.Fn _thread_sys_dup2 +を呼び出す関数として実現されます。戻る前に、 +.Fn dup2 +は +.Va oldd +と +.Va newd +をアンロックします。 +.Sh 戻り値 +いずれかの呼び出しでエラーが起きた場合は値 -1 が返されます。 +外部変数 +.Va errno +はエラーの原因を示します。 +.Sh エラー +.Fn dup +と +.Fn dup2 +は次の場合に処理に失敗します。 +.Bl -tag -width Er +.It Bq Er EBADF +.Fa oldd +または +.Fa newd +が有効なアクティブな記述子ではありません。 +.It Bq Er EMFILE +アクティブな記述子が多すぎます。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr close 2 , +.Xr fcntl 2 , +.Xr getdtablesize 2 , +.Xr open 2 , +.Xr pipe 2 , +.Xr socket 2 , +.Xr socketpair 2 +.Sh 規格 +.Fn dup +関数と +.Fn dup2 +関数は、 +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn dup +関数と +.Fn dup2 +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/execve.2 b/ja_JP.eucJP/man/man2/execve.2 new file mode 100644 index 0000000000..3dcf666c9e --- /dev/null +++ b/ja_JP.eucJP/man/man2/execve.2 @@ -0,0 +1,287 @@ +.\" 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.11.2.4 1999/08/29 14:49:00 peter Exp % +.\" +.Dd June 1, 1994 +.Dt EXECVE 2 +.Os BSD 4 +.Sh 名称 +.Nm execve +.Nd ファイルを実行する +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn execve "const char *path" "char *const argv[]" "char *const envp[]" +.Sh 解説 +.Fn execve +は呼び出しプロセスを新しいプロセスに変換します。新しいプロセスは +.Fa path +によって指される新しいプロセスファイル +.Em new process file +と呼ばれる通常のファイルで構成されます。 +このファイルは実行可能オブジェクトファイル、またはインタプリタ用の +データのファイルです。実行可能オブジェクトファイルは、識別ヘッダに +データのページが続いたもので構成されます。このデータは +初期プログラム (テキスト) と初期値ありデータのページを表します。 +追加のページはヘッダで指定され、0 データで初期化されます。 +.Xr a.out 5 +を参照してください。 +.Pp +インタプリタファイルは次の形式の行で開始します。 +.Pp +.Bd -filled -offset indent -compact +.Sy \&#! +.Em interpreter +.Bq Em arg +.Ed +.Pp +インタプリタファイルが +.Sy execve +されるとき、システムは実際には指定の +.Em インタプリタ +を +.Sy execve +します。オプションの +.Em arg +が指定されている場合、それは +.Em インタプリタ +の 1番目の引数に +なり、元々の +.Sy execve +で指定されたファイルは 2 番目の引数になります。それ以外では +.Sy execve +で指定されたファイルの名前が 1番目の引数になります。 +元々の引数はシフトされて後続の引数に +なります。0 番目の引数は +.Sy execve +されたファイルの名前で通常は変更されません。 +.Pp +引数 +.Fa argv +は、NUL で終了する文字列を指す、NULL で終了する +文字ポインタの配列を指すポインタです。 +これらの文字列は、新しいプロセスで利用できるように引数リストを構成します。 +少なくとも 1 つの引数が配列内に存在している必要があります。 +慣習では、最初の要素が実行されたプログラムの名前になるはずです (たとえば、 +.Fa path +の最後の構成要素)。 +.Pp +引数 +.Fa envp +も、NUL で終了する文字列を指す、NULL で終了する +文字ポインタの配列を指すポインタです。 +この配列を指すポインタは、通常、グローバル変数 +.Va environ +に保存されます。これらの文字列は、コマンドへの直接的 +引数ではない情報を新しいプロセスに渡します +.Pf ( Xr environ 7 +を参照)。 +.Pp +呼び出しプロセスイメージ内で開いているファイル記述子は、 +新しいプロセスイメージの中で開いたままです。 +しかし、close-on-exec フラグが設定されているものは例外です。 +.Pf ( Xr close 2 +と +.Xr fcntl 2 +を参照)。 +開いたままの記述子は +.Fn execve +の影響を受けません。 +.Pp +呼び出しプロセスで無視するよう設定されたシグナルは、 +新しいプロセス内で無視されるよう設定されます。 +呼び出しプロセスイメージ内で捕捉されるよう設定されたシグナルは、 +新しいプロセスイメージ内でデフォルトのアクションに +設定されます。ブロックされたシグナルは、 +シグナルアクションの変化とは無関係にブロックされたままになります。 +シグナルスタックは未定義であるようリセットされます (詳細については +.Xr sigaction 2 +を参照してください)。 +.Pp +新しいプロセスイメージファイルの set-user-ID モードビット +が設定されている場合 +.Pf ( Xr chmod 2 +を参照)、新しいプロセスイメージの実効ユーザ ID は、 +新しいプロセスイメージファイルの所有者 ID に設定されます。 +新しいプロセスイメージファイルの set-group-ID モードビットが +設定されている場合、新しいプロセスイメージの実効グループ ID は新しい +プロセスイメージファイルのグループ ID に設定されます +(実効グループ ID はグループリストの最初の要素です)。 +新しいプロセスの実ユーザ ID、実グループ ID、およびその他の +グループ ID は、呼び出しプロセスイメージと同じになります。 +set-user-ID および set-group-ID 処理の後、実効ユーザ ID は +saved set-user-ID として記録され、実効グループ ID は +saved set-group-ID として記録されます。 +これらの値は、後で実効 ID を変更するのに使用できます +.Pf ( Xr setuid 2 +を参照)。 +.ne 1i +.Pp +該当するファイルシステムで +.Ar nosuid +オプションが有効な場合、または新しいプロセスファイルがインタプリタ +ファイルの場合、set-ID ビットは尊重されません。 +実効 ID が変更された場合、システムコールのトレースは +無効になります。 +.Pp +また、新しいプロセスは呼び出しプロセスから次の属性を継承します。 +.Pp +.Bl -column parent_process_ID -offset indent -compact +.It process ID Ta Xr getpid 2 \ を参照 +.It parent process ID Ta Xr getppid 2 \ を参照 +.It process group ID Ta Xr getpgrp 2 \ を参照 +.It access groups Ta Xr getgroups 2 \ を参照 +.It working directory Ta Xr chdir 2 \ を参照 +.It root directory Ta Xr chroot 2 \ を参照 +.It control terminal Ta Xr termios 4 \ を参照 +.It resource usages Ta Xr getrusage 2 \ を参照 +.It interval timers Ta Xr getitimer 2 \ を参照 +.It resource limits Ta Xr getrlimit 2 \ を参照 +.It file mode mask Ta Xr umask 2 \ を参照 +.It signal mask Ta Xr sigvec 2 , +.Xr sigsetmask 2 \ を参照 +.El +.Pp +.Fn execve +呼び出しの結果として実行されるとき、プログラムは次のように呼び出されます。 +.Bd -literal -offset indent +main(argc, argv, envp) +int argc; +char **argv, **envp; +.Ed +.Pp +ここで、 +.Fa argc +は +.Fa argv +の要素数 (``arg count'') であり、 +.Fa argv +は、引数自身を指す文字ポインタの配列を指します。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリ +.Fn execve +は +.Va execve +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va execve +システムコールは +.Fn _thread_sys_execve +にアセンブルされ、 +.Fn execve +は、ユーザスレッドライブラリ再初期化を行なってから、 +.Fn _thread_sys_execve +を呼び出す関数として実装されています。 +.Sh 戻り値 +.Fn execve +は現在のプロセスイメージを新しいプロセスイメージで上書きするので、 +処理が成功した呼び出しには戻るプロセスがありません。 +.Fn execve +が呼び出しプロセスに返ってくる場合は +エラーが起きています。戻り値は -1 が返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます +.Sh エラー +次の場合、 +.Fn Execve +は処理に失敗し、呼び出しプロセスに戻ります。 +.Bl -tag -width [ENAMETOOLONG] +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +新しいプロセスファイルが存在しません。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er EACCES +新しいプロセスファイルが通常のファイルではありません。 +.It Bq Er EACCES +新しいプロセスファイルのモードで実行許可が拒否されています。 +.It Bq Er ENOEXEC +新しいプロセスファイルに適切なアクセス許可がありますが、 +ヘッダのマジック番号が無効です。 +.It Bq Er ETXTBSY +新しいプロセスファイルは純粋な手続き (共有テキスト) ファイルですが、 +現時点で書込みまたは読取り用に開かれています。 +.ne 1i +.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 environ 7 , +.Xr mount 8 +.Sh 歴史 +.Fn execve +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fcntl.2 b/ja_JP.eucJP/man/man2/fcntl.2 new file mode 100644 index 0000000000..9e4c00dba0 --- /dev/null +++ b/ja_JP.eucJP/man/man2/fcntl.2 @@ -0,0 +1,528 @@ +.\" 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 +.\" +.Dd January 12, 1994 +.Dt FCNTL 2 +.Os BSD 4.2 +.Sh 名称 +.Nm fcntl +.Nd ファイル制御 +.Sh 書式 +.Fd #include <fcntl.h> +.Ft int +.Fn fcntl "int fd" "int cmd" "..." +.Sh 解説 +.Fn fcntl +は、記述子の制御機能を提供します。引数 +.Fa fd +は、後述する +.Fa cmd +によって操作される記述子です。 +.Fa cmd +の値によっては、 +.Nm +は 3 つめの引数 +.Fa "int arg" +を取ることができます。 +.Bl -tag -width F_GETOWNX +.It Dv F_DUPFD +次のように新しい記述子を返します。 +.Pp +.Bl -bullet -compact -offset 4n +.It +.Fa arg +以上で最小番号をもつ利用可能な記述子 +.It +オリジナルの記述子と同じオブジェクト参照する +.It +オブジェクトがファイルだった場合、 +新しい記述子は同じファイルオフセットを共有します。 +.It +同じアクセスモード (読取り、書込み、または読取りと書込み) +.It +同じファイルステータスフラグ (すなわち、 +両方のファイル記述子が同じファイルステータス +フラグを共有します) +.It +新しいファイル記述子に対応する close-on-exec フラグは、 +.Xr execve 2 +システムコールの後でも +開いたままでいるように設定されます。 +.El +.It Dv F_GETFD +ファイル記述子 +.Fa fd +に対応する close-on-exec フラグを取得します。 +返された値の下位ビットが 0 の場合、ファイルは +.Fn exec +を実行しても開いたままになります。そうでない場合、ファイルは +.Fn exec +の実行で閉じられます +.Fa ( arg +は無視されます)。 +.It Dv F_SETFD +.Fa fd +に対応する close-on-exec フラグを +.Fa arg +(前記のように 0 または 1) の下位ビットで指定される値に設定します。 +.It Dv F_GETFL +後述するように記述子のステータスフラグを取得します +.Fa ( arg +は無視されます)。 +.It Dv F_SETFL +記述子ステータスフラグを +.Fa arg +で指定される値に設定します。 +.It Dv F_GETOWN +現時点で +.Dv SIGIO +シグナルと +.Dv SIGURG +シグナルを受信しているプロセス ID またはプロセスグループを取得 +します。プロセスグループは負の値として返されます +.Fa ( arg +は無視されます)。 +.It Dv F_SETOWN +プロセスまたはプロセスグループが +.Dv SIGIO +シグナルおよび +.Dv SIGURG +シグナルを受信するように設定します。 +プロセスグループは +.Fa arg +で負数にして与えることによって指定されます。そうでない場合、 +.Fa arg +はプロセス ID として解釈されます。 +.El +.Pp +.Dv F_GETFL +および +.Dv F_SETFL +用のフラグは次のとおりです。 +.Bl -tag -width O_NONBLOCKX +.It Dv O_NONBLOCK +非ブロッキング入出力。 +.Xr read 2 +呼び出しで読み取るべきデータが無い場合、または +.Xr write 2 +操作がブロックするであろう場合に、読取り呼び出しまたは書込み呼び出しはエラー +.Er EAGAIN +で -1 を返します。 +.It Dv O_APPEND +各書込みがファイルの末尾に追加されるようにします。 +.Xr open 2 +の +.Dv O_APPEND +フラグに対応します。 +.It Dv O_ASYNC +たとえば、読み取るべきデータが用意できたときなど、 +入出力が可能になったときに +.Dv SIGIO +シグナルがプロセスグループに送信されるようにします。 +.El +.Pp +問合せ型ファイルロックを行なうためにいくつかのコマンドが利用できます。 +これらのコマンドはすべて次の構造体で操作します。 +.ne 7v +.Bd -literal +struct flock { + off_t l_start; /* 開始位置のオフセット */ + off_t l_len; /* len = 0 はファイル末尾までという意味 */ + pid_t l_pid; /* ロック所有者 */ + short l_type; /* ロックタイプ: 読取り/書込みなど */ + short l_whence; /* l_start のタイプ */ +}; +.Ed +問合せ型レコードロックに利用できるコマンドは次のとおりです。 +.Bl -tag -width F_SETLKWX +.It Dv F_GETLK +3 番めの引数 +.Fa arg +を +.Fa "struct flock" +(前記を参照) へのポインタと解釈して、それによって指定される +ロック記述をブロックする最初のロックを取得します。取り出された情報は、 +.Fn fcntl +に渡された +.Fa flock +構造体内の情報に上書きされます。 +このロックが作成されるのを妨げるロックが見つからない場合は、 +構造体はこの関数呼び出しによっても変更されません。 +ただし、ロックタイプが +.Dv F_UNLCK +に設定されている場合は除きます。 +.It Dv F_SETLK +3 番めの引数 +.Fa arg +を +.Fa "struct flock" +(前記を参照) へのポインタと解釈して、それによって指定される +ロック記述に従ってファイルセグメントロックを設定またはクリアします。 +.Dv F_SETLK +は、共有 (または読取り) ロック +.Dv (F_RDLCK) +または排他的 (または書込み) ロック +.Dv (F_WRLCK) +を確立、ならびにいずれかのタイプのロックを除去 +.Dv (F_UNLCK) +するのに使用されます。 +共有ロックまたは排他的ロックが設定できない場合、 +.Fn fcntl +は +.Er EAGAIN +でただちに戻ります。 +.It Dv F_SETLKW +このコマンドは +.Dv F_SETLK +と同じですが、共有ロックまたは排他的ロックが他のロックによって +ブロックされる場合に、 +要求を満たされるまでプロセスが待機する点が異なります。 +.Fn fcntl +がある領域を確保するために待機している間に +捕捉されるべきシグナルを受信して、シグナルハンドラが +.Dv SA_RESTART +.Pf ( Xr sigaction 2 +を参照) を +指定していない場合、 +.Fn fcntl +は中断されます。 +.El +.Pp +共有ロックがファイルのあるセグメントに設定されている場合、 +他のプロセスはそのセグメントまたはその +一部に共有ロックを設定できます。共有ロックは、保護している +どの領域にも、他のプロセスが排他的ロックを設定するのを防止します。 +ファイル記述子が読取りアクセスで開かれていない場合、 +共有ロックの要求は処理を失敗します。 +.Pp +排他的ロックは、保護しているどの領域にも、他のプロセスが +共有ロックまたは排他的ロックを設定するのを防止します。 +ファイルが書込みアクセスで開かれていない場合、 +排他的ロックの要求は処理を失敗します。 +.Pp +.Fa l_whence +の値は +.Dv SEEK_SET , +.Dv SEEK_CUR , +または +.Dv SEEK_END +で、これらは相対オフセット +.Fa l_start +バイトが、それぞれファイルの先頭、現在位置、 +またはファイルの末尾から測定されることを指示します。 +.Fa l_len +の値はロックされる連続領域のバイト数です。 +.Fa l_len +が負の場合の結果は未定義です。 +.Fa l_pid +フィールドは、 +ブロックするロックを保持しているプロセスのプロセス ID を返すために +.Dv F_GETLK +でのみ使用されます。 +.Dv F_GETLK +要求が正常に完了すると +.Fa l_whence +の値は +.Dv SEEK_SET +になります。 +.Pp +ロックは現在のファイル末尾以降で開始したり、 +ファイル末尾を越えて延長することはできますが、 +ファイルの先頭より前で開始したりまたは延長することはできません。 +.Fa l_len +が 0 に設定されている場合、ロックはそのファイルの +ファイルオフセットの可能な最大の値まで延長されます。 +.Fa l_whence +と +.Fa l_start +がファイルの先頭を指しており、しかも +.Fa l_len +が 0 の場合はファイル全体がロックされます。 +アプリケーションがファイル全体をロックしようとしているだけなら、 +.Xr flock 2 +システムコールの方がはるかに効率的です。 +.Pp +ファイル内の各バイトについて最大で 1 つのタイプのロックが設定されます。 +呼び出しプロセスが +.Dv F_SETLK +要求、または +.Dv F_SETLKW +要求で指定した領域内に既存のロックを保持しているとき、 +要求から正常に戻る前に、 +指定の領域内の各バイトについて以前の +ロックタイプが新しいロックタイプで置き換えられます。共有ロックと +排他的ロックのところで前述したように、 +別のプロセスが指定の領域内にロックを保持しており、しかもそれらのロック +のタイプが要求で指定されたタイプと競合するとき、 +.Dv F_SETLK +要求は処理を失敗し、 +.Dv F_SETLKW +要求はブロックします。 +.Pp +あるプロセスが保持している、あるファイルと関連づけられたすべてのロックが、 +そのファイルの記述子のいずれかがそのプロセスによって閉じられた時に +解除されることを要求する、System V と +.St -p1003.1-88 +の不毛なセマンティクスに、このインタフェースは完全に従っています。 +これは、サブルーチンライブラリがアクセスする可能性のあるファイル全てを +アプリケーションが認識している必要がある +ことを意味します。たとえば、パスワードファイルを更新するために +アプリケーションが、更新を行なう間に +パスワードファイルデータベースをロックしてから、レコードを取り出そうとして +.Xr getpwnam 3 +を呼び出した +場合、ロックは失われます。 +.Xr getpwnam 3 +がパスワードデータベースを開き、読み取り、そして閉じるからです。 +データベースを閉じると、ライブラリルーチン +がデータベースへのロックを要求したことがない場合でさえ、 +プロセスがデータベースに対応させたすべての +ロックが開放されます。 +このインタフェースの別のさほど重要でないセマンティクス上の問題は、 +ロックが +.Xr fork 2 +関数を使用して作成された子プロセスによって継承されないことです。 +.Xr flock 2 +インタフェースは、はるかに合理的な last close セマンティクスを採用し、 +ロックが子プロセスによって継承できるようになっています。 +ライブラリを使用するときにロックの整合性を確実にする、 +またはロックを子に渡したいアプリケーションについては +.Xr flock 2 +をお勧めします。 +.Xr flock 2 +と +.Xr fcntl 2 +ロックは同時に安全に使用できます。 +.Pp +指定のプロセスの、あるファイルに対応するすべてのロックは +プロセスが終了するときに除去されます。 +.Pp +あるロックした領域を制御しているプロセスが、 +別のプロセスがロックした領域をロックしようとして +休眠状態にされる場合に、デッドロックの可能性が発生します。 +この実装では、ロックされた領域がアンロックされるまでの休眠が +デッドロックを起こす可能性がある事を検出し、 +.Er EDEADLK +エラーで失敗します。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn fcntl +は +.Va fcntl +として実装されています。 +.Pp +スレッドライブラリでは、 +.Va fcntl +システムコールは +.Fn _thread_sys_fcntl +にアセンブルされ、 +.Fn fcntl +はスレッドの再スケジューリングを無効にし、読み書きについて +.Va fd +をロックしてから +.Fn _thread_sys_fcntl +を呼び出す関数として実装されています。戻る前に +.Fn fcntl +は +.Va fd +をアンロックし、スレッドスケジュールを有効にします。 +.Sh 戻り値 +処理が正常に完了した場合、返される値は +.Fa cmd +に応じて次のようになります。 +.Bl -tag -width F_GETOWNX -offset indent +.It Dv F_DUPFD +新しいファイル記述子 +.It Dv F_GETFD +フラグの値 (下位ビットだけが定義されます) +.It Dv F_GETFL +フラグの値 +.It Dv F_GETOWN +ファイル記述子所有者の値 +.It other +\-1 以外の値 +.El +.Pp +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn fcntl +は次の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er EAGAIN +引数 +.Fa cmd +は +.Dv F_SETLK +であり、ロックのタイプ +.Fa (l_type) +は共有ロック +.Dv (F_RDLCK) +、または +排他的ロック +.Dv (F_WRLCK) +で、ロックされるはずのファイルの +セグメントは既に別のプロセスによって排他的に +ロックされています。または、タイプが排他的なロックで、 +ロックされるファイルのセグメントの一部が +既に別のプロセスによって共有ロックまたは排他的ロックされています。 +.It Bq Er EBADF +.Fa fildes +は有効なオープンファイル記述子ではありません。 +.Pp +引数 +.Fa cmd +が +.Dv F_SETLK +または +.Dv F_SETLKW +で、かつロックタイプ +.Fa (l_type) +が共有ロック +.Dv (F_RDLCK) +であり、 +.Fa fildes +は読取り用に開かれた有効なファイル記述子ではありません。 +.Pp +引数 +.Fa cmd +が +.Dv F_SETLK +または +.Dv F_SETLKW +で、かつロックタイプ +.Fa (l_type) +が排他的ロック +.Dv (F_WRLCK) +であり、 +.Fa fildes +は書込み用に開かれた有効なファイル記述子ではありません。 +.It Bq Er EDEADLK +引数 +.Fa cmd +が +.Dv F_SETLKW +であり、デッドロック条件が検出されました。 +.It Bq Er EINTR +引数 +.Fa cmd +が +.Dv F_SETLKW +であり、関数がシグナルによって割り込まれれました。 +.It Bq Er EINVAL +.Fa cmd +が +.Dv F_DUPFD +で、 +.Fa arg +が負であるかまたは許容される最大値より大きくなっています +.Pf ( Xr getdtablesize 2 +を参照)。 +.Pp +引数 +.Fa cmd +が +.Dv F_GETLK , +.Dv F_SETLK , +または +.Dv F_SETLKW +で、 +.Fa arg +が指すデータが有効でありません。または +.Fa fildes +が、ロックをサポートしないファイルを参照しています。 +.It Bq Er EMFILE +引数 +.Fa cmd +が +.Dv F_DUPFD +であり、プロセスについて許容される最大数までファイル記述子が +既に使用されています。 +.Fa arg +で指定された以上のファイル記述子は利用できません。 +.It Bq Er ENOLCK +引数 +.Fa cmd +が +.Dv F_SETLK +または +.Dv F_SETLKW +であり、ロック要求またはアンロック要求を満たすことによって、 +システムが課した限界を越える数のロックされた領域がシステム内に +できてしまいます。 +.It Bq Er EPERM +.Fa cmd +は、 +.Dv F_SETOWN +であり、引数として指定されたプロセス ID またはプロセスグループ +は、呼び出し側と異なるセッション内にあります。 +.It Bq Er ESRCH +.Fa cmd +は +.Dv F_SETOWN +であり、引数として指定されたプロセス ID が使用されていません。 +.El +.Pp +さらに、 +.Fa fd +が (ソケット上で開いている記述子とは反対に) +端末デバイス上で開いている記述子を参照する場合、 +.Fa cmd +で +.Dv F_SETOWN +を指定すると +.Xr tcsetpgrp 3 +と同じ理由で処理を失敗する可能性があり、 +.Xr tcgetpgrp 3 +で述べたような +理由で +.Fa cmd +で +.Dv F_GETOWN +を指定した場合に処理に失敗する可能性があります。 +.Sh 関連項目 +.Xr close 2 , +.Xr execve 2 , +.Xr flock 2 , +.Xr getdtablesize 2 , +.Xr open 2 , +.Xr sigvec 2 , +.Xr tcgetpgrp 3 , +.Xr tcsetpgrp 3 +.Sh 歴史 +.Fn fcntl +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/flock.2 b/ja_JP.eucJP/man/man2/flock.2 new file mode 100644 index 0000000000..bc9b1638df --- /dev/null +++ b/ja_JP.eucJP/man/man2/flock.2 @@ -0,0 +1,176 @@ +.\" 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 +.\" +.Dd December 11, 1993 +.Dt FLOCK 2 +.Os BSD 4.2 +.Sh 名称 +.Nm flock +.Nd "開いたファイル上の問合せ型ロックを適用または除去する" +.Sh 書式 +.Fd #include <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 解説 +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 つのロックの複数のインスタンスとはならずに、1 つのロックへの複数の +参照になります。あるファイルについてのロックを保持しているプロセスが +フォークし、子プロセスが明示的にその +ファイルをアンロックする場合、親プロセスはそのロックを失います。 +.Pp +ロックを待ってブロックしているプロセスはシグナルで起こされるかもしれません。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn flock +は +.Va flock +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va flock +システムコールは +.Fn _thread_sys_flock +にアセンブルされ、 +.Fn flock +は、読み書きについて +.Va fd +をロックしてから、 +.Fn _thread_sys_flock +を呼び出す関数として +実装されています。戻る前に +.Fn flock +は +.Va fd +をアンロックします。 +.Sh 戻り値 +操作が正常に完了した場合は 0が返されます。そうでない場合は、 +エラー -1 が返され、 +エラーコードはグローバル変数 +.Va errno +に残されます。 +.Sh エラー +.Fn flock +呼び出しは次の場合に失敗します: +.Bl -tag -width EWOULDBLOCKAA +.It Bq Er EWOULDBLOCK +ファイルはロックされており、 +.Dv LOCK_NB +オプションが指定されました。 +.It Bq Er EBADF +引数 +.Fa fd +が無効な記述子を指しています。 +.It Bq Er EINVAL +引数 +.Fa fd +がファイル以外のオブジェクトを参照しています。 +.It Bq Er EOPNOTSUPP +引数 +.Fa fd +がファイルのロックをサポートしないオブジェクトを参照しています。 +.El +.Sh 関連項目 +.Xr close 2 , +.Xr dup 2 , +.Xr execve 2 , +.Xr fork 2 , +.Xr open 2 +.Sh 歴史 +.Fn flock +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fork.2 b/ja_JP.eucJP/man/man2/fork.2 new file mode 100644 index 0000000000..39d8f790d3 --- /dev/null +++ b/ja_JP.eucJP/man/man2/fork.2 @@ -0,0 +1,122 @@ +.\" 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.7.2.2 1999/09/18 16:18:59 phantom Exp % +.\" +.Dd June 4, 1993 +.Dt FORK 2 +.Os BSD 4 +.Sh 名称 +.Nm fork +.Nd 新しいプロセスを作成する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +を参照してください。 +.El +.Sh 戻り値 +正常に完了した場合、 +.Fn fork +は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに返します。 +そうでない場合は -1 が親プロセスに返され、子プロセスは作成されずに、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +次の場合に +.Fn fork +は処理に失敗し、子プロセスは作成されません。 +.Bl -tag -width [EAGAIN] +.It Bq Er EAGAIN +実行中のプロセスの合計数についてシステムが課する限界を超えます。限界値は +.Xr sysctl 3 +の MIB 変数の +.Dv KERN_MAXPROC +によって指定されます (スーパユーザを除いて、 +実際には限界はこれより 1 つ小さくなります)。 +.It Bq Er EAGAIN +ユーザがスーパユーザでなく、 +1 人のユーザによって実行中のプロセスの合計数にシステムが課す +限界を越えます。限界は +.Xr sysctl 3 +の MIB 変数の +.Dv KERN_MAXPROCPERUID +によって指定されます。 +.It Bq Er EAGAIN +ユーザがスーパユーザでなく、リソースパラメータの +.Dv RLIMIT_NPROC +に対応するソフトリソース限界を越えます。 +.Pf ( Xr getrlimit 2 +を参照)。 +.It Bq Er ENOMEM +新しいプロセス用のスワップ空間が不充分です。 +.El +.Sh 関連項目 +.Xr execve 2 , +.Xr rfork 2 , +.Xr setrlimit 2 , +.Xr vfork 2 , +.Xr wait 2 +.Sh 歴史 +.Fn fork +関数は +.At v6 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fsync.2 b/ja_JP.eucJP/man/man2/fsync.2 new file mode 100644 index 0000000000..cab8212c8b --- /dev/null +++ b/ja_JP.eucJP/man/man2/fsync.2 @@ -0,0 +1,102 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt FSYNC 2 +.Os BSD 4.2 +.Sh 名称 +.Nm fsync +.Nd "ディスク上のファイルをメモリ上の状態と同期化する" +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn fsync "int fd" +.Sh 解説 +.Fn fsync +によって、 +.Fa fd +の修正されたすべてのデータと属性が永続的なストレージデバイスに移動されます。 +これによって、対応するファイルに関するバッファのすべての +メモリ上のコピーで、修正された物がディスクに書き込まれる結果になるのが +普通です。 +.Pp +.Fn fsync +は、ファイルが既知の状態にあることを要求するプログラムによって +使用される必要があります。たとえば、簡単なトランザクション機能の構築です。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn fsync +は +.Va fsync +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va fsync +システムコールは +.Fn _thread_sys_fsync +にアセンブルされ、 +.Fn fsync +は、読取りと書込みについて +.Va fd +をロックしてから +.Fn _thread_sys_fsync +を呼び出す関数として実装されています。戻る前に +.Fn fsync +は +.Va fd +をアンロックします。 +.Sh 戻り値 +正常に完了すると値 0 が返されます。値 -1 はエラーを示します。 +.Sh エラー +.Fn fsync +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +が有効な記述子ではありません。 +.It Bq Er EINVAL +.Fa fd +がファイルではなくソケットを参照しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr sync 2 , +.Xr update 4 , +.Xr sync 8 +.Sh 歴史 +.Fn fsync +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getdirentries.2 b/ja_JP.eucJP/man/man2/getdirentries.2 new file mode 100644 index 0000000000..d8217e116c --- /dev/null +++ b/ja_JP.eucJP/man/man2/getdirentries.2 @@ -0,0 +1,197 @@ +.\" Copyright (c) 1989, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)getdirentries.2 8.2 (Berkeley) 5/3/95 +.\" +.Dd May 3, 1995 +.Dt GETDIRENTRIES 2 +.Os +.Sh 名称 +.Nm getdirentries , +.Nm getdents +.Nd "ファイルシステムに独立な書式のディレクトリエントリを取得する" +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +バッファ内のデータは +.Em dirent +構造体の連続で、それぞれ次のエントリが入っています。 +.Bd -literal -offset indent +u_int32_t d_fileno; +u_int16_t d_reclen; +u_int8_t d_type; +u_int8_t d_namlen; +char d_name[MAXNAMELEN + 1]; /* 下記を参照 */ +.Ed +.Pp +.Fa d_fileno +エントリは、ファイルシステム内の異なるファイル毎に一意の数値です。 +ハードリンクでリンクされたファイル +.Pf ( Xr link 2 +を参照) は同じ +.Fa d_fileno +を持ちます。 +.Fa d_reclen +エントリは、ディレクトリレコードの +長さ (バイト単位) です。 +.Fa d_type +エントリは、ディレクトリレコードが指すファイルのタイプです。 +ファイルタイプの値は +.Fa <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 +が指す場所に返される値 ( +.Ns Fn getdirentries +のみ)、または 0 のいずれかにのみ設定するべきです。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn getdirentries +は +.Va getdirentries +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va getdirentries +システムコールは +.Fn _thread_sys_getdirentries +にアセンブルされ、 +.Fn getdirentries +は、読み書きについて +.Va fd +をロックしてから +.Fn _thread_sys_getdirentries +を呼び出す関数として実装されています。戻る前に、 +.Fn getdirentries +は +.Va fd +をアンロックします。 +.Sh 戻り値 +処理が正常に完了すると、実際に転送されたバイト数が返されます。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn getdirentries +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +が読取り用に開いた有効なファイル記述子ではありません。 +.It Bq Er EFAULT +.Fa buf +または +.Fa basep +のどちらかが、割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINVAL +.Fa fd +によって参照されるファイルがディレクトリでない、 +.Fa nbytes +がディレクトリエントリまたはエントリのブロックを返すのには小さすぎる、 +または、現在の位置ポインタが無効です。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に +.Tn I/O +(入出力)エラーが発生しました。 +.El +.Sh 関連項目 +.Xr lseek 2 , +.Xr open 2 +.Sh 歴史 +.Fn getdirentries +関数は +.Bx 4.4 +ではじめて登場しました。 +.Fn getdents +関数は +.Fx 3.0 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getdtablesize.2 b/ja_JP.eucJP/man/man2/getdtablesize.2 new file mode 100644 index 0000000000..dc2f69ca48 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getdtablesize.2 @@ -0,0 +1,61 @@ +.\" 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.1.1.1.10.1 1999/09/18 16:18:59 phantom Exp % +.\" +.Dd June 4, 1993 +.Dt GETDTABLESIZE 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getdtablesize +.Nd 記述子テーブルのサイズを得る +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn getdtablesize void +.Sh 解説 +各プロセスには固定サイズの記述子テーブルがあり、 +テーブルには最低 20 個のスロットがあることが保証されています。 +記述子テーブル内のエントリは、0 で開始する小さい整数で番号付けられています。 +呼び出し +.Fn getdtablesize +はこのテーブルのサイズを返します。 +.Sh 関連項目 +.Xr close 2 , +.Xr dup 2 , +.Xr open 2 , +.Xr select 2 +.Sh 歴史 +.Fn getdtablesize +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getfh.2 b/ja_JP.eucJP/man/man2/getfh.2 new file mode 100644 index 0000000000..6e98be11c4 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getfh.2 @@ -0,0 +1,90 @@ +.\" 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 +.\" +.Dd June 9, 1993 +.Dt GETFH 2 +.Os +.Sh 名称 +.Nm getfh +.Nd ファイルハンドルを得る +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/mount.h> +.Ft int +.Fn getfh "const char *path" "fhandle_t *fhp" +.Sh 解説 +.Fn getfh +は指定のファイルまたはディレクトリのファイルハンドルを +.Fa fhp +が指すファイルハンドルの格納領域に返します。 +このシステムコールはスーパユーザに限定されます。 +.Sh 戻り値 +正常に完了すると、値 0 が返されます。そうでない場合は -1 が返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn getfh +は以下の 1 つでも真の場合、処理に失敗します。 +.Bl -tag -width Er +.It Bq ENOTDIR +.Fa path +の構成要素中にディレクトリ以外のものが含まれています。 +.It Bq ENAMETOOLONG +.Fa path +の構成要素が 255 文字を越えているか、 +または +.Fa path +が 1023 文字を越えています。 +.It Bq ENOENT +.Fa path +が参照するファイルが存在しません。 +.It Bq EACCES +.Fa path +の前置パス名の構成要素について検索許可が拒否されています。 +.It Bq ELOOP +.Fa path +を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq EFAULT +.Fa fhp +が無効なアドレスを指しています。 +.It Bq EIO +ファイルシステムに読み書きしている間に +.Tn I/O +(入出力) エラーが発生しました。 +.El +.Sh 歴史 +.Fn getfh +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getfsstat.2 b/ja_JP.eucJP/man/man2/getfsstat.2 new file mode 100644 index 0000000000..d05b3cb921 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getfsstat.2 @@ -0,0 +1,174 @@ +.\" 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 +.\" +.Dd May 25, 1995 +.Dt GETFSSTAT 2 +.Os +.Sh 名称 +.Nm getfsstat +.Nd マウントされたすべてのファイルシステムのリストを得る +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/ucred.h> +.Fd #include <sys/mount.h> +.Ft int +.Fn getfsstat "struct statfs *buf" "long bufsize" "int flags" +.Sh 解説 +.Fn getfsstat +は、マウントされたすべてのファイルシステムに関する情報を返します。 +.Fa buf +は +次のように定義される +.Xr statfs +構造体へのポインタです。 +.Bd -literal +typedef struct fsid { int32_t val[2]; } fsid_t; /* ファイルシステム ID タイプ */ + +/* + * ファイルシステム統計 + */ + +#define MFSNAMELEN 16 /* ファイルシステムのタイプ名長、ヌルを含む */ +#define MNAMELEN 90 /* 返された名前についてのバッファの長さ */ + +struct statfs { + long f_spare2; /* プレースホルダ */ + long f_bsize; /* 基本的なファイルシステムのブロックサイズ */ + long f_iosize; /* 最適な転送ブロックサイズ */ + long f_blocks; /* ファイルシステム内の合計データブロック */ + long f_bfree; /* ファイルシステム内の未使用のブロック */ + long f_bavail; /* スーパユーザ以外のユーザが利用できる未使用のブロック */ + long f_files; /* ファイルシステム内の合計ファイルノード */ + long f_ffree; /* ファイルシステム内の未使用のファイルノード */ + fsid_t f_fsid; /* ファイルシステム ID */ + uid_t f_owner; /* ファイルシステムをマウントしたユーザ */ + int f_type; /* ファイルシステムのタイプ (下記を参照) */ + int f_flags; /* マウントフラグのコピー */ + long f_spare[2]; /* 後のための余白 */ + char f_fstypename[MFSNAMELEN];/* ファイルシステムのタイプ名 */ + char f_mntonname[MNAMELEN];/* マウントされたディレクトリ */ + char f_mntfromname[MNAMELEN];/* マウントされたファイルシステム */ +}; +.Ed +.Pp +返される可能性のあるフラグには次のものが含まれます。 +.Bl -tag -width MNT_ASYNCHRONOUS +.It Dv MNT_RDONLY +ファイルシステムは読取り専用としてマウントされています。 +スーパユーザも書込みすることはできません。 +.It Dv MNT_NOEXEC +そのファイルシステム上のファイルを実行することはできません。 +.It Dv MNT_NOSUID +実行されるときに、ファイルの setuid ビットと setgid ビットが +効果を持ちません。 +.It Dv MNT_NODEV +ファイルシステム内の特殊ファイルは開けません。 +.It Dv MNT_SYNCHRONOUS +ファイルシステムへのすべての入出力が同期的に実行されます。 +.It Dv MNT_ASYNCHRONOUS +ファイルシステム入出力が同期的に実行されません。 +.It Dv MNT_LOCAL +ローカルにあるファイルシステムです。 +.It Dv MNT_QUOTA +ファイルシステム上でクオータが有効になっています。 +.It Dv MNT_ROOTFS +ルートファイルシステムであることを示します。 +.It Dv MNT_EXRDONLY +ファイルシステムは読取り専用でエクスポートされています。 +.It Dv MNT_EXPORTED +ファイルシステムは読取りと書込みの両方についてエクスポートされています。 +.It Dv MNT_DEFEXPORTED +ファイルシステムはどのインターネットホストへも読取りと書込みの両方について +エクスポートされています。 +.It Dv MNT_EXPORTANON +ファイルシステムはすべてのリモートアクセスを匿名ユーザへマップします。 +.It Dv MNT_EXKERB +ファイルシステムは Kerberos uid マッピングでエクスポートされています。 +.El +.Pp +特定のファイルシステムについて未定義となるフィールドは -1 に設定されます。 +バッファは +.Fa fsstat +構造体の配列で埋められます。 +マウントされた各ファイルシステムについて 1 つずつ、最高 +.Fa bufsize +で指定されたサイズまでです。 +.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 EFAULT +.Fa buf +が無効なアドレスを指しています。 +.It EIO +ファイルシステムを読み書きしている間に +.Tn I/O +(入出力) エラーが発生しました。 +.El +.Sh 関連項目 +.Xr statfs 2 , +.Xr fstab 5 , +.Xr mount 8 +.Sh 歴史 +.Fn getfsstat +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getgid.2 b/ja_JP.eucJP/man/man2/getgid.2 new file mode 100644 index 0000000000..97b3358f45 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getgid.2 @@ -0,0 +1,78 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt GETGID 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getgid , +.Nm getegid +.Nd グループプロセス識別を得る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 set-group-ID +モードプロセスの実行の間にプロセスに追加のパーミッションを与えるので、 +.Fn getgid +は呼び出しプロセスの real-user-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/ja_JP.eucJP/man/man2/getgroups.2 b/ja_JP.eucJP/man/man2/getgroups.2 new file mode 100644 index 0000000000..b18f45a9c3 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getgroups.2 @@ -0,0 +1,96 @@ +.\" 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.4.2.1 1999/08/29 14:49:01 peter Exp % +.\" +.Dd April 16, 1994 +.Dt GETGROUPS 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getgroups +.Nd グループアクセスリストを得る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <unistd.h> +.Ft int +.Fn getgroups "int gidsetlen" "gid_t *gidset" +.Sh 解説 +.Fn getgroups +は、ユーザプロセスの現在のグループアクセスリストを取得し、それを配列 +.Fa gidset +に保存します。 +パラメータ +.Fa gidsetlen +は +.Fa gidset +内に配置できるエントリの数を示します。 +.Fn getgroups +は、 +.Fa gidset +に返された実際のグループの数を返します。これは +.Fn sysconf _SC_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 , +.Xr sysconf 3 +.Sh 歴史 +.Fn getgroups +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getitimer.2 b/ja_JP.eucJP/man/man2/getitimer.2 new file mode 100644 index 0000000000..b6fe2915ad --- /dev/null +++ b/ja_JP.eucJP/man/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 +.\" +.Dd May 16, 1995 +.Dt GETITIMER 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getitimer , +.Nm setitimer +.Nd インターバルタイマの値を取得/設定する +.Sh 書式 +.Fd #include <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 解説 +システムは、 +.Ao Pa sys/time.h Ac +で定義された 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 つのマクロは +.Ao Pa sys/time.h Ac +で定義されます。 +.Fa timerclear +は時間の値を 0 に設定し、 +.Fa timerisset +は時間値が 0 でないかどうか検査し、 +.Fa timercmp +は 2 つの時間の値を比較します。 +.Sh 戻り値 +呼び出しが正常に完了すると値 0 が返されます。 +エラーが起きた場合は値 -1 が返され、 +より正確なエラーコードがグローバル変数 +.Va errno +に設定されます。 +.Sh エラー +.Fn getitimer +と +.Fn setitimer +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa value +パラメータが無効なアドレスを指定しました。 +.It Bq Er EINVAL +.Fa value +パラメータが、大きすぎて処理できない時間を指定しました。 +.El +.Sh 関連項目 +.Xr gettimeofday 2 , +.Xr select 2 , +.Xr sigvec 2 , +.Xr clocks 7 +.Sh 歴史 +.Fn getitimer +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getlogin.2 b/ja_JP.eucJP/man/man2/getlogin.2 new file mode 100644 index 0000000000..1ebf39a3fd --- /dev/null +++ b/ja_JP.eucJP/man/man2/getlogin.2 @@ -0,0 +1,159 @@ +.\" 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.10.2.1 1999/09/18 16:18:59 phantom Exp % +.\" +.Dd June 9, 1993 +.Dt GETLOGIN 2 +.Os BSD 4.4 +.Sh 名称 +.Nm getlogin , +.Nm setlogin +.Nd ログイン名を取得/設定する +.Sh 書式 +.Fd #include <unistd.h> +.Ft char * +.Fn getlogin void +.Ft int +.Fn setlogin "const char *name" +.Sh 解説 +.Fn getlogin +ルーチンは、 +.Fn setlogin +で設定した現在のセッションに対応する +ユーザのログイン名を返します。通常、名前は +セッションが作成された時点でログインシェルに +対応し、ログインシェルから派生する全てのプロセスに継承されます +(これらのプロセスが別のユーザ ID を想定している場合、たとえば、 +.Xr su 1 +が使用されるときでも該当します)。 +.Pp +.Fn setlogin +は、現在のセッションに対応するユーザのログイン名を +.Fa name +に対応させます。 +この呼び出しはスーパユーザに制限されており、 +新しいセッションがユーザのために +作成されるときにだけ使用されるのが普通です +(たとえば、ログイン時、またはリモートシェルが +起動されるときです)。 +.Pp +.Em 注釈: +`セッション' ごとに 1 つの `ログイン名' しかありません。 +.Pp +プロセスが、確実に親のセッションから切り離されるような +適切なステップを取った後にのみ、 +.Fn setlogin +が呼び出されるようにすることは +.Em 非常に +重要です。 +.Fn setsid +システムコール +を行なうのがこれをする +.Em 唯一の +方法です。 +.Fn daemon +ライブラリは +.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 setlogin +の呼び出しが成功すると +値 0 が返されます。 +.Fn setlogin +が処理を失敗すると値 -1 が返され、エラーコードがグローバル位置 +.Va errno +に設定されます。 +.Sh エラー +これらの呼び出しによって以下のエラーが返される可能性があります。 +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa name +パラメータで無効なアドレスを与えました。 +.It Bq Er EINVAL +.Fa name +パラメータが長すぎる文字列を指しています。ログイン名は +.Pf ( Ao Pa sys/param.h Ac の ) +.Dv MAXLOGNAME +文字に制限されます。現時点ではヌルを含めて 17 です。 +.It Bq Er EPERM +ログイン名を設定しようとした呼び出し元が +スーパユーザではありませんでした。 +.El +.Sh 関連項目 +.Xr setsid 2 , +.Xr daemon 3 +.Sh バグ +システムの以前のバージョンでは、 +.Fn getlogin +はプロセスがログイン端末に対応していない限り +処理に失敗しました。現在では、 +.Pf ( Fn setlogin +を使用して) プロセスに制御端末がないときでも +getlogin は正常に完了します。初期のバージョンでは、 +.Fn getlogin +が返す値はユーザ ID をチェックせずには信頼 +することができませんでした。 +移植性の高いプログラムはおそらくまだこのチェックを行なっているはずです。 +.Sh 歴史 +.Fn getlogin +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/getpeername.2 b/ja_JP.eucJP/man/man2/getpeername.2 new file mode 100644 index 0000000000..c240acc6e4 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getpeername.2 @@ -0,0 +1,110 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt GETPEERNAME 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getpeername +.Nd 接続されたピア (通信相手) の名前を得る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn getpeername "int s" "struct sockaddr *name" "int *namelen" +.Sh 解説 +.Fn getpeername +は、ソケット +.Fa s +に接続されたピア (通信相手) の名前を返します。 +.Fa namelen +パラメータには、 +.Fa name +が指す空間の量を示す値を入れておく必要があります。 +戻る時に、これには返された名前の +実際のサイズ (バイト単位) が入れられます。 +準備されたバッファが小さすぎる場合、名前は切り捨てられます。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn getpeername +は +.Va getpeername +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va getpeername +システムコールは +.Fn _thread_sys_getpeername +にアセンブルされ、 +.Fn getpeername +は、読取りと書込みについて +.Va s +をロックしてから +.Fn _thread_sys_getpeername +を呼び出す関数として実装されています。戻る前に +.Fn getpeername +は +.Va s +をアンロックします。 +.Sh 戻り値 +呼び出しが正常に完了すると 0 が返され、処理を失敗すると -1 が返されます。 +.Sh エラー +以降の場合を除いて呼び出しは処理に成功します。 +.Bl -tag -width ENOTSOCKAA +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +引数 +.Fa s +はソケットではなくファイルです。 +.It Bq Er ENOTCONN +ソケットが接続されていません。 +.It Bq Er ENOBUFS +操作を実行するための十分なリソースがシステムにありません。 +.It Bq Er EFAULT +.Fa name +パラメータはプロセスアドレス空間の外側の領域を指定しています。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr bind 2 , +.Xr getsockname 2 , +.Xr socket 2 +.Sh 歴史 +.Fn getpeername +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getpgrp.2 b/ja_JP.eucJP/man/man2/getpgrp.2 new file mode 100644 index 0000000000..64af0fd82a --- /dev/null +++ b/ja_JP.eucJP/man/man2/getpgrp.2 @@ -0,0 +1,119 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt GETPGRP 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getpgrp +.Nd プロセスグループを得る +.Sh 書式 +.Fd #include <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 関連項目 +.Xr getsid 2 , +.Xr setpgid 2 , +.Xr termios 4 +.Sh 歴史 +.Fn getpgrp +関数は +.Bx 4.0 +で登場しました。 +.Fn getpgid +関数呼び出しは System V Release 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/ja_JP.eucJP/man/man2/getpid.2 b/ja_JP.eucJP/man/man2/getpid.2 new file mode 100644 index 0000000000..8197393d8e --- /dev/null +++ b/ja_JP.eucJP/man/man2/getpid.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. +.\" +.\" @(#)getpid.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/getpid.2,v 1.7.2.1 1999/08/29 14:49:01 peter Exp % +.\" +.Dd June 4, 1993 +.Dt GETPID 2 +.Os BSD 4 +.Sh 名称 +.Nm getpid , +.Nm getppid +.Nd 親または呼び出しプロセスの識別子を得る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <unistd.h> +.Ft pid_t +.Fn getpid void +.Ft pid_t +.Fn getppid void +.Sh 解説 +.Fn getpid +は呼び出しプロセスのプロセス ID を返します。 +ID はユニークであることが保証されており、 +一時的なファイルの名前を構築するのに便利です。 +.Pp +.Fn getppid +は呼び出しプロセスの親のプロセス ID を返します。 +.Sh エラー +.Fn getpid +関数と +.Fn getppid +関数は必ず正常に完了するので、エラーを示すための戻り値はありません。 +.Sh 関連項目 +.Xr gethostid 3 +.Sh 規格 +.Fn getpid +関数と +.Fn getppid +関数は +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn getpid +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getpriority.2 b/ja_JP.eucJP/man/man2/getpriority.2 new file mode 100644 index 0000000000..0d26761128 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getpriority.2 @@ -0,0 +1,137 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt GETPRIORITY 2 +.Os BSD 4 +.Sh 名称 +.Nm getpriority , +.Nm setpriority +.Nd プログラムスケジュール優先順位を取得/設定する +.Sh 書式 +.Fd #include <sys/time.h> +.Fd #include <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 +の 1 つであり、 +.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 がエラーであるか、 +または正当な値であるか判定できます。エラーがない場合 +.Fn setpriority +呼び出しは 0 を返し、エラーがある場合は -1 を返します。 +.Sh エラー +.Fn getpriority +と +.Fn setpriority +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er ESRCH +指定された +.Fa which +と +.Fa who +の値を使用して、プロセスが見つかりませんでした。 +.It Bq Er EINVAL +.Fa which +が +.Dv PRIO_PROCESS , +.Dv PRIO_PGRP +または +.Dv PRIO_USER +のどれでもありませんでした。 +.El +.Pp +.Bl -tag -width Er +上記のエラーだけでなく、 +.Fn setpriority +は次の場合に失敗します。 +.It Bq Er EPERM +プロセスは検出されたものの、その実効 ID も実ユーザ ID の +どちらも、呼び出し側の実効ユーザ ID に一致しませんでした。 +.It Bq Er EACCES +スーパユーザでないものがプロセスの優先順位を下げようとしました。 +.El +.Sh 関連項目 +.Xr nice 1 , +.Xr fork 2 , +.Xr renice 8 +.Sh 歴史 +.Fn getpriority +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getrlimit.2 b/ja_JP.eucJP/man/man2/getrlimit.2 new file mode 100644 index 0000000000..4d1e908494 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getrlimit.2 @@ -0,0 +1,184 @@ +.\" 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.8.2.1 1999/08/29 14:49:02 peter Exp % +.\" +.Dd June 4, 1993 +.Dt GETRLIMIT 2 +.Os BSD 4 +.Sh 名称 +.Nm getrlimit , +.Nm setrlimit +.Nd 最大システムリソース消費を制御する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/time.h> +.Fd #include <sys/resource.h> +.Ft int +.Fn getrlimit "int resource" "struct rlimit *rlp" +.Ft int +.Fn setrlimit "int resource" "const struct rlimit *rlp" +.Sh 解説 +現在のプロセス、およびそれが作成する各プロセスによるシステムリソースの +消費のリミットは、 +.Fn getrlimit +によって得ることができ、 +.Fn setrlimit +呼び出しで設定できます。 +.Pp +.Fa resource +パラメータは次のうちの 1 つです。 +.Bl -tag -width RLIMIT_FSIZEAA +.It Li RLIMIT_CORE +作成できる +.Xr core 5 +ファイルの最大サイズ (バイト単位) +.It Li RLIMIT_CPU +各プロセスが使用する CPU 時間の最大量 (秒単位) +.It Li RLIMIT_DATA +プロセス用のデータセグメントの最大サイズ (バイト単位)。これは、プログラムが +そのブレークを +.Xr sbrk 2 +システムコールでどのくらい遠くまで延長できるかを定義します。 +.It Li RLIMIT_FSIZE +作成できるファイルの最大サイズ (バイト単位) +.It Li RLIMIT_MEMLOCK +プロセスが +.Xr mlock 2 +関数を使用して、プロセスをメモリにロックできる +最大サイズ (バイト単位)。 +.It Li RLIMIT_NOFILE +このプロセスが開けるファイルの最大数 +.It Li RLIMIT_NPROC +このユーザ ID が同時に利用できるプロセスの最大数 +.It Li RLIMIT_RSS +増加させて良いプロセスの常駐セットサイズの最大サイズ (バイト単位)。 +これはプロセスに与えられる物理メモリの量に制限を課します。 +メモリが逼迫してシステムがメモリを回収する際に、 +宣言された常駐セットサイズを越えるプロセスを回収対象として選択します。 +.It Li RLIMIT_STACK +プロセスのスタックセグメントの最大サイズ (バイト数)。これによって、 +プログラムのスタックセグメントがどのくらい遠くまで延長できるか定義できます。 +スタック延長はシステムによって自動的に実行されます。 +.El +.Pp +リソースリミットはソフトリミットおよびハードリミットとして指定されます。 +ソフトリミットを越えた場合、 +プロセスはシグナル (たとえば、CPU 時間またはファイルサイズを越えたかどうか) +を受信する可能性がありますが、 +ハードリミットに到達する (またはリソースリミットを修正する) +まで実行を継続することはできます。 +.Em 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 戻り値 +戻り値 0 は呼び出しが正常に完了し、リソースリミットを変更しているか、 +またはリソースリミットを返している +ことを示します。戻り値 -1 はエラーが起こったことを示し、 +エラーコードはグローバル変数 +.Va errno +に保存されます。 +.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 +.Sh 歴史 +.Fn getrlimit +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getrusage.2 b/ja_JP.eucJP/man/man2/getrusage.2 new file mode 100644 index 0000000000..fb106813cf --- /dev/null +++ b/ja_JP.eucJP/man/man2/getrusage.2 @@ -0,0 +1,165 @@ +.\" 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.9.2.1 1999/08/29 14:49:02 peter Exp % +.\" +.Dd June 4, 1993 +.Dt GETRUSAGE 2 +.Os BSD 4 +.Sh 名称 +.Nm getrusage +.Nd リソース利用についての情報を得る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/time.h> +.Fd #include <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 +(一つ以上の) プロセスのためにシステムが処理を実行するために消費した時間の合計 +.It Fa ru_maxrss +使用された常駐セットサイズの最大 (キロバイト単位) +.It Fa ru_ixrss +他のプロセスとの間でも共有されていたテキストセグメント +によって使用されたメモリを示す合計値。 +この値は「キロバイト * 実行のチック数」の単位で表現されます。 +チックは統計用のクロックチックです。統計用クロックの周波数は +.Fn sysconf _SC_CLOCK_TCK +チック/秒です。 +.It Fa ru_idrss +プロセスのデータセグメントに常駐している非共有メモリ量の合計値 +(「キロバイト * 実行のチック数」の単位で表現されます)。 +.It Fa ru_isrss +プロセスのスタックセグメントに常駐している非共有メモリ量の合計値 +(「キロバイト * 実行のチック数」の単位で表現されます)。 +.It Fa ru_minflt +入出力アクティビティなしにサービスを受けたページフォルトの数。 +ここで、入出力アクティビティは、再割り当てを待っているページのリストから +ページフレームを再生することで回避されます。 +.It Fa ru_majflt +入出力アクティビティを必要としたサービスを受けたページフォルトの数 +.It Fa ru_nswap +プロセスがメインメモリの外へスワップされた回数 +.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 戻り値 +処理が正常に完了すると +.Fn getrusage +は 0 を返します。そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn getrusage +関数は次の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa who +パラメータが有効な値ではありません。 +.It Bq Er EFAULT +.Fa rusage +パラメータによって指定されるアドレスは、プロセスアドレス空間の +有効な部分内にありません。 +.El +.Sh 関連項目 +.Xr gettimeofday 2 , +.Xr wait 2 , +.Xr clocks 7 +.Sh バグ +まだ終了していない子プロセスに関する情報を得る方法はありません。 +.Sh 歴史 +.Fn getrusage +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getsid.2 b/ja_JP.eucJP/man/man2/getsid.2 new file mode 100644 index 0000000000..5ffa0e8d2b --- /dev/null +++ b/ja_JP.eucJP/man/man2/getsid.2 @@ -0,0 +1,79 @@ +.\" 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.2.2.1 1999/08/29 14:49:02 peter Exp % +.\" +.Dd August 19, 1997 +.Dt GETSID 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getsid +.Nd プロセスセッションを得る +.Sh 書式 +.Fd #include <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 setsid +関数は +.Fx 3.0 +で登場しました。 +.Fn getsid +関数呼び出しは +.At V +での使用法に由来しています。 diff --git a/ja_JP.eucJP/man/man2/getsockname.2 b/ja_JP.eucJP/man/man2/getsockname.2 new file mode 100644 index 0000000000..142cfbcf3a --- /dev/null +++ b/ja_JP.eucJP/man/man2/getsockname.2 @@ -0,0 +1,110 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt GETSOCKNAME 2 +.Os BSD 4.2 +.Sh 名称 +.Nm getsockname +.Nd ソケットの名前を得る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn getsockname "int s" "struct sockaddr *name" "int *namelen" +.Sh 解説 +.Fn getsockname +は指定のソケットについて現在の +.Fa name +を返します。 +.Fa namelen +パラメータは、 +.Fa name +が指す空間の量を示すように初期化しておく必要があります。戻る時には +返された名前の実際のサイズ (バイト単位) が入ります。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn getsockname +は +.Va getsockname +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va getsockname +システムコールは +.Fn _thread_sys_getsockname +にアセンブルされ、 +.Fn getsockname +は、読み書きについて +.Va fd +をロックしてから +.Fn _thread_sys_getsockname +を呼び出す +関数として実装されています。戻る前に +.Fn getsockname +は +.Va fd +をアンロックします。 +.Sh 戻り値 +呼び出しが正常に完了すると 0 が返され、処理に失敗すると -1 が返されます。 +.Sh エラー +呼び出しは、次の場合を除いて正常に完了します。 +.Bl -tag -width ENOTSOCKAA +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +引数 +.Fa s +はソケットではなくファイルです。 +.It Bq Er ENOBUFS +操作を実行するためにシステム内で利用できるリソースが不足しています。 +.It Bq Er EFAULT +.Fa name +パラメータが、プロセスアドレス空間の有効な部分内でないメモリを指しています。 +.El +.Sh 関連項目 +.Xr bind 2 , +.Xr getpeername 2 , +.Xr socket 2 +.Sh バグ +UNIX ドメイン内のソケットにバインドされた名前にアクセスできません。 +.Xr getsockname +は、長さが 0 の名前を返します。 +.Sh 歴史 +.Fn getsockname +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getsockopt.2 b/ja_JP.eucJP/man/man2/getsockopt.2 new file mode 100644 index 0000000000..8b2f3b3d31 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getsockopt.2 @@ -0,0 +1,388 @@ +.\" 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.9.2.2 1999/08/29 14:49:03 peter Exp % +.\" +.Dd May 2, 1995 +.Dt GETSOCKOPT 2 +.Os BSD 4.3r +.Sh 名称 +.Nm getsockopt , +.Nm setsockopt +.Nd ソケットについてのオプションの取得と設定 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn getsockopt "int s" "int level" "int optname" "void *optval" "int *optlen" +.Ft int +.Fn setsockopt "int s" "int level" "int optname" "const void *optval" "int optlen" +.Sh 解説 +.Fn getsockopt +と +.Fn setsockopt +は、ソケットに対応するオプションを操作します。 +.\".Em options +オプションは複数のプロトコルレベルに存在する可能性があります。 +これらは必ず最も上の +.Dq ソケット +レベルに存在します。 +.Pp +ソケットオプションを操作するときは、オプションが常駐するレベル +およびオプションの名前を指定する +必要があります。ソケットレベルでオプションを操作するには +.Fa level +として +.Dv SOL_SOCKET +を指定します。 +他のレベルでオプションを操作するには、オプションを制御する該当する +プロトコルのプロトコル番号を指定します。たとえば、オプションが +.Tn TCP +プロトコルによって解釈されることを指示するには、 +.Fa level +を +.Tn TCP +のプロトコル番号に設定する必要があります。 +.Xr getprotoent 3 +を参照してください。 +.Pp +パラメータ +.Fa optval +と +.Fa optlen +は、 +.Fn setsockopt +がオプション値にアクセスするために使用されます。 +.Fn getsockopt +の場合、これらは要求されたオプションの値が返される +バッファを識別します。 +.Fn getsockopt +の場合、 +.Fa optlen +は「値−結果」パラメータであり、初期には +.Fa optval +の指すバッファのサイズが入っており、戻り時に修正されて +返された値の実際のサイズを示すようになります。 +オプション値を指定しないか、またはオプション値が返されない場合、 +.Fa optval +に NULL を指定してもかまいません。 +.Pp +.Fa optname +および指定のオプションは、解釈されずに、 +解釈用の該当プロトコルモジュールに渡されます。 +インクルードファイル +.Ao Pa sys/socket.h Ac +には後述するソケットレベルオプション用の定義が入っています。 +他のプロトコルレベルのオプションは形式と名称がさまざまです。 +マニュアルのセクション 4 の該当するエントリを参照してください。 +.Pp +ほとんどのソケットレベルのオプションは +.Fa optval +用に +.Fa int +パラメータを使用します。 +.Fn setsockopt +の場合、ブール演算を有効にするためにはパラメータは 0 でない必要があり、 +オプションを無効にする場合は 0 である必要があります。 +.Dv SO_LINGER +は、 +.Ao Pa sys/socket.h Ac +で定義された +.Fa struct linger +パラメータを使用します。これは、 +目的の状態のオプションとリンガーインターバル (後述) を指定します。 +.Dv SO_SNDTIMEO +と +.Dv SO_RCVTIMEO +は、 +.Ao Pa sys/time.h Ac +で定義された +.Fa struct timeval +パラメータを使用します。 +.Pp +以降のオプションがソケットレベルで認識されます。 +別記した場合を除いて、各オプションが +.Fn getsockopt +で調べられ、 +.Fn setsockopt +で設定されます。 +.Bl -column SO_OOBINLINE -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_TYPE Ta "ソケットのタイプを取得します (取得のみ)" +.It Dv SO_ERROR Ta "ソケットのエラーを取得してクリアします (取得のみ)" +.El +.Pp +.Dv SO_DEBUG +は下層のプロトコルモジュール内でデバッグを有効にします。 +.Dv SO_REUSEADDR +は、 +.Xr bind 2 +呼び出しで指定されたアドレスを検証するのに使用する規則で、 +ローカルアドレスの再利用が可能であることを示します。 +.Dv SO_REUSEPORT +は、ポートをバインドする前の複数のプロセスがすべて +.Dv SO_REUSEPORT +を設定している場合に、 +複数のプロセスによる完全に重複したバインドが可能になるようにします。 +このオプションは、プログラムの複数のインスタンスそれぞれが、 +バインドされたポートを宛先とする UDP/IP マルチキャストまたは +ブロードキャストのデータグラムを受信できるようにします。 +.Dv SO_KEEPALIVE +は接続されたソケット上でメッセージの周期的な送信を有効にします。 +接続された一方がこれらのメッセージに応答できない場合は +接続が破壊されていると考えられ、ソケットを使用しているプロセスは +データを送信しようとするときに +.Dv SIGPIPE +シグナルによって通知を受けます。 +.Dv SO_DONTROUTE +は発信メッセージが標準の経路設定機能をバイパスする必要があることを示します。 +代わりに、メッセージは、宛先アドレスのネットワーク部分に従って +該当するネットワークインタフェースに転送されます。 +.Pp +.Dv SO_LINGER +は送信されていないメッセージがソケットの待ち行列にあり、しかも +.Xr close 2 +が実行される時に行なわれる処置を制御します。 +ソケットがデータの信頼できる配信を確約し、しかも +.Dv SO_LINGER +が設定されている場合、 +データを送信できるまで または情報を配信できない +(リンガーインターバルと呼ばれるタイムアウト時間は、 +.Dv SO_LINGER +が要求されるときに +.Fn setsockopt +呼び出し内で秒単位で指定されます) と判定するまで、システムはプロセスを +.Xr close 2 +上でブロックします。 +.Dv SO_LINGER +が無効の状態で +.Xr close 2 +が起動されると、システムは、プロセスが可能な限り迅速に処理を +継続できる方法でクローズ処理を行います。 +.Pp +オプション +.Dv SO_BROADCAST +は、ソケット上でブロードキャストデータグラムを送信するパーミッションを +要求します。ブロードキャストは、システムの初期バージョンでは特権操作でした。 +バンド外のデータをサポートするプロトコルで、 +.Dv SO_OOBINLINE +オプションは、バンド外のデータが受信された順番で通常の +データ入力待ち行列に配置されることを要求します。そして、これは +.Dv MSG_OOB +フラグなしに +.Xr recv 2 +呼び出しまたは +.Xr read 2 +呼び出しでアクセスできます。 +常に このオプションが設定されているかのように動作する +プロトコルもあります。 +.Dv SO_SNDBUF +と +.Dv SO_RCVBUF +は、それぞれ、出力および入力用に割り当てられる通常のバッファサイズを +調整するオプションです。 +バッファのサイズは、高ボリューム接続のために増加することができますし、 +着信データの可能なバックログを +制限するために減少させることもできます。 +システムはこれらの値について 1 つの絶対最大値を設定します。この +最大値は +.Xr sysctl 3 +MIB 変数 +.Dq Li kern.ipc.maxsockbuf +によってアクセスできます。 +.Pp +.Dv SO_SNDLOWAT +は出力操作に最小カウントを設定するオプションです。ほとんどの出力操作は、 +送信用のプロトコルにデータを配信し、フロー制御のためにブロックしながら +呼び出しによって与えられたすべてのデータを処理します。 +ノンブロッキング出力操作は、ブロックなしのフロー制御に従って +許容される限界までデータを処理しますが、フロー制御が +最低基準値または要求全体のいずれか小さい方を処理することを許容しない +場合はデータを処理しません。ソケットへの書込み能力を試験する +.Xr select 2 +操作が真で返るのは、最低基準値を処理できる場合だけです。 +.Dv SO_SNDLOWAT +のデフォルト値はネットワーク効率性のために +適切なサイズ、多くの場合は 1024、に設定されます。 +.Dv SO_RCVLOWAT +は入力操作の最小カウントを設定するオプションです。一般に、受信呼び出しは、 +いくらかの (0 でない) データが受信されるまでブロックしてから、 +利用できる量または要求された量の少ない方とともに戻ります。 +.Dv SO_RCVLOWAT +のデフォルト値は 1 です。 +.Dv SO_RCVLOWAT +がもっと大きな値に設定されている場合、 +受信呼び出しのブロックは通常、最低基準値または要求された量の小さい方が +受信されるまで待機します。 +受信呼び出しは、エラーが発生したり、シグナルが捕らえられたり、 +または受信待ち行列内の次のデータのタイプが返された +ものと異なる場合は、最低基準値より小さい値でも戻ることがあります。 + +.Pp +.Dv SO_SNDTIMEO +は出力操作についてタイムアウト値を設定するオプションです。 +これは、出力操作完了の待機を制限するために使用される秒数、 +マイクロ秒数を +.Fa struct timeval +パラメータで指定します。送信操作が +指定された時間以上ブロックされた場合、部分的なカウントで返るか、 +またはデータが送信されていない場合はエラー +.Er EWOULDBLOCK +で返ります。現在の実装では、このタイマは追加の各データがプロトコルに +配信されるたびに再起動され、これはサイズが出力用の最低基準値から +最高基準値の範囲に至る出力部分に適用されることを意味します。 +.Dv SO_RCVTIMEO +は入力操作についてタイムアウト値を設定するオプションです。 +これは入力操作完了の待機を +制限するために使用される秒数、マイクロ秒数を +.Fa struct timeval +パラメータで指定します。現在の実装では、このタイマーは +追加のデータがプロトコルによって受信されるたびに再起動されるので、 +制限は実際には休止期間のタイマとなります。 +追加のデータを受信することなく受信操作がこれだけの時間について +ブロックされた場合、短いカウントで返るか、 +またはデータが受信されていない場合はエラー +.Er EWOULDBLOCK +で返ります。 +.Pp +最後に、 +.Dv SO_TYPE +と +.Dv SO_ERROR +は +.Fn getsockopt +でだけ使用されるオプションです。 +.Dv SO_TYPE +では +.Dv SOCK_STREAM +のようなソケットのタイプが返ります。これは +スタートアップ時にソケットを継承するようなサーバに便利です。 +.Dv SO_ERROR +はソケット上で延期中のエラーを返し、エラー状態をクリアします。 +これは接続されたデータグラムソケット上の非同期的エラーをチェックしたり、 +その他の非同期エラーをチェックするのに使用できます。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリでは、 +.Fn getsockopt +は +.Va getsockopt +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va getsockopt +システムコールは +.Fn _thread_sys_getsockopt +にアセンブルされ、 +.Fn getsockopt +は、読み書きについて +.Va s +をロックしてから、 +.Fn _thread_sys_getsockopt +を呼び出す関数として実装されています。戻る前に +.Fn getsockopt +は +.Va s +をアンロックします。 +.Pp +非スレッドライブラリでは、 +.Fn setsockopt +は +.Va setsockopt +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va setsockopt +システムコールは +.Fn _thread_sys_setsockopt +にアセンブルされ、 +.Fn setsockopt +は、読み書きについて +.Va s +をロックしてから、 +.Fn _thread_sys_setsockopt +を呼び出す関数として実装されています。戻る前に +.Fn setsockopt +は +.Va s +をアンロックします。 +.Sh 戻り値 +呼び出しが正常に完了すると 0 が返され、処理を失敗すると -1 が返されます。 +.Sh エラー +呼び出しは次の場合を除いて正常です。 +.Bl -tag -width ENOPROTOOPTAA +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +引数 +.Fa s +がソケットではなくファイルです。 +.It Bq Er ENOPROTOOPT +指示されたレベルでオプションは存在しません。 +.It Bq Er EFAULT +.Fa optval +が指すアドレスがプロセスアドレス空間の有効な部分にありません。 +.Fn getsockopt +では、 +.Fa optlen +がプロセスアドレス空間の有効な部分でない場合も、 +このエラーが返される可能性があります。 +.El +.Sh 関連項目 +.Xr ioctl 2 , +.Xr socket 2 , +.Xr getprotoent 3 , +.Xr sysctl 3 , +.Xr protocols 5 , +.Xr sysctl 8 +.Sh バグ +ソケットオプションのいくつかはシステムの低いレベルで処理される必要があります。 +.Sh 歴史 +.Fn getsockopt +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/gettimeofday.2 b/ja_JP.eucJP/man/man2/gettimeofday.2 new file mode 100644 index 0000000000..794f771176 --- /dev/null +++ b/ja_JP.eucJP/man/man2/gettimeofday.2 @@ -0,0 +1,127 @@ +.\" 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.7.2.2 1999/09/18 16:18:59 phantom Exp % +.\" +.Dd May 26, 1995 +.Dt GETTIMEOFDAY 2 +.Os BSD 4 +.Sh 名称 +.Nm gettimeofday , +.Nm settimeofday +.Nd 日付および時刻を取得/設定する +.Sh 書式 +.Fd #include <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 +の指す構造体は +.Ao Pa sys/time.h Ac +内に次のように定義されています。 +.Pp +.Bd -literal +struct timeval { + long tv_sec; /* 1970年1月1日からの秒数 */ + long tv_usec; /* およびマイクロ秒数 */ +}; + +struct timezone { + int tz_minuteswest; /* グリニッジから西方向への偏差 */ + int tz_dsttime; /* 夏時間補正のタイプ */ +}; +.Ed +.Pp +.Fa timezone +構造体は、ローカル時間帯 (グリニッジから西向きに分単位で測定) と +フラグを含みます。フラグがゼロでない場合は、一年の適切な期間に +夏時間がローカルに適用されることを示します。 +.Pp +スーパユーザだけが時刻または時間帯を設定できます。 +システムが安全モード +.Pf ( Xr init 8 +を参照)で実行される場合は、時刻は進行させることだけができます。 +この制限が課されるのは、悪意のあるスーパユーザがファイルに任意の +タイムスタンプを設定するのを防止するためです。 +システム時刻は、システムが安全モードにあっても +.Xr adjtime 2 +システムコールを使用して後方に調整できます。 +.Sh 戻り +戻り値 0 は呼び出しが正常に完了したことを示します。 +戻り値 -1 はエラーが起こったことを示し、エラーコードはグローバル変数 +.Va errno +に保存されます。 +.Sh エラー +次のエラーコードが +.Va errno +に設定されます。 +.Bl -tag -width [EFAULT] +.It Bq Er EFAULT +引数アドレスが無効なメモリを参照しました。 +.It Bq Er EPERM +スーパユーザ以外のユーザが時刻を設定しようとしました。 +.El +.Sh 関連項目 +.Xr date 1 , +.Xr adjtime 2 , +.Xr ctime 3 , +.Xr clocks 7 , +.Xr timed 8 +.Sh 歴史 +.Fn gettimeofday +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/getuid.2 b/ja_JP.eucJP/man/man2/getuid.2 new file mode 100644 index 0000000000..0e7f3b8930 --- /dev/null +++ b/ja_JP.eucJP/man/man2/getuid.2 @@ -0,0 +1,85 @@ +.\" 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.6.2.1 1999/08/29 14:49:04 peter Exp % +.\" +.Dd June 4, 1993 +.Dt GETUID 2 +.Os BSD 4 +.Sh 名称 +.Nm getuid , +.Nm geteuid +.Nd ユーザ識別子を得る +.Sh 書式 +.Fd #include <unistd.h> +.Fd #include <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 set-user-ID +モードプロセスの実行中にプロセスに追加のパーミッションを与えるので、 +.Fn getuid +を使用して呼び出しプロセスの real-user-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/ja_JP.eucJP/man/man2/i386_get_ioperm.2 b/ja_JP.eucJP/man/man2/i386_get_ioperm.2 new file mode 100644 index 0000000000..27e76f9ba0 --- /dev/null +++ b/ja_JP.eucJP/man/man2/i386_get_ioperm.2 @@ -0,0 +1,84 @@ +.\" 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.2.2.1 1999/08/29 14:47:00 peter Exp % +.\" +.Dd July 27, 1998 +.Os +.Dt I386_GET_IOPERM 2 +.Sh 名称 +.Nm i386_get_ioperm , +.Nm i386_set_ioperm +.Nd i386 入出力ポート空間へのプロセスごとのアクセスを管理する +.Sh 書式 +.Fd #include <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 戻り値 +正常に完了すると、 +.Fn i386_get_ioperm +と +.Fn i386_set_ioperm +は値 0 を返します。そうでない場合は -1 が返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn i386_get_ioperm +と +.Fn i386_set_ioperm +は次の場合に失敗します。 +.Bl -tag -width [EINVAL] +.It Bq Er EINVAL +.Fa start +または +.Fa length +引数に無効な範囲が指定されました。 +.It Bq Er EPERM +i386_set_ioperm の呼び出し側がスーパユーザではありませんでした。 +.El +.Sh 作者 +このマニュアルページは +.An Jonathan Lemon +が作成しました。 diff --git a/ja_JP.eucJP/man/man2/i386_get_ldt.2 b/ja_JP.eucJP/man/man2/i386_get_ldt.2 new file mode 100644 index 0000000000..c810b1b502 --- /dev/null +++ b/ja_JP.eucJP/man/man2/i386_get_ldt.2 @@ -0,0 +1,99 @@ +.\" 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.4.2.1 1999/08/29 14:47:00 peter Exp % +.\" +.Dd September 20, 1993 +.Dt I386_GET_LDT 2 +.Os FreeBSD +.Sh 名称 +.Nm i386_get_ldt , +.Nm i386_set_ldt +.Nd i386 プロセスごとのローカル記述子テーブルエントリを管理する +.Sh 書式 +.Fd #include <machine/segments.h> +.Fd #include <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 +としては segment_descriptor +または gate_descriptor +のどちらかを指定でき、これらは +.\".Fd <i386/segments.h> +.Ao Pa i386/segments.h Ac +内に定義されています。これらの構成要素は、アーキテクチャに対応して +ばらばらになったビットフィールドとして定義 +されているので、それらを組み立てる際には注意を払う必要があります。 +.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 [EINVAL] +.It Bq Er EINVAL +.Fa start_sel +または +.Fa num_sels +について不適切なパラメータが使用されました。 +.It Bq Er EACESS +呼び出し側が保護機構を欺くかまたは障害を起こす記述子を使おうとしました。 +.El +.Sh 参考文献 +i386 Microprocessor Programmer's Reference Manual, Intel +.Sh 警告 +これを使用してプロセスをまったくダメにすることができます。 diff --git a/ja_JP.eucJP/man/man2/i386_vm86.2 b/ja_JP.eucJP/man/man2/i386_vm86.2 new file mode 100644 index 0000000000..4e70431d3c --- /dev/null +++ b/ja_JP.eucJP/man/man2/i386_vm86.2 @@ -0,0 +1,99 @@ +.\" 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.2.2.1 1999/08/29 14:47:03 peter Exp % +.\" +.Dd July 27, 1998 +.Os +.Dt I386_VM86 2 +.Sh 名称 +.Nm i386_vm86 +.Nd vm86 に関連する関数を制御する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <machine/sysarch.h> +.Fd #include <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_SET_VME +.\" .It Dv VM86_GET_VME +.\" .It Dv VM86_INTCALL +.El +.Pp +vm86 モードに入るには、vm86 用に正しく設定したマシンコンテキスト、そして +.Em PSL_VM +ビットを設定して +.Xr sigreturn 2 +を呼び出します。 +シグナルの配信時に制御がプロセスに戻ります。 +.Sh 戻り値 +処理が正常に完了すると +.Fn i386_vm86 +は値 0 を返します。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn i386_vm86 +は次の場合に失敗します。 +.Bl -tag -width [ENOMEM] +.It Bq Er EINVAL +カーネルに vm86 サポートがないか、または無効な関数が指定されました。 +.It Bq Er ENOMEM +カーネルデータ構造体を初期化するのに十分なメモリがありません。 +.Sh 作者 +このマニュアルページは +.An Jonathan Lemon +が作成しました。 diff --git a/ja_JP.eucJP/man/man2/intro.2 b/ja_JP.eucJP/man/man2/intro.2 new file mode 100644 index 0000000000..17444ced8c --- /dev/null +++ b/ja_JP.eucJP/man/man2/intro.2 @@ -0,0 +1,782 @@ +.\" 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 +.\" +.Dd February 27, 1995 +.Dt INTRO 2 +.Os BSD 4 +.Sh 名称 +.Nm intro +.Nd システムコールとエラー番号の紹介 +.Sh 書式 +.Fd #include <errno.h> +.Sh 解説 +このセクションでは、システム +コール、エラー戻り、その他の共通な定義およびコンセプト +の概要について説明します。 +.\".Pp +.\".Sy System call restart +.\".Pp +.\"<more later...> +.Sh 戻り値 +ほとんどすべてのシステムコールが外部識別子 errno +によって参照されるエラー番号を備えています。 +.Aq Pa 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 +以降に示すのはエラーの完全なリストであり、これらの名前は +.Aq Pa sys/errno.h +に記載されています。 +.Bl -hang -width Ds +.It Er 0 Em "Error 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 function call" +「関数呼び出しが割り込まれました」 +割り込み可能な関数の実行中に、 +非同期シグナル (たとえば、 +.Dv SIGINT +または +.Dv SIGQUIT ) +がプロセスによって捕らえられました。 +シグナルハンドラが正常に戻ると、 +割り込みされた関数呼び出しがエラー状態を返したように見えます。 +.It Er 5 EIO Em "Input/output error" +「入出力エラーです」 +何らかの物理的な入力エラーまたは出力エラーが起きました。 +このエラーは、 +同じファイル記述子への後続の操作まで報告されず、後続のエラーによって失われる +(上書きされる) 可能性があります。 +.It Er 6 ENXIO Em "\&No such device or address" +「そのようなデバイスまたはアドレスがありません」 +存在しないデバイスを参照している特殊ファイルへの入出力が行なわれたか、 +またはデバイスの制限を越えた要求が行われました。 +このエラーは、 +たとえばテープドライブがオンラインでないか、またはディスク +パックがドライブにロードされていない +ときにも発生する可能性があります。 +.It Er 7 E2BIG Em "Arg list too long" +「引数のリストが長すぎます」 +新しいプロセスの引数と環境変数のリストに使用される +バイト数が、 +現在の限界である +65536 バイト +.Pf ( Aq Pa sys/param.h +内の +.Dv NCARGS ) +を越えました。 +.It Er 8 ENOEXEC Em "Exec format error" +「実行形式エラーです」 +実行を要求されたファイルは、適切なパーミッションでしたが、 +実行可能ファイルについて要求される形式ではありませんでした。 +.It Er 9 EBADF Em "Bad file descripter" +「ファイル記述子が不良です」 +ファイル記述子引数が範囲外であったか、 +開いていないファイルを参照していたか、 +または書き込み (読み取り) 専用に開かれたファイルに +読み取り (書き込み) 要求が行われました。 +.It Er 10 ECHILD Em "\&No child processes" +「子プロセスがありません」 +.Xr wait 2 +または +.Xr waitpid 2 +関数が、 +子プロセスが存在しないか、待機されたことのない子プロセスを持たない +プロセスによって実行されました。 +.It Er 11 EDEADLK Em "Resource deadlock avoided" +「リソースデッドロックが回避されました」 +デッドロック状況になる可能性のあるシステムリソースをロックしようとしました。 +.It Er 12 ENOMEM Em "Cannot allocate memory" +「メモリの割り当てができません」 +新しいプロセス +イメージが、ハードウェアまたはシステムが課する +メモリ管理制約によって許容されるより多くのメモリを要求しました。 +スワップ空間の不足は通常、一時的です。 +しかし、コアの不足は一時的ではありません。ソフト限界を +対応するハード限界まで増加させることはできます。 +.It Er 13 EACCES Em "Permission denied" +「パーミッションが拒絶されました」 +ファイルアクセスパーミッションで禁止されている方法で +ファイルにアクセスしようとしました。 +.It Er 14 EFAULT Em "Bad address" +「不正なアドレスです」 +呼び出しの引数を使おうとしているときに、 +システムが無効なアドレスを検出しました。 +.It Er 15 ENOTBLK Em "Not a block device" +「ブロックデバイスではありません」 +ブロックデバイス操作が、非ブロックデバイスまたはファイル +について試みられました。 +.It Er 16 EBUSY Em "Resource busy" +「リソースがビジー状態です」 +その時点で使用されているシステムリソースを、 +その要求と干渉するであろう方法で使おうとしました。 +.It Er 17 EEXIST Em "File exists" +「ファイルが存在します」 +既存のファイルが不適切なコンテキストで +記述されました。たとえば、 +.Xr link 2 +関数内の新しいリンク名としてです。 +.It 18 Er EXDEV Em "Improper link" +「不適切なリンクです」 +別のファイルシステム上のファイルへのハード +リンクが試みられました。 +.It Er 19 ENODEV Em "Operation not supported" +「操作がデバイスによってサポートされていません」 +不適切な関数をデバイスに適用しようとする +試みが行われました。たとえば、プリンタのような +書き込み専用デバイスを読み込もうとしました。 +.It Er 20 ENOTDIR Em "Not a directory" +「ディレクトリではありません」 +指定のパス名の構成要素が存在しましたが、 +ディレクトリである必要があるのに、 +それがディレクトリではありませんでした。 +.It Er 21 EISDIR Em "Is a directory" +「ディレクトリです」 +書き込みモードを指定してディレクトリを開こうとしました。 +.It Er 22 EINVAL Em "Invalid argument" +「無効な引数です」 +無効な引数が指定されました (たとえば、 +.Xr signal 3 +関数または +.Xr kill 2 +関数に未定義のシグナルを指定する場合)。 +.It Er 23 ENFILE Em "Too many open files in system" +「システム内で開かれているファイルが多すぎます」 +システム上で許容できるファイル記述子の +最大数に到達しており、少なくとも +1 つが閉じられるまで、開こうとしている要求は満たされません。 +.It Er 24 EMFILE Em "Too many open files" +「開いているファイルが多すぎます」 +<現在のリリースでは、 +プロセス1個につき開いているファイル数の上限は 64 です。> +.Xr getdtablesize 2 +で現在の限界を取得できます。 +.It Er 25 ENOTTY Em "Inappropriate ioctl for device" +「デバイスに不適切な ioctl です」 +ファイルまたは特殊デバイスについて制御関数 ( +.Xr ioctl 2 +を参照) が試みられましたが、操作が不適切でした。 +.It Er 26 ETXTBSY Em "Text file busy" +「テキストファイルがビジーです」 +新しいプロセスが、別のプロセスによって書き込み用に開かれた純粋な手続き +(共有テキスト) +ファイルであったか、または純粋手続きファイルが実行されている間に、 +.Xr open 2 +呼び出しが書き込みアクセスを要求しました。 +.It Er 27 EFBIG Em "File too large" +「ファイルが大きすぎます」 +ファイルのサイズが最大値を超過しました +(約 +.if t 2\u\s-231\s+2\d +.if n 2.1E9 +バイト)。 +.It Er 28 ENOSPC Em "Device out of space" +「デバイスが空間不足です」 +該当するファイルシステムで +それ以上のディスクブロックが利用できないために、 +通常ファイルへの +.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 つのファイルへの許容される最大ハードリンクを超過しました +(ファイルごとのハードリンクの限界は 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 "Numerical result out of range" +「数値結果が範囲外です」 +関数の数値結果が大きすぎて、利用できる場所に入りません +(おそらく精度を超過したのでしょう)。 +.It Er 35 EAGAIN Em "Resource temporary unavailable" +「リソースが一時的に利用できません」 +これは一時的な状況であり、後で同じルーチンを呼び出した時に +正常に完了する可能性があります。 +.It Er 36 EINPROGRESS Em "Operation now in progress" +「操作が現在進行中です」 +完了するのに時間のかかる操作 ( +.Xr connect 2 +など) がノンブロッキングオブジェクトについて試みられました ( +.Xr fcntl 2 +を参照)。 +.It Er 37 EALREADY Em "Operation already in progress" +「操作は既に進行中です」 +既に操作が進行中のノンブロッキング +オブジェクトについて操作が試みられた。 +.It Er 38 ENOTSOCK Em "Socket operation on non-socket" +「ソケットでないものについてソケット操作を行ないました」 +自明です。 +.It Er 39 EDESTADDRREQ Em "Destination address required" +「宛先アドレスが要求されています」 +ソケット上の操作で必要なアドレスが抜けています。 +.It Er 40 EMSGSIZE Em "Message too long" +「メッセージが長すぎます」 +ソケット上で送信されたメッセージが、 +内部メッセージバッファまたは何らかの +他のネットワーク制限より大きくなりました。 +.It Er 41 EPROTOTYPE Em "Protocol wrong type for socket" +「ソケットに対する間違ったタイプのプロトコルです」 +要求されたソケットタイプをサポート +しないプロトコルが指定されました。たとえば、タイプ +.Dv SOCK_STREAM +では、 +.Tn ARPA +インターネット +.Tn UDP +プロトコルを使用できません。 +.It Er 42 ENOPROTOOPT Em "Protocol not available" +「プロトコルが利用できません」 +.Xr getsockopt 2 +呼び出しまたは +.Xr setsockopt 2 +呼び出しで、 +間違ったオプションまたはレベルが指定されました。 +.It Er 43 EPROTONOSUPPORT Em "Protocol not supported" +「プロトコルがサポートされていません」 +プロトコルがシステム内に構成されていないか、 +またはプロトコルについての実装が存在しません。 +.It Er 44 ESOCKTNOSUPPORT Em "Socket type not supported" +「ソケットタイプがサポートされていません」 +ソケットタイプのサポートがシステム内に +構成されていないか、またはそれの実装が存在しません。 +.It Er 45 EOPNOTSUPP Em "Operation not supported" +「操作がサポートされていません」 +試みられた操作が、 +参照されたオブジェクトのタイプについてサポートされていません。 +通常、これが起きるのは、ファイル記述子が +この操作をサポートできないファイルまたは +ソケットを参照するときです。たとえば、データグラム +ソケット上で接続を +.Em accept +しようしたときです。 +.It Er 46 EPFNOSUPPORT Em "Protocol family not supported" +「プロトコルファミリがサポートされていません」 +プロトコルファミリがシステム内に構成されていないか、 +またはそれの実装が存在していません。 +.It Er 47 EAFNOSUPPORT Em "Address family not supported by protocol family" +「アドレスファミリがプロトコルファミリによってサポートされていません」 +要求されたプロトコルと互換性のないアドレスが使用されました。たとえば、 +.Tn ARPA +インターネット +プロトコルで +.Tn NS +アドレスを使用できるとは必ずしも期待すべきではないでしょう。 +.It Er 48 EADDRINUSE Em "Address already in use" +「アドレスが既に使用中です」 +各アドレス毎に、利用は 1 つだけが通常許容されます。 +.It Er 49 EADDRNOTAVAIL Em "Cannot assing requested address" +「要求されたアドレスを割り当てできません」 +通常は、このマシン上にないアドレスで +ソケットを作成しようとした結果です。 +.It Er 50 ENETDOWN Em "Network is down" +「ネットワークがダウンしています」 +ソケット操作で動いていないネットワークに遭遇しました。 +.It Er 51 ENETUNREACH Em "Network is unreachable" +「ネットワークに到達できません」 +ソケット操作が到達できないネットワークに試みられました。 +.It Er 52 ENETRESET Em "Network dropped connection on reset" +「ネットワークのリセット時に接続が廃棄されました」 +接続されていたホストがクラッシュして再起動されました。 +.It Er 53 ECONNABORTED Em "Software caused connection abort" +「ソフトウェアが接続中止を引き起こしました」 +接続中止がホストマシンに内部的に発生しました。 +.It Er 54 ECONNRESET Em "Connection reset by peer" +「接続が対等な相手によってリセットされました」 +接続が対等な相手 (peer) によって強制的に閉じられました。 +これは時間切れまたは再起動によって、 +リモート側のソケットで接続が失われた結果であるのが普通です。 +.It Er 55 ENOBUFS Em "\&No buffer space available" +「バッファ空間の空きがありません」 +システムに十分なバッファ空間がないか、待ち行列が一杯になったために、 +ソケットまたはパイプについての操作が行われませんでした。 +.It Er 56 EISCONN Em "Socket is already connected" +「ソケットは既に接続されています」 +既に接続されたソケットについて +.Xr connect 2 +要求が行なわれました。 +または、接続済みのソケットに関する +.Xr sendto 2 +や +.Xr sendmsg 2 +要求で、既に接続されているのに宛先を指定しました。 +.It Er 57 ENOTCONN Em "Socket is not connected" +「ソケットは接続されていません」 +ソケットが接続されておらず、 +しかも (データグラムソケットを送信するときに) +アドレスが指定されていなかったために、データを送信または +受信する要求が許可されませんでした。 +.It Er 58 ESHUTDOWN Em "Cannot send after socket shutdown" +「ソケットのシャットダウンの後で送信ができません」 +ソケットが以前の +.Xr shutdown 2 +呼び出しで既にシャットダウンさせられているために、 +データを送信する要求が許可されませんでした。 +.It Er 60 ETIMEDOUT Em "Operation timed out" +「操作がタイムアウトしました」 +ある時間間隔の後、接続された一方が適切に応答しなかったために、 +.Xr connect 2 +要求または +.Xr send 2 +要求が処理に失敗しました +(タイムアウトの期間は通信プロトコルに左右されます)。 +.It Er 61 ECONNREFUSED Em "Connection refused" +「接続が拒絶されました」 +ターゲットマシンが明示的に接続を拒絶したので、 +接続を確立できませんでした。これは、通常、外部のホストで +有効でないサービスに接続しようとした結果です。 +.It Er 62 ELOOP Em "Too many levels of symbolic links" +「シンボリックリンクのレベルが多すぎます」 +パス名の探索に、32 +.Pq Dv MAXSYMLINKS +を越えるシンボリックリンクが含まれていました。 +.It Er 63 ENAMETOOLONG Em "File name too long" +「ファイル名が長すぎます」 +パス名の構成要素が 255 +.Pq Dv MAXNAMELEN +文字を越えているか、またはパス名全体が 1023 +.Pq Dv MAXPATHLEN Ns -1 +文字を越えています。 +.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 の割り当てに失敗しました。 +.ne 1i +.It Er 70 ESTALE Em "Stale NFS file handle" +「腐りかけた NFS ファイルハンドルです」 +オープンされている ( +.Tn NFS +ファイルシステム上の ) ファイルに対してアクセスしようとしましたが、 +指定したファイル記述子が参照するファイルは現在利用できません。 +これは +.Tn NFS +サーバ上でファイルが削除されたか、 +または他の破壊的なイベントが起きたことを示していると思われます。 +.It Er 72 EBADRPC Em "RPC struct is bad" +「RPC 構造体が不良です」 +.Tn RPC +情報の交換が不成功でした。 +.It Er 73 ERPCMISMATCH Em "RPC varsion wrong" +「RPC バージョンが間違っています」 +遠隔の相手の +.Tn RPC +のバージョンが、こちらのバージョンと +互換性がありません。 +.It Er 74 EPROGUNAVAIL Em "RPC prog. not avail" +「RPC プログラムが利用できません」 +要求されたプログラムが +リモートホストに登録されていません。 +.It Er 75 EPROGMISMATCH Em "Program version wrong" +「プログラムバージョンが間違っています」 +プログラムの要求したバージョンが、リモートホスト +.Pq Tn RPC +上で利用できません。 +.It Er 76 EPROCUNAVAIL Em "Bad procedure for program" +「プログラムにとって間違った手続きです」 +リモートプログラム内に存在しない手続きについて +.Tn RPC +呼び出しが試みられました。 +.It Er 77 ENOLCK Em "No locks available" +「ロックが利用できません」 +システムが課した、同時ファイルロック数の制限に達しました。 +.It Er 78 ENOSYS Em "Function not implemented" +「関数が実装されていません」 +このシステムで利用できないシステムコールをしようとしました。 +.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 +の呼び出しが成功すると作成されます。これによって、 +呼び出したプロセスは、新規のセッションにおける、 +ただ一つしかないプロセスグループのただ一つのメンバになります。 +.It "セッションリーダ (Session leader)" +.Xr setsid 2 +の呼び出しの成功によって、新しいセッションを作成したプロセスは、 +セッションリーダーとして知られます。セッション +リーダーだけが、端末を制御端末 ( +.Xr termios 4 +を参照) として取得できます 。 +.It "制御プロセス (Controlling process)" +制御端末を持つセッションリーダーが制御プロセスです。 +.It "制御端末 (Controlling terminal)" +セッションに関連づけられている端末は、そのセッションとそのメンバに対する +制御端末として知られます。 +.ne 1i +.It "端末プロセスグループ ID (Terminal Process Group ID)" +端末は、セッションリーダーによって制御端末として取得されます。 +一旦、端末がセッションに関連づけられると、 +そのセッション内のどのプロセスグループをも、 +端末プロセスグループ ID をプロセスグループの ID に設定することによって、 +フォアグラウンドに配置できるようになります。 +この機能は、同じ端末について競合する複数のジョブの間で +調停を行なうために用いられます ( +.Xr csh 1 +と +.Xr tty 4 +を参照)。 +.It "孤児になったプロセスグループ (Orphaned Process Group)" +プロセスグループは、ジョブ制御を行なうシェルの制御下にない場合、 +孤児になったとみなされます。 +もっと正確に言うと、 +そのグループと同じセッションに属しているがプロセスグループは異なる、 +というような親プロセスを、 +プロセスグループのメンバのどれもが持たないような場合、 +そのプロセスグループは孤児になります。 +なお、プロセスが終了するとき、その子プロセスの親プロセスは +.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 です。 +いずれも (おそらくその先祖の 1 つによる) set-user-ID ファイルまたは +set-group-ID ファイルを実行を通じて変更することができます ( +.Xr execve 2 +を参照してください)。 +慣習で、実効グループ ID +(グループアクセスリストの最初のメンバ) は複製されるので、 +set-group-ID プログラムの実行の結果、もともと持っていた +(実) グループ ID が失われることはありません。 +.Pp +グループアクセスリストは、リソースへのアクセス可能性を決定する +ためにだけ使用されるグループ ID のセットです。 +アクセスチェックは、以降の +``ファイルアクセスパーミッション'' +で説明するように行われます。 +.It "保存されたセットユーザ ID と保存されたセットグループ ID (Saved Set User ID and Saved Set Group ID)" +プロセスが新しいファイルを実行するとき、 +ファイルが set-user-ID であれば、 +実効ユーザ ID はそのファイルの所有者に設定され、 +ファイルが set-group-ID であれば、 +実効グループ ID (グループアクセスリストの最初の要素) は +ファイルのグループに設定されます。 +それからプロセスの実効ユーザ ID は saved set-user-ID として記録され、 +プロセスの実効ユーザ ID は saved set-group-ID として記録されます。 +これらの記録された値は、実 ID ( +.Xr setuid 2 +を参照) に戻った後で、実効ユーザ ID または実効グループ ID をこれらの +値に回復するために利用できます。 +(POSIX.1 では saved set-user-ID と saved set-group-ID はオプションであり、 +setuid および setgid の内部で使用されますが、 +これはスーパーユーザについて意図どおりには機能しません)。 +.It "スーパーユーザ (super-user)" +実効ユーザ ID が 0 の場合、そのプロセスは +.Em スーパーユーザ +プロセスとして認識され、特別な権利が認められます。 +.ne 1i +.It "特殊プロセス (Special Processes)" +プロセス ID が 0, 1, 2 のプロセスは特殊です。 +プロセス 0 はスケジューラです。 +プロセス 1 は初期化プロセス +.Xr init 8 +であり、システム内の他の各プロセスの祖先です。 +これはプロセス構造を制御するために使用されます。 +プロセス 2 はページングデーモンです。 +.It "記述子 (Descriptor)" +.Xr open 2 , +.Xr dup 2 +によってファイルが参照されるとき、または +.Xr pipe 2 , +.Xr socket 2 , +.Xr socketpair 2 +によってソケットが作成されるときに +システムによって割り当てられる整数です。 +この整数は、 +指定のプロセスやその子プロセスから、 +そのファイルやソケットへのアクセスパスを一意に識別します。 +.It "ファイル名 (File Name)" +最高 255 +.Pq Dv MAXNAMELEN +文字で構成される名前であって、通常ファイル、特殊ファイル、 +ディレクトリに名前を付けるのに使用されます。 +.Pp +これらの文字は、0 (NUL) および +.Ql \&/ +(スラッシュ) の +.Tn ASCII +コードを除きすべての +.Tn ASCII +文字のセットから選択できます。 +.Pp +なお、ファイル名の一部として +.Ql \&* , +.Ql \&? , +.Ql \&[ , +.Ql \&] +を使用するのは一般に賢明ではありません。シェルによって +これらの文字には特殊な意味がつけられるからです。 +.It "パス名 (Path Name)" +パス名は、 +.Tn NUL +で終端された文字列です。 +オプショナルなスラッシュ +.Ql \&/ +で開始し、スラッシュで区切られたゼロ個以上のディレクトリ名が続き、 +オプションでファイル名が続きます。パス名の長さの合計は 1024 +.Pq Dv MAXPATHLEN +文字未満である必要があります。 +.Pp +パス名がスラッシュで開始する場合、パス検索はルートディレクトリから +始まります。そうでない場合、検索は現在の作業ディレクトリから始まります。 +スラッシュそれ自体はルートディレクトリを指定します。 +空のパス名は現在のディレクトリを指します。 +.It "ディレクトリ (Directory)" +ディレクトリは特殊なタイプのファイルであり、他のファイルを参照する +エントリが含まれています。ディレクトリエントリはリンクと呼ばれます。 +慣習で、ディレクトリには少なくとも 2 つのリンク、 +.Ql \&. +と +.Ql \&.. +が含まれています。これらはそれぞれ +.Em ドット +および +.Em ドット-ドット +と呼ばれます。ドットは、そのディレクトリ自体を指し、 +ドット-ドットはその親ディレクトリを指します。 +.It "ルートディレクトリと現在の作業ディレクトリ (Root Directory and Current Working Directory)" +各プロセスは、ルートディレクトリと現在の作業ディレクトリという +概念に関連付けられています。これらはパス名検索を解決する際に +用いられます。プロセスのルートディレクトリは、 +ルートファイルシステムのルートディレクトリである必要はありません。 +.It "ファイルアクセスパーミッション (File Access Permission)" +ファイルシステム内の各ファイルはアクセスパーミッションの +集合を持っています。これらのパーミッションは、プロセスがファイルに +ついて要求された操作 (たとえば、書き込み用にファイルを開く) +を行なってもよいかどうかを判定するのに使用されます。 +アクセスパーミッションはファイルが作成されたときに設定されます。 +アクセスパーミッションは +.Xr chmod 2 +呼び出しを用いて後から変更することもできます。 +.Pp +ファイルアクセスでは、ファイルが +読み取りが許されているかどうか、書き込みが許されているかどうか、 +実行が許されているかどうか、 +によって分類されます。 +ディレクトリファイルでは、 +ディレクトリを検索してもよいかどうかを制御するのに +実行パーミッションを使用します。 +.Pp +ファイルアクセスパーミッションは、 +それをユーザの 3 つの異なるクラス、 +ファイルの所有者、ファイルのグループ内のユーザ、その他、 +に適用するものとしてシステムにより解釈されます。 +各ファイルは、これらの各クラスについて、 +独立したアクセスパーミッションのセットを持っています。 +アクセスチェックが行なわれると、システムは、 +呼び出し側に適用できるアクセス情報をチェックすることによって、 +パーミッションが認可されるかどうかを判定します。 +.Pp +ファイルについての読み取り、書き込み、実行/検索の +各パーミッションは、次の場合にプロセスに認可されます。 +.Pp +プロセスの実効ユーザ ID がスーパーユーザである場合 (注: +スーパーユーザであっても、実行可能でないファイルを実行する +ことはできません)。 +.Pp +プロセスの実効ユーザ ID がファイルの所有者のユーザ ID +に一致し、所有者のパーミッションがアクセスを許可している場合。 +.Pp +プロセスの実効ユーザ ID がファイルの所有者のユーザ ID +と一致せずに、プロセスの実効グループ ID がファイルのグループ ID +と一致するかまたはファイルのグループ ID がプロセスの +グループアクセスリスト内にあるかのどちらかであり、 +グループパーミッションがアクセスを許容している場合。 +.Pp +プロセスの実効ユーザ ID も実効グループ ID もグループアクセスリストも、 +ファイルの対応するユーザ ID およびグループ ID と +一致しないが、``その他のユーザ'' のパーミッションが +アクセスを許容する場合。 +.Pp +上記のいずれにも該当しない場合、パーミッションは拒絶されます。 +.It "ソケットとアドレスファミリ (Sockets and Address Families)" +.Pp +ソケットはプロセス間の通信の端点です。 +各ソケットには、データ送信用および受信用の待ち行列があります。 +.Pp +ソケットには、通信の性質によったタイプがあります。 +これらの性質には、ソケットで送受信されるメッセージに +相手の名前が必要かどうか、通信に信頼性があるかどうか、 +メッセージ受信者を名付ける際に使用される形式などが含まれます。 +.Pp +実際のシステムはそれぞれ、いくつかのソケット +タイプの集合をサポートしています。 +利用できるタイプおよびそれらのプロパティの詳細については、 +.Xr socket 2 +を参照してください。 +.Pp +実際のシステムはそれぞれ、いくつかの通信プロトコルの集合を +サポートしています。プロトコルの集合はそれぞれある特定の形式の +アドレスをサポートします。アドレスファミリは、 +あるプロトコルのグループに対応するアドレスの集合です。 +ソケットはそれぞれ、ソケットが作成されたアドレス +ファミリから選択したアドレスを持ちます。 +.Sh 関連項目 +.Xr intro 3 , +.Xr perror 3 +.\" Amended by N.Kumagai 2000-3-18 diff --git a/ja_JP.eucJP/man/man2/ioctl.2 b/ja_JP.eucJP/man/man2/ioctl.2 new file mode 100644 index 0000000000..d9c53f63ea --- /dev/null +++ b/ja_JP.eucJP/man/man2/ioctl.2 @@ -0,0 +1,140 @@ +.\" 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.6.2.1 1999/08/29 14:49:05 peter Exp % +.\" +.Dd December 11, 1993 +.Dt IOCTL 2 +.Os BSD 4 +.Sh 名称 +.Nm ioctl +.Nd デバイスを制御する +.Sh 書式 +.Fd #include <sys/ioctl.h> +.Ft int +.Fn ioctl "int d" "unsigned long request" ... +.Sh 解説 +.Fn ioctl +関数は特殊ファイルの下層となっているデバイスのパラメータを操作します。 +特に、キャラクタ型特殊ファイル (たとえば、端末) の多数の操作属性は +.Fn ioctl +で制御できます。引数 +.Fa d +はオープンファイル記述子である必要があります。 +.Pp +.Nm +への 3 番めの引数は従来から +.Ar "char *argp" +と名前付けられています。 +.Fx 3.0 +での +.Nm +のほとんどの使用法では、3 番めの引数が +.Ar caddr_t +または +.Ar int +である必要があります。 +.Pp +ioctl の +.Fa request +は、引数が +.Dq in +パラメータまたは +.Dq out +パラメータであるかどうかと、引数 +.Fa argp +のサイズ (バイト単位) でエンコードされます。 +ioctl の +.Fa request +を指定するのに使用されるマクロと定義 +はファイル +.Ao Pa sys/ioctl.h Ac +の中にあります。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリ +.Fn ioctl +は、 +.Va ioctl +システムコールとして実装されています。 +.Pp +スレッドライブラリの場合、 +.Va ioctl +システムコールは +.Fn _thread_sys_ioctl +にアセンブルされ、 +.Fn ioctl +は、読み書きについて +.Va d +をロックしてから +.Fn _thread_sys_ioctl +呼び出す関数として実装されています。戻る前に +.Fn ioctl +は +.Va d +をアンロックします。 +.Sh 戻り値 +エラーが起きた場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn Ioctl +は次の場合に失敗します。 +.Bl -tag -width [ENOTTY] +.It Bq Er EBADF +.Fa d +が有効な記述子ではありません。 +.It Bq Er ENOTTY +.Fa d +がキャラクタ型特殊デバイスに対応していません。 +.It Bq Er ENOTTY +指定された要求は記述子 +.Fa d +が参照する種類のオブジェクトには適用されません。 +.It Bq Er EINVAL +.Fa request +または +.Fa argp +が有効ではありません。 +.El +.Sh 関連項目 +.Xr mt 1 , +.Xr execve 2 , +.Xr fcntl 2 , +.Xr intro 4 , +.Xr tty 4 +.Sh 歴史 +.Fn ioctl +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/issetugid.2 b/ja_JP.eucJP/man/man2/issetugid.2 new file mode 100644 index 0000000000..9785e4c154 --- /dev/null +++ b/ja_JP.eucJP/man/man2/issetugid.2 @@ -0,0 +1,103 @@ +.\" $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.5.2.2 1999/09/18 16:18:59 phantom Exp % +.\" +.Dd August, 25 1996 +.Dt ISSETUGID 2 +.Os +.Sh 名称 +.Nm issetugid +.Nd 現在のプロセスの uid または gid の変化による汚染状況 +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn issetugid void +.Sh 解説 +.Fn issetugid +関数は、プロセスの環境またはメモリアドレス空間が +.Dq 汚染されている +と見なされる場合 +1 を返し、そうでない場合は 0 を返します。 +.Pp +setuid または setgid ビットのどちらかが設定されたプロセスを +.Xr execve 2 +システムコールで実行した (そして結果として追加の特権が与えられた) 場合、 +あるいはプロセスの、実, 実効, 保存された、ユーザまたはグループ ID の +いずれかが実行後に変更された場合、そのプロセスは汚染されていると +見なされます。 +.Pp +このシステムコールは、ユーザから得られた情報を使用するのが安全かどうかを +ライブラリルーチン (たとえば libc や libtermcap) +が信頼性を持って判定できるようにするために存在します。 +特に +.Xr getenv 3 +からの結果を、オペレーションの制御のために使用する場合には疑いを持って見る +必要があります。 +.Pp +.Dq 汚染された +状態は、 +.Xr fork 2 +システムコール (または +.Xr popen 3 +のようにフォークを呼び出す +他のライブラリコード) の結果として、子プロセスに継承されます。 +.Pp +別のプログラムを実行する準備をするときにすべての特権をクリアするプログラムは、 +環境もリセットすると +想定されます。したがって +.Dq 汚染された +状態は引き渡されません。 +setuid を開始するけれども汚染されていない +プロセスを作成できる必要のある +.Xr su 1 +のようなプログラムにはこれは重要です。 +.Sh エラー +.Fn issetugid +関数は必ず正常に完了するので、エラーを示すための戻り値はありません。 +.Sh 関連項目 +.Xr execve 2 , +.Xr fork 2 , +.Xr setegid 2 , +.Xr seteuid 2 , +.Xr setgid 2 , +.Xr setregid 2 , +.Xr setreuid 2 , +.Xr setuid 2 +.Sh 歴史 +.Fn issetugid +関数は +.Ox 2.0 +ではじめて登場し、 +.Fx 3.0 +でも実装されました。 diff --git a/ja_JP.eucJP/man/man2/kill.2 b/ja_JP.eucJP/man/man2/kill.2 new file mode 100644 index 0000000000..f150f3e21e --- /dev/null +++ b/ja_JP.eucJP/man/man2/kill.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. +.\" +.\" @(#)kill.2 8.3 (Berkeley) 4/19/94 +.\" %FreeBSD: src/lib/libc/sys/kill.2,v 1.7.2.3 1999/08/29 14:49:06 peter Exp % +.\" +.Dd April 19, 1994 +.Dt KILL 2 +.Os BSD 4 +.Sh 名称 +.Nm kill +.Nd プロセスにシグナルを送信する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 が +送信プロセスの対応するものと一致するか、 +またはユーザは該当する特権を持っている (set-user-ID で与えられた特権、 +またはユーザがスーパユーザである) 必要があります。 +唯一の例外はシグナル SIGCONT で、これだけは現在のプロセスの子孫に +必ず送信できます。 + +.Bl -tag -width Ds +.\".It \&If Fa pid No \&is greater than zero : +.It Fa pid No が 0 より大きい場合: +.Fa sig +は ID が +.Fa pid +に等しいプロセスに送信されます。 +.\".It \&If Fa pid No \&is zero : +.It Fa pid No が 0 の場合: +.Fa sig +はグループ ID が送信側のプロセスグループ ID と等しく、それについて +プロセスがパーミッションを持っているすべてのプロセスに送信されます。これは +.Xr killpg 2 +の変種です。 +.\".It \&If Fa pid No \&is -1 : +.It Fa pid No が -1 の場合: +ユーザにスーパユーザの特権がある場合、 +システムプロセス +.Dv ( P_SYSTEM +フラグが設定されている)、ID が 1 のプロセス (通常は +.Xr init 8 )、 +およびシグナルを送信しているプロセスを +除くすべてのプロセスにシグナルが送信されます。 +ユーザがスーパユーザでない場合、シグナルを送信しているプロセスを除く、 +ユーザと同じ uid のすべてのプロセスに +シグナルが送信されます。いずれかのプロセスにシグナルを送信できた場合、 +エラーは返されません。 +.El +.Pp +System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、 +プロセス番号の絶対値に等しいプロセスグループ ID を持つ +すべてのプロセスにシグナルが +送信されます。これは +.Xr killpg 2 +の変種です。 +.Sh 戻り値 +正常に完了すると値 0 が返されます。そうでない場合は -1 が返され、 +エラーを示すように +.Va errno +が設定されます。 +.Sh エラー +.Fn Kill +は次の場合に処理に失敗し、シグナルは送信されません。 +.Bl -tag -width [EINVAL] +.It Bq Er EINVAL +.Fa sig +が有効なシグナル番号ではありません。 +.It Bq Er ESRCH +.Fa pid +で指定されたプロセスに対応するプロセスが検出できません。 +.It Bq Er ESRCH +プロセス ID は 0 として与えられたものの、 +送信プロセスにプロセスグループがありません。 +.It Bq Er EPERM +送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信 +プロセスの実効ユーザ ID と一致しません。 +プロセスグループにシグナルを送信するとき、グループのメンバの +いずれかにシグナル +を送信することができない場合、このエラーが返されます。 +.El +.Sh 関連項目 +.Xr getpgrp 2 , +.Xr getpid 2 , +.Xr killpg 2 , +.Xr sigaction 2 , +.Xr init 8 +.Sh 規格 +.Fn kill +関数は +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn kill +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/killpg.2 b/ja_JP.eucJP/man/man2/killpg.2 new file mode 100644 index 0000000000..7c989c5ac1 --- /dev/null +++ b/ja_JP.eucJP/man/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 +.\" +.Dd June 2, 1993 +.Dt KILLPG 2 +.Os BSD 4 +.Sh 名称 +.Nm killpg +.Nd プロセスグループにシグナルを送信する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 戻り値 +正常に完了すると 0 が返されます。そうでない場合は値 -1 が返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.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/ja_JP.eucJP/man/man2/kldfind.2 b/ja_JP.eucJP/man/man2/kldfind.2 new file mode 100644 index 0000000000..af1d8f79c4 --- /dev/null +++ b/ja_JP.eucJP/man/man2/kldfind.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/kldfind.2,v 1.3.2.4 1999/11/14 18:21:22 chris Exp % +.\" +.Dd March 3, 1999 +.Dt KLDFIND 2 +.Os FreeBSD +.Sh 名称 +.Nm kldfind +.Nd kld ファイルのファイル ID を返す +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/linker.h> +.Ft int +.Fn kldfind "const char *file" +.Sh 解説 +関数 +.Fn kldfind +は、 +.Va file +によって参照される kld ファイルのファイル ID を返します。 +.Sh 戻り値 +.Fn kldfind +は、 +.Va 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 +指定されたファイルはカーネルにロードされていません。 +.Sh 関連項目 +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldunload 2 , +.Xr kld 4 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/kldfirstmod.2 b/ja_JP.eucJP/man/man2/kldfirstmod.2 new file mode 100644 index 0000000000..f2c82a1a7a --- /dev/null +++ b/ja_JP.eucJP/man/man2/kldfirstmod.2 @@ -0,0 +1,67 @@ +.\" +.\" 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.3.2.3 1999/09/18 16:18:59 phantom Exp % +.\" +.Dd March 3, 1999 +.Dt KLDFIRSTMOD 2 +.Os FreeBSD +.Sh 名称 +.Nm kldfirstmod +.Nd "指定された kld ファイルから最初のモジュール ID を返す" +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/linker.h> +.Ft int +.Fn kldfirstmod "int fileid" +.Sh 解説 +.Fn kldfirstmod +関数は、 +.Va fileid +によって参照された最初のモジュールに関連するモジュール ID を +返します。 +.Sh 戻り値 +.Fn kldfirstmod +は、 +.Va fileid +によって参照される最初のモジュールの ID を返し、 +参照がない場合は 0 を返します。 +.Sh エラー +.Bl -tag -width Er +.It Bq Er ENOENT +.Va fileid +によって参照された kld ファイルが見つかりませんでした。 +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldunload 2 , +.Xr kld 4 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kldload.2 b/ja_JP.eucJP/man/man2/kldload.2 new file mode 100644 index 0000000000..944766de1a --- /dev/null +++ b/ja_JP.eucJP/man/man2/kldload.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/kldload.2,v 1.3.2.3 1999/09/18 16:18:59 phantom Exp % +.\" + +.Dd March 3, 1999 +.Dt KLDLOAD 2 +.Os FreeBSD +.Sh 名称 +.Nm kldload +.Nd KLD ファイルをカーネルにロードする +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <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 +関数を使用するためにはルートユーザである必要があります。 +.It Bq Er EFAULT +kld 情報をカーネル空間に追加するときに無効アドレスが検出されました。 +.It Bq Er ENOMEM +ファイルをカーネル内にロードするためのメモリがありません。 +.It Bq Er ENOENT +ファイルが見つかりませんでした。 +.It Bq Er ENOEXEC +.Va file +のファイル形式が認識されませんでした。 +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kldunload 2 , +.Xr kld 4 , +.Xr kldload 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kldnext.2 b/ja_JP.eucJP/man/man2/kldnext.2 new file mode 100644 index 0000000000..b2bb138a58 --- /dev/null +++ b/ja_JP.eucJP/man/man2/kldnext.2 @@ -0,0 +1,70 @@ +.\" +.\" 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.3.2.3 1999/09/18 16:18:59 phantom Exp % +.\" +.Dd March 3, 1999 +.Dt KLDNEXT 2 +.Os FreeBSD +.Sh 名称 +.Nm kldnext +.Nd 次の kld ファイルのファイル ID を返す +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <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 +によって設定されるエラーは ENOENT だけです。これが設定されるときは、 +.Va fileid +が存在しない (ロードされていない) kld ファイルを参照しているときです。 +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldstat 2 , +.Xr kldunload 2 , +.Xr kld 4 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kldstat.2 b/ja_JP.eucJP/man/man2/kldstat.2 new file mode 100644 index 0000000000..f677a5025c --- /dev/null +++ b/ja_JP.eucJP/man/man2/kldstat.2 @@ -0,0 +1,116 @@ +.\" +.\" 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.3.2.3 1999/09/18 16:19:00 phantom Exp % +.\" +.Dd March 3, 1999 +.Dt KLDSTAT 2 +.Os FreeBSD +.Sh 名称 +.Nm kldstat +.Nd kld ファイルの状態を得る +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/linker.h> +.Ft int +.Fn kldstat "int fileid" "struct kld_file_stat *stat" +.Sh 解説 +.Fn kldstat +関数は、 +.Va fileid +によって参照されたファイルに関する情報を +.Va 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 +.Va fileid +によって参照されるファイルの名前 +.It refs +.Va fileid +によって参照されるモジュールの数 +.It id +.Va fileid +で指定されたファイルの ID +.It address +kld ファイルのロードアドレス +.It size +ファイルのサイズ +.Sh 戻り値 +.Fn kldstat +は、必ず 0 を返すように見えます。 +.Sh エラー +次の場合を除いて、 +.Va fileid +が参照するファイルに関する情報は +.Va stat +が指す構造体に記入されます。 +.Bl -tag -width Er +.It Bq Er ENOENT +ファイルが見つかりませんでした (おそらくロードされていないのでしょう)。 +.It Bq Er EINVAL +stat +の +.Va version +フィールドで指定されたバージョンが適切ではありません。 +.Va version +フィールドに適切に記入しているのにこのエラーが起きた場合は、 +ワールド、カーネル、 +またはアプリケーションを再構築する必要があります。 +.It Bq Er EFAULT +.Fn copyout +関数で、フィールドを +.Va stat +にコピーする際に問題がありました。 +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldunload 2 , +.Xr kld 4 , +.Xr kldstat 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/kldunload.2 b/ja_JP.eucJP/man/man2/kldunload.2 new file mode 100644 index 0000000000..4c242fa48e --- /dev/null +++ b/ja_JP.eucJP/man/man2/kldunload.2 @@ -0,0 +1,79 @@ +.\" +.\" 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.3.2.4 1999/09/18 16:19:00 phantom Exp % +.\" + +.Dd March 3, 1999 +.Dt KLDUNLOAD 2 +.Os FreeBSD +.Sh 名称 +.Nm kldunload +.Nd kld ファイルをアンロードする +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/linker.h> +.Ft int +.Fn kldunload "int fileid" +.Sh 解説 +関数 +.Fn kldunload +は、 +.Xr kldload 2 +によってリンクされていた kld ファイルをカーネルからアンロードします。 +.Sh 戻り値 +関数 +.Fn kldunload +は、 +.Fn kldload +によってメモリにロードされていた kld ファイルの +ファイル ID を返します。エラーが発生すると +.Fn kldunload +は -1 を返し、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Va fileid +によって参照されるファイルは、次の場合を除いてアンロードされます。 +.Bl -tag -width Er +.It Bq Er EPERM +ファイルをカーネルからアンリンク出来ません。 +.It Bq Er ENOENT +ファイルが見つかりませんでした。 +.It Bq Er EBUSY +カーネルによってリンクされたファイルをアンロードしようとしました。 +.Sh 関連項目 +.Xr kldfind 2 , +.Xr kldfirstmod 2 , +.Xr kldload 2 , +.Xr kldnext 2 , +.Xr kldstat 2 , +.Xr kld 4 , +.Xr kldunload 8 +.Sh 歴史 +.Nm kld +インタフェースは +.Fx 3.0 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/ktrace.2 b/ja_JP.eucJP/man/man2/ktrace.2 new file mode 100644 index 0000000000..102e6b51ef --- /dev/null +++ b/ja_JP.eucJP/man/man2/ktrace.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. +.\" +.\" @(#)ktrace.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/ktrace.2,v 1.6.2.3 1999/09/18 16:19:00 phantom Exp % +.\" +.Dd June 4, 1993 +.Dt KTRACE 2 +.Os BSD 4 +.Sh 名称 +.Nm ktrace +.Nd プロセスのトレース +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/time.h> +.Fd #include <sys/uio.h> +.Fd #include <sys/ktrace.h> +.Ft int +.Fn ktrace "const char *tracefile" "int ops" "int trpoints" "int pid" +.Sh 解説 +.Fn ktrace +関数は、1 つまたは複数のプロセスのトレースを有効または無効にします。 +ユーザは自分のプロセスだけを +トレースできます。スーパーユーザだけが、setuid プログラムまたは +setgid プログラムをトレースできます。 +.Pp +.Ar tracefile +は、トレースに使用するファイルのパス名を指定します。 +ファイルは存在していなければならず、 +呼び出し側プロセスによって書き込み可能な通常ファイルである必要があります。 +トレースレコードはすべてファイルの末尾に追加されるので、 +直前のトレースデータを切り捨てるためにはファイルの長さを 0 にする必要が +あります。トレース点が無効な場合 (後述の KTROP_CLEAR を参照)、 +.Ar tracefile +は NULL にできます。 +.Pp +.Nm ops +パラメータは要求された ktrace 操作を指定します。 +定義されている操作は次のとおりです。 +.Bl -column KTRFLAG_DESCENDXXX -offset indent +.It KTROP_SET trpoints で指定されたトレース点を有効にします。 +.It KTROP_CLEAR trpoints で指定されたトレース点を無効にします。 +.It KTROP_CLEARFILE すべてのトレースを停止します。 +.It KTRFLAG_DESCEND トレースの変更が、指定のプロセスとその現在の +すべての子プロセスに適用されます。 +.El +.Pp +.Nm 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 +.Nm ktr_len +フィールドはこのヘッダに続く +.Nm ktr_type +データの長さを示します。 +.Nm ktr_pid +フィールドと +.Nm ktr_comm +フィールドは、レコードを生成したプロセスとコマンドを示します。 +.Nm ktr_time +フィールドは、 +レコードが生成された時刻を (マイクロ秒単位で) 示します。 +.Nm ktr_buf +は、内部カーネルポインタで +あって有用ではありません。 +.Pp +汎用ヘッダには +.Nm ktr_len +バイトの +.Nm ktr_type +レコードが続きます。タイプに固有のレコードは +.Pa <sys/ktrace.h> +インクルードファイル内に定義されます。 +.Sh 戻り値 +正常に完了すると値 0 が返されます。そうでない場合は値 -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn ktrace +は次の場合に失敗します。 +.Bl -tag -width ENAMETOOLONGAA +.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 +.Sh 関連項目 +.Xr kdump 1 , +.Xr ktrace 1 +.Sh 歴史 +.Fn ktrace +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/link.2 b/ja_JP.eucJP/man/man2/link.2 new file mode 100644 index 0000000000..608bbbae7b --- /dev/null +++ b/ja_JP.eucJP/man/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.9.2.1 1999/08/29 14:49:09 peter Exp % +.\" +.Dd January 12, 1994 +.Dt LINK 2 +.Os BSD 4 +.Sh 名称 +.Nm link +.Nd ハードファイルリンクを作成する +.Sh 書式 +.Fd #include <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 戻り値 +処理が正常に完了すると値 0 が返されます。そうでない場合は -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn link +は次の場合に処理に失敗し、リンクは作成されません。 +.Bl -tag -width Ar +.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 +で指定されたファイルのリンクカウントが +.Dv {LINK_MAX} +を越えます。 +.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 +によって指定されたファイルはディレクトリです。 +.It Bq Er EXDEV +.Fa name2 +によって指定されたリンクと +.Fa name1 +によって指定されたファイルが異なるファイルシステム上にあります。 +.It Bq Er ENOSPC +ディレクトリを格納しているファイルシステムに容量が残っていないため、 +新しいリンクを入れるエントリを置くディレクトリを拡張できません。 +.ne 3v +.It Bq Er EDQUOT +ディレクトリを格納しているファイルシステムでユーザのディスクブロックに +関するクォータが枯渇したため、 +新しいリンクを入れるエントリを置くディレクトリを拡張できません。 +.It Bq Er EIO +ディレクトリエントリを作成するためファイルシステムに +読み書きしている間に入出力エラーが発生しました。 +.It Bq Er EROFS +要求されたリンクは、読取り専用ファイルシステム上のディレクトリに +書込みすることを要求しています。 +.It Bq Er EFAULT +指定されたパス名の 1 つが、プロセスに割り当てられた +アドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr readlink 2 , +.Xr symlink 2 , +.Xr unlink 2 +.Sh 規格 +.Fn link +関数は +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn link +関数は +.At v7 +で登場しました。 +.Pp +従来、スーパユーザは +.Fn link +システムコールによってディレクトリをリンクでき、 +これはファイルシステムの一貫性を破壊するものでした。 +この実装では、このような操作は もはや許されません。 diff --git a/ja_JP.eucJP/man/man2/listen.2 b/ja_JP.eucJP/man/man2/listen.2 new file mode 100644 index 0000000000..721714a7c2 --- /dev/null +++ b/ja_JP.eucJP/man/man2/listen.2 @@ -0,0 +1,140 @@ +.\" 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.10.2.2 1999/08/29 14:49:10 peter Exp % +.\" +.Dd November 3, 1995 +.Dt LISTEN 2 +.Os BSD 4.2 +.Sh 名称 +.Nm listen +.Nd ソケット上の接続をリスンする +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +を示すエラーを受信する可能性があります。 +または下層のプロトコルが再送信をサポートする場合は、 +再試行によって成功する可能性に期待して要求は無視されるかもしれません。 +.Pp +.Xr sysctl 3 +MIB 変数 +.Dq Li kern.ipc.somaxconn +は +.Fa backlog +のハードリミットを指定します。 +.Li kern.ipc.somaxconn +より大きい値、または 0 より小さい値が指定されている場合、 +.Fa backlog +の指定は無視されて +.Li kern.ipc.somaxconn +の値にされます。 +.Sh システムの注意事項 +.Pp +非スレッドライブラリ +.Fn listen +は +.Va listen +システムコールとして実装されます。 +.Pp +スレッドライブラリでは、 +.Va listen +システムコールは +.Fn _thread_sys_listen +にアセンブルされ、 +.Fn listen +は読み書きについて +.Va s +をロックしてから、 +.Fn _thread_sys_listen +を呼び出す関数として実装されています。戻る前に +.Fn listen +は +.Va s +をアンロックします。 +.Sh 戻り値 +戻り値 0 は処理の成功を示し、-1 はエラーを示します。 +.Sh エラー +.Fn listen +は次の場合に処理を失敗します。 +.Bl -tag -width [EOPNOTSUPP] +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +引数 +.Fa s +がソケットではありません。 +.It Bq Er EOPNOTSUPP +ソケットが、 +.Fn listen +をサポートするタイプではありません。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr connect 2 , +.Xr socket 2 , +.Xr sysctl 3 , +.Xr sysctl 8 +.Sh 歴史 +.Fn listen +関数は +.Bx 4.2 +で現れました。 +実行時に最大 +.Fa backlog +を設定できる機能、および許容できる最大値を指定する場合に負の +.Fa backlog +を使用する機能は +.Fx 2.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/lseek.2 b/ja_JP.eucJP/man/man2/lseek.2 new file mode 100644 index 0000000000..cc5b80df11 --- /dev/null +++ b/ja_JP.eucJP/man/man2/lseek.2 @@ -0,0 +1,129 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)lseek.2 8.3 (Berkeley) 4/19/94 +.\" %FreeBSD: src/lib/libc/sys/lseek.2,v 1.8.2.1 1999/08/29 14:49:10 peter Exp % +.\" +.Dd April 19, 1994 +.Dt LSEEK 2 +.Os BSD 4 +.Sh 名称 +.Nm lseek +.Nd 読取り/書込みファイルオフセット位置を変更する +.Sh 書式 +.Fd #include <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 [EINVAL] +.It Bq Er EBADF +.Em fildes +がオープンファイル記述子ではありません。 +.It Bq Er ESPIPE +.Em fildes +はパイプ、ソケット、または FIFO と対応づけられています。 +.It Bq Er EINVAL +.Fa whence +が適切な値ではありません。 +.El +.Sh 関連項目 +.Xr dup 2 , +.Xr open 2 +.Sh バグ +このドキュメントの +.Fa whence +の使用法は正しくない英語ですが、歴史的な理由で維持されています。 +.Sh 規格 +.Fn lseek +関数は +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn lseek +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/madvise.2 b/ja_JP.eucJP/man/man2/madvise.2 new file mode 100644 index 0000000000..582692e009 --- /dev/null +++ b/ja_JP.eucJP/man/man2/madvise.2 @@ -0,0 +1,120 @@ +.\" 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.14.2.1 1999/08/29 14:49:11 peter Exp % +.\" +.Dd Jul 19, 1996 +.Dt MADVISE 2 +.Os +.Sh 名称 +.Nm madvise +.Nd メモリの使用法について助言を与える +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> +.Ft int +.Fn madvise "void *addr" "size_t len" "int behav" +.Sh 解説 +.Fn madvise +システムコールによって、自身のメモリ利用の習性の知識があるプロセスは、それを +システムに説明できます。 +.Aq Pa sys/mman.h +で定義される既知の習性は次のとおりです。 +.Bd -literal +#define MADV_NORMAL 0 /* これ以降、特殊な処理は必要ない */ +#define MADV_RANDOM 1 /* ランダムなページ参照が予測される */ +#define MADV_SEQUENTIAL 2 /* シーケンシャルな参照が予測される */ +#define MADV_WILLNEED 3 /* これらのページを必要とする */ +#define MADV_DONTNEED 4 /* これらのページを必要としない */ +#define MADV_FREE 5 /* データは今や重要ではない */ +.Ed +.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 +がアドレス空間内の任意の位置のページを解放できるようにする効率的な方法です。 +ページが次に参照される時には、そのページは要求時ゼロクリアの対象に +なっている可能性もありますし、または +.Dv MADV_FREE +呼び出しの前にそこにあったデータが残っているかもしれません。 +ページが再び修正されるまで、そのアドレス空間範囲に対する参照だけでは、 +VM システムはバッキングストアから情報をページに読み込む動作を行わなくなります。 +.El +.Sh 戻り値 +正常に完了すると +.Fn madvise +は 0 を返します。そうでない場合は値 -1 を +返し、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn madvise +関数は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +引数と +.Fa len +引数で指定された仮想アドレス範囲が有効ではありません。 +.El +.Sh 関連項目 +.Xr mincore 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munmap 2 . +.Sh 歴史 +.Fn madvise +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mincore.2 b/ja_JP.eucJP/man/man2/mincore.2 new file mode 100644 index 0000000000..6a1ae751ec --- /dev/null +++ b/ja_JP.eucJP/man/man2/mincore.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. +.\" +.\" @(#)mincore.2 8.1 (Berkeley) 6/9/93 +.\" %FreeBSD: src/lib/libc/sys/mincore.2,v 1.12.2.1 1999/08/29 14:49:11 peter Exp % +.\" +.Dd June 9, 1993 +.Dt MINCORE 2 +.Os +.Sh 名称 +.Nm mincore +.Nd メモリの使用法について助言を得る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> +.Ft int +.Fn mincore "const void *addr" "size_t len" "char *vec" +.Sh 解説 +.Fn mincore +システムコールによって、プロセスは、ページがコアに存在しているかどうかに +ついての情報を得られます。 +ページが現時点でコアに常駐しているかどうかが文字配列 +.Fa vec +内に返され、値 1 はページがコア内にあるという意味です。 +.Sh 戻り値 +処理が正常に完了すると +.Fn mincore +は値 0 を返し、 +.Fa vec +はページの状態を反映するように更新 +されます。そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +引数と +.Fa len +引数によって指定された仮想アドレス範囲が有効ではありません。 +.It Bq Er EFAULT +.Fa vec +引数が正しくないアドレスを指しています。 +.El +.Sh 関連項目 +.Xr madvise 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munmap 2 +.Sh 歴史 +.Fn mincore +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/minherit.2 b/ja_JP.eucJP/man/man2/minherit.2 new file mode 100644 index 0000000000..c77e1a0b25 --- /dev/null +++ b/ja_JP.eucJP/man/man2/minherit.2 @@ -0,0 +1,92 @@ +.\" %FreeBSD: src/lib/libc/sys/minherit.2,v 1.5.2.1 1999/08/29 14:49:12 peter 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 +.\" +.Dd Feb 17, 1996 +.Dt MINHERIT 2 +.Os +.Sh 名称 +.Nm minherit +.Nd ページの継承を制御する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> +.Ft int +.Fn minherit "void *addr" "size_t len" "int inherit" +.Sh 解説 +.Fn minherit +システムコールは、指定のページが継承の際の特性として +.Fa inherit +を持つように変更します。 +すべての場合において、継承の際の特性がページ単位で設定できることが +保証されるているわけではありません。 +変更の単位はリージョン全体かもしれません。 +.Sh 戻り値 +正常に完了すると +.Fn minherit +は 0 を返します。そうでない場合は 値 -1 が返され、 +エラーを示すように +.Va errno +が設定されます。 +.Sh エラー +.Fn minherit +関数は次の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +引数と +.Fa len +引数によって指定される仮想アドレス範囲が有効ではありません。 +.It Bq Er EACESS +.Fa inherit +引数によって指定されるフラグが、 +.Fa addr +引数と +.Fa len +引数によって指定された +ページに対して適切ではありませんでした。 +.El +.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 +関数は +OpenBSD +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mkdir.2 b/ja_JP.eucJP/man/man2/mkdir.2 new file mode 100644 index 0000000000..cf6bf02a3c --- /dev/null +++ b/ja_JP.eucJP/man/man2/mkdir.2 @@ -0,0 +1,111 @@ +.\" 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.7.2.2 1999/08/29 14:49:12 peter Exp % +.\" +.Dd December 11, 1993 +.Dt MKDIR 2 +.Os BSD 4.2 +.Sh 名称 +.Nm mkdir +.Nd ディレクトリファイルを作成する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 戻り値 +戻り値 0 は処理が正常に完了したことを示します。 +戻り値 -1 はエラーを示し、エラーコードは +.Va errno +に保存されます。 +.Sh エラー +.Fn mkdir +は次の場合、処理に失敗してディレクトリは作成されません。 +.Bl -tag -width ENAMETOOLO +.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/ja_JP.eucJP/man/man2/mkfifo.2 b/ja_JP.eucJP/man/man2/mkfifo.2 new file mode 100644 index 0000000000..f99cb98434 --- /dev/null +++ b/ja_JP.eucJP/man/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.7.2.2 1999/08/29 14:49:13 peter Exp % +.\" +.Dd June 4, 1993 +.Dt MKFIFO 2 +.Os +.Sh 名称 +.Nm mkfifo +.Nd fifo ファイルを作成する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 戻り値 +戻り値 0 は正常に完了したことを示します。戻り値 -1 はエラーを示し、 +エラーコードは +.Va errno +に保存されます。 +.Sh エラー +.Fn mkfifo +は、次の場合に処理を失敗し、fifo は作成されません。 +.Bl -tag -width ENAMETOOLO +.It Bq Er ENOTSUPP +カーネルが fifo をサポートするように構成されていません。 +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +前置パス名の構成要素が存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EEXIST +指定のファイルが存在します。 +.It Bq Er ENOSPC +新しい fifo 用のエントリを配置するディレクトリが拡張できません。 +ディレクトリが入っているファイルシステム上に空間が残っていません。 +.It Bq Er ENOSPC +fifo を作成するファイルシステム上に未使用の inode がありません。 +.It Bq Er EDQUOT +新しい fifo 用のエントリを配置するディレクトリが拡張できません。 +ディレクトリが入っているファイルシステム上のディスクブロックのユーザの +クォータが枯渇しました。 +.It Bq Er EDQUOT +fifo を作成中のファイルシステム上のユーザの inode のクォータが +枯渇しました。 +.It Bq Er EIO +ディレクトリエントリの作成中、または inode を割当て中に +.Tn I/O +(入出力) エラーが発生しました。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.Tn I/O +(入出力) エラーが発生しました。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr chmod 2 , +.Xr mknod 2 , +.Xr stat 2 , +.Xr umask 2 +.Sh 規格 +.Fn mkfifo +関数は +.St -p1003.1-90 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/mknod.2 b/ja_JP.eucJP/man/man2/mknod.2 new file mode 100644 index 0000000000..abc5739bc6 --- /dev/null +++ b/ja_JP.eucJP/man/man2/mknod.2 @@ -0,0 +1,122 @@ +.\" 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.5.2.3 1999/08/29 14:49:14 peter Exp % +.\" +.Dd June 4, 1993 +.Dt MKNOD 2 +.Os BSD 4 +.Sh 名称 +.Nm mknod +.Nd 特殊なファイルノードを作成する +.Sh 書式 +.Fd #include <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 戻り値 +処理が正常に完了すると値 0 が返されます。そうでない場合は +値 -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.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/ja_JP.eucJP/man/man2/mlock.2 b/ja_JP.eucJP/man/man2/mlock.2 new file mode 100644 index 0000000000..15b0f70071 --- /dev/null +++ b/ja_JP.eucJP/man/man2/mlock.2 @@ -0,0 +1,169 @@ +.\" 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.4.2.2 1999/08/29 14:49:15 peter Exp % +.\" +.Dd June 2, 1993 +.Dt MLOCK 2 +.Os +.Sh 名称 +.Nm mlock , +.Nm munlock +.Nd 物理ページをメモリ内でロック (アンロック) する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 戻り値 +戻り値 0 は呼び出しが完了し、範囲内のすべてのページがロック、 +またはアンロックされてたことを示します。戻り値 -1 はエラーが起きて、 +そして範囲内のすべてのページのロックされた +ステータスが変更されないことを示します。この場合、エラーを示すために +グローバル位置 +.Va errno +が設定されます。 +.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 mmap 2 , +.Xr munmap 2 , +.Xr setrlimit 2 , +.Xr getpagesize 3 +.Sh バグ +Sun の実装と異なり、同じアドレス範囲に関する複数の +.Fn mlock +呼び出しに対して、実際にページをアンロック +するために対応する数の +.Fn munlock +呼び出しが必要です。つまり +.Fn mlock +のネストです。これは実装上の結果 +であって仕様ではないと考える必要があります。 +.Pp +プロセスごとのリソースの限界はロックされた仮想メモリの量への制限で、 +システム全体に共通の制限はロックされた物理ページの数についてのものです。 +このように、2 つの別々のマッピングから同じ物理ページを +ロックするとプロセスごとの制限に対しては 2 ページとしてカウントされ、 +システム制限では 1 ページだけとしてカウントされます。 + +プロセスごとのリソース制限は現時点ではサポートされていません。 +.Sh 歴史 +.Fn mlock +関数と +.Fn munlock +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/mmap.2 b/ja_JP.eucJP/man/man2/mmap.2 new file mode 100644 index 0000000000..764fb3023b --- /dev/null +++ b/ja_JP.eucJP/man/man2/mmap.2 @@ -0,0 +1,253 @@ +.\" 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 +.\" +.Dd May 11, 1995 +.Dt MMAP 2 +.Os BSD 4 +.Sh 名称 +.Nm mmap +.Nd ファイルまたはデバイスをメモリにマップする +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 MAP_FIXEDX +.It Dv PROT_EXEC +ページは実行できます。 +.It Dv PROT_READ +ページは読取りできます。 +.It Dv PROT_WRITE +ページは書込みできます。 +.El +.Pp +.Fa flags +パラメータは、マップされたオブジェクトのタイプ、マッピングオプション、 +およびマップされたページのコピーに対して行なわれた修正が、プロセスに +固有であるかまたは他からの参照と共有されるかを指定します。 +共有、マッピングタイプ、およびオプションは、以下の値の論理和 +.\".Em or Ns 'ing +.Em ( or ) +を取った値で +.Fa flags +引数に指定します。 +.Pp +.Bl -tag -width MAP_FIXEDX +.It Dv MAP_ANON +どの特定のファイルとも対応していない匿名メモリをマップします。 +.Dv MAP_ANON +を作成するのに使用される +ファイル記述子は \-1 である必要があります。 +.Fa offset +パラメータは無視されます。 +.\".It Dv MAP_FILE +.\"Mapped from a regular file or character-special device memory. +.It Dv MAP_FIXED +システムが、指定されたアドレスと異なるアドレスを選択することを許容しません。 +指定されたアドレスが使用できない場合、 +.Fn mmap +は処理に失敗します。MAP_FIXED が指定されている場合、 +.Fa addr +はページサイズの倍数である必要があります。 +このオプションの使用はお勧めできません。 +.It Dv MAP_HASSEMAPHORE +領域にセマフォが含まれている可能性があること、特殊な処理が必要な可能性が +あることをカーネルに通知します。 +.It Dv MAP_INHERIT +.Xr execve 2 +システムコールを通じて領域が継承できるようにします。 +.It Dv MAP_PRIVATE +修正は固有になります。 +.It Dv MAP_SHARED +修正は共有されます。 +.It Dv MAP_STACK +このオプションが利用できるのは、システムのカーネルをコンパイルするときに +VM_STACK を定義してコンパイルした場合だけです。 +これは i386 についてだけデフォルトです。他のアーキテクチャで +このオプションを有効にしたい場合は、/etc/make.conf 内で -DVM_STACK を +COPTFLAGS に追加する方法を検討してください。 +MAP_STACK は MAP_ANON および 0 の +.Fa offset +指定を含みます。 +.Fa fd +は -1 でなければならず、 +.Fa prot +には少なくとも PROT_READ と PROT_WRITE が入っている必要があります。 +このオプションは、スタックの +先頭を開始点とし下方に伸びる、サイズが最大で +.Fa len +バイトまで伸びるメモリ領域を作成します。スタックの +先頭は、呼び出しから返された開始アドレスに +.Fa len +バイトを加えたものになります。最も伸びた場合のスタックの下端は、 +呼び出しによって返される開始アドレスになります。 +.El +.Pp +.Xr close 2 +関数はページをアンマップしません。詳細については +.Xr munmap 2 +を参照してください。 +.Pp +現在の設計ではプロセスはスワップ空間の位置を指定できません。 +将来は、追加のマッピングタイプ +.Dv MAP_SWAP +を定義するかもしれません。この場合、ファイル記述子引数には +スワップを行なうべきファイルまたはデバイスを指定します。 +.Sh 戻り値 +正常に完了すると、 +.Fn mmap +は、マップされた領域を指すポインタを返します。そうでない場合は +値 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 +がページ境界に整列していませんでした (後述する「バグ」を参照)。 +.It Bq Er ENOMEM +.Dv MAP_FIXED +が指定されて +.Fa addr +パラメータが与えられませんでした。 +.Dv MAP_ANON +が指定されて利用できるメモリが不充分でした。 +.Sh 関連項目 +.Xr madvise 2 , +.Xr mincore 2 , +.Xr mlock 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munlock 2 , +.Xr munmap 2 , +.Xr getpagesize 3 +.Sh バグ +.Ar len +は 2GB に限定されます。2GB をわずかに上回るマッピングは機能しませんが、2GB、 +4GB、6GB、および 8GB よりわずかに少ないファイルサイズについて +(ファイルサイズ % 2GB) のサイズのウィンドウをマップできます。 +.Pp +制約は多彩なな理由から生じています。そのほとんどは、極端に性能が低下するために +.Tn FreeBSD +の VM システム内で64 ビットのオフセットを使用したくないというものです。 +したがって +.Tn FreeBSD +は 32 ビットのページインデックスを使用しており、これによって +.Tn FreeBSD +では最高で 8TB までのファイルサイズを利用できます。実際には +ファイルシステムコード内のバグによってさらに制約が課されて、 +1TB までが利用できます。 +(ブロック番号計算を行なっているときの桁落ち)。 +.Pp +2GB 制限のもう一つの理由は、ファイルシステムメタデータが負のオフセットに +存在できるということです。 +.Pp +現在われわれはページ境界に整列したファイルオフセットのみを処理できます。 diff --git a/ja_JP.eucJP/man/man2/mount.2 b/ja_JP.eucJP/man/man2/mount.2 new file mode 100644 index 0000000000..72c326812e --- /dev/null +++ b/ja_JP.eucJP/man/man2/mount.2 @@ -0,0 +1,309 @@ +.\" 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 +.\" +.Dd May 24, 1995 +.Dt MOUNT 2 +.Os BSD 4 +.Sh 名称 +.Nm mount , +.Nm unmount +.Nd ファイルシステムをマウントまたはマウント解除する +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <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" +.Sh 解説 +.Fn mount +関数は、ファイルシステムオブジェクトをシステムファイルツリーのポイント +.Ar dir +に付けます。引数 +.Ar data +はマウントされるファイルシステムオブジェクトを記述します。引数 +.Ar type +は +.Ar data +をどのように解釈するかをカーネルに通知します (後述の +.Ar type +を参照)。ファイルシステムの内容は、 +新しいマウントポイント +.Ar dir +を通して利用できるようになります。マウントが成功すると +.Ar dir +にあるどのファイルも覆い隠された状態になり、 +ファイルシステムがマウント解除されるまで利用できなくなります。 +.Pp +次の +.Ar 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_SUIDDIR +SUID ビットが設定されたディレクトリは、新しいファイルの所有者を +ディレクトリと同じに設定します。 +.It Dv MNT_SYNCHRONOUS +ファイルシステムへの入出力はすべて同期的に行なわれます。 +.It Dv MNT_ASYNC +ファイルシステムへの入出力はすべて非同期的に行なわれます。 +.It Dv MNT_FORCE +ファイルシステムがクリーンでないように見えても、読み書き可でマウントを +強行します。危険です。 +.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_' 'の接頭辞を付けて +命名されます。それゆえ、 +.Nm NFS +ファイルシステムは +.Xr mount_nfs 8 +マニュアルページに記述されています。 +.Pp +.Fn umount +関数呼び出しは、ファイルシステムを指定のマウントポイント +.Fa dir +から対応付け解除します。 +.Pp +.Fa flags +引数で +.Dv MNT_FORCE +を指定することで、ファイルがアクティブであっても、 +ファイルシステムが強制的にマウント解除または +読取り専用 (MNT_UPDATE と MNT_RDONLY も指定されている場合) に +される必要があることを示します。 +アクティブな特殊デバイスは機能し続けますが、 +他のアクティブなファイルへのそれ以降のアクセスは、 +たとえファイルシステムが後に再マウントされたとしてもエラーを引き起こします。 +.Pp +.Dv MNT_SUIDDIR +オプションを機能させるためには、SUIDDIR オプションがカーネル内に +組み込まれていることが必要です。 +詳細については +.Xr mount 8 +ページと +.Xr chmod 2 +ページを参照してください。 +.Sh 戻り値 +.Fn mount +はマウントが正常に完了すると値 0 を返します。 +そうでない場合は -1 が返され、エラーを示すために変数 +.Va errno +が設定されます。 +.Pp +.Fn umount +関数はマウント解除が正常に完了すると値 0 を返します。 +そうでない場合は -1 が返され、エラーを示すために変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn mount +関数は、次のうちの 1 つでも起きたときには処理を失敗します。 +.Bl -tag -width [ENOTBLK] +.It Bq Er EPERM +呼び出し側がスーパユーザではありません。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er ENOENT +.Fa dir +の構成要素が存在しません。 +.It Bq Er ENOTDIR +.Ar name +の構成要素がディレクトリでないか、または +.Ar special +のパスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er EBUSY +別のプロセスが現時点で +.Fa dir +への参照を保持しています。 +.It Bq Er EFAULT +.Fa dir +はプロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Pp +次のエラーは、 +.Em ufs +ファイルシステムのマウントについて発生する可能性があります。 +.Bl -tag -width [ENOTBLK] +.It Bq Er ENODEV +ufs_args の構成要素 +.Ar fspec +が存在しません。 +.It Bq Er ENOTBLK +.Ar fspec +はブロックデバイスではありません。 +.It Bq Er ENXIO +.Ar fspec +のメジャーデバイス番号が範囲外です (これはハードウェアに +対応するデバイスドライバが存在しないことを示します)。 +.It Bq Er EBUSY +.Ar fspec +は既にマウントされています。 +.It Bq Er EMFILE +マウントテーブル空間が枯渇しました。 +.It Bq Er EINVAL +ファイルシステムのスーパーブロックに +不都合なマジック番号または範囲外のブロックサイズがありました。 +.It Bq Er ENOMEM +ファイルシステムについてのシリンダーグループ情報を読取るのに十分な +メモリがありませんでした。 +.It Bq Er EIO +スーパーブロックまたはシリンダーグループの情報を読取る間に +入出力エラーが発生しました。 +.It Bq Er EFAULT +.Ar fspec +がプロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Pp +次のエラーは +.Em nfs +ファイルシステムマウントについて起きる可能性があります。 +.Bl -tag -width [ENOTBLK] +.It Bq Er ETIMEDOUT +.Em nfs +がサーバと接触しようとして時間切れになりました。 +.It Bq Er EFAULT +nfs_args によって記述された情報の一部が、 +プロセスに割り当てられたアドレス空間の範囲外を指しています +.El +.Pp +次のエラーは +.Em mfs +ファイルシステムについて起きる可能性があります。 +.Bl -tag -width [ENOTBLK] +.It Bq Er EMFILE +マウントテーブル空間が枯渇しました。 +.It Bq Er EINVAL +ファイルシステムのスーパーブロックに +不都合なマジック番号または範囲外のブロックサイズがありました。 +.It Bq Er ENOMEM +ファイルシステムについてのシリンダーグループ情報を読取るのに十分な +メモリがありませんでした。 +.It Bq Er EIO +スーパーブロックまたはシリンダーグループの情報を読取る間に +ページングエラーが発生しました。 +.It Bq Er EFAULT +.Em name +はプロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Pp +.Fn umount +関数は、次のエラーの 1 つでも起きたときには処理を失敗します。 +.Bl -tag -width [ENOTBLK] +.It Bq Er EPERM +呼び出し側がスーパユーザではありません。 +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EINVAL +指定されたディレクトリがマウントテーブル内にありません。 +.It Bq Er EBUSY +プロセスがファイルシステム上にあるファイルへの参照を保持しています。 +.It Bq Er EIO +キャッシュされたファイルシステム情報を書込みしている間に +入出力エラーが起きました。 +.It Bq Er EFAULT +.Fa dir +がプロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Pp +.Em ufs +マウントまたは +.Em mfs +マウントは、最大数のファイルシステムが現時点でマウントされている場合にも +処理を失敗します。 +.Sh 関連項目 +.Xr lsvfs 1 , +.Xr mfs 8 , +.Xr mount 8 , +.Xr umount 8 +.Sh バグ +エラーコードには、明瞭なメッセージにするために変更が必要なものがあります。 +.Sh 歴史 +.Fn mount +関数と +.Fn umount +関数は +.At v6 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/mprotect.2 b/ja_JP.eucJP/man/man2/mprotect.2 new file mode 100644 index 0000000000..4e05e404f0 --- /dev/null +++ b/ja_JP.eucJP/man/man2/mprotect.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. +.\" +.\" @(#)mprotect.2 8.1 (Berkeley) 6/9/93 +.\" +.Dd June 9, 1993 +.Dt MPROTECT 2 +.Os +.Sh 名称 +.Nm mprotect +.Nd ページの保護属性を制御する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> +.Ft int +.Fn mprotect "const void *addr" "size_t len" "int prot" +.Sh 解説 +.Fn mprotect +システムコールは指定のページが保護属性 +.Fa prot +を持つように変更します。すべての場合において +ページ単位での保護属性を保証するわけではありません。 +保護属性変更の細かさはリージョン全体と同じ大きさかもしれません。 +.Sh 戻り値 +処理が正常に完了すると +.Fn mprotect +は 0 を返します。そうでない場合は値 -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn mprotect +関数は次の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +引数と +.Fa len +引数で指定している仮想アドレス範囲は有効ではありません。 +.It Bq Er EACCES +呼び出しプロセスは +.Fa prot +引数によって指定される値に保護属性を変更することを許可されていません。 +.El +.Sh 関連項目 +.Xr madvise 2 , +.Xr mincore 2 , +.Xr msync 2 , +.Xr munmap 2 +.Sh 歴史 +.Fn mprotect +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/msync.2 b/ja_JP.eucJP/man/man2/msync.2 new file mode 100644 index 0000000000..bb635839b1 --- /dev/null +++ b/ja_JP.eucJP/man/man2/msync.2 @@ -0,0 +1,95 @@ +.\" 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 +.\" +.Dd June 21, 1994 +.Dt MSYNC 2 +.Os +.Sh 名称 +.Nm msync +.Nd マップされた領域を同期化する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> +.Ft int +.Fn msync "void *addr" "size_t len" "int flags" +.Sh 解説 +.Fn msync +システムコールは、修正されたページをファイルシステムに書き込んで +ファイル修正時刻を更新します。 +.Fa len +が 0 の場合、 +.Fa addr +を含むリージョン内のすべての修正済みページがフラッシュされます。 +.Fa len +が 0 でない場合、 +.Fa addr +から +.Fa len-1 +の範囲を含むページだけが調べられます。 +.Fa flags +引数は次のように指定できます。 +.Bd -literal +MS_ASYNC ただちに戻ります (現時点では実装されていません) +MS_SYNC 同期書込みを実行します +MS_INVALIDATE キャッシュされたデータをすべて無効にします +.Ed +.Sh 戻り値 +エラーが起きた場合 -1 が返され、エラーを示すために +errno が設定されます。そうでない場合は +値として 0 が返されます。 +.Sh エラー +.Fn msync +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +はハードウェアページサイズの倍数ではありません。 +.It Bq Er EINVAL +.Fa len +が大きすぎるか、または負です。 +.It Bq Er EINVAL +.Fa flags +に MS_ASYNC と MS_INVALIDATE の両方が指定されました。 +これらのフラグは同時に指定することはできません。 +.It Bq Er EIO +ファイルシステムに書込む間に入出力エラーが発生しました。 +.Sh 関連項目 +.Xr madvise 2 , +.Xr mincore 2 , +.Xr mprotect 2 , +.Xr munmap 2 +.Sh 歴史 +.Fn msync +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/munmap.2 b/ja_JP.eucJP/man/man2/munmap.2 new file mode 100644 index 0000000000..f7394887a6 --- /dev/null +++ b/ja_JP.eucJP/man/man2/munmap.2 @@ -0,0 +1,79 @@ +.\" 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 +.\" +.Dd May 27, 1994 +.Dt MUNMAP 2 +.Os +.Sh 名称 +.Nm munmap +.Nd マッピングを除去する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/mman.h> +.Ft int +.Fn munmap "void *addr" "size_t len" +.Sh 解説 +.Fn munmap +システムコールは指定アドレス範囲についてマッピングを除去し、 +これにより、以降のこのアドレス範囲内への参照は +無効なメモリ参照を引き起こすようになります。 +.Sh 戻り値 +処理が正常に完了すると +.Fn munmap +は 0 を返します。そうでない場合は値 -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn munmap +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa addr +パラメータがページ境界に整列していなかったか、 +.Fa len +パラメータが負であったか、 +またはアンマップする領域の一部がプロセスにとって有効な範囲の外側に +あります。 +.Sh 関連項目 +.Xr madvise 2 , +.Xr mincore 2 , +.Xr mprotect 2 , +.Xr msync 2 , +.Xr munmap 2 , +.Xr getpagesize 3 +.Sh 歴史 +.Fn munmap +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/nanosleep.2 b/ja_JP.eucJP/man/man2/nanosleep.2 new file mode 100644 index 0000000000..d12e52856e --- /dev/null +++ b/ja_JP.eucJP/man/man2/nanosleep.2 @@ -0,0 +1,100 @@ +.\" %FreeBSD: src/lib/libc/sys/nanosleep.2,v 1.6.2.2 1999/09/18 16:19:00 phantom Exp % +.\" $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 +.\" +.Dd April 17, 1997 +.Dt NANOSLEEP 2 +.Os +.Sh 名称 +.Nm nanosleep +.Nd ナノ秒単位の間隔でプロセス実行を中断する +.Sh 書式 +.Fd #include <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 +が NULL でない場合、それが参照する +timespec 構造体は非休眠時間で更新されます +(要求時間から、実際に休眠状態にあった時間を減算したものです)。 +.Pp +次の状態のうちのいずれかが発生した場合、 +.Fn nanosleep +関数は -1 を返して +.Va errno +を対応する値に設定します。 +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa rqtp +または +.Fa rmtp +のどちらかが、 +プロセスに割り当てられたアドレス空間の範囲外のメモリを指しています。 +.It Bq Er EINTR +.Fn nanosleep +はシグナルの配信によって割り込まれました。 +.It Bq Er EINVAL +.Fa rqtp +にゼロより小さいか、または 10 億以上のナノ秒値を指定しました。 +.It Bq Er ENOSYS +.Fn nanosleep +はこのシステムではサポートされていません。 +.El +.Sh 関連項目 +.Xr sigsuspend 2 , +.Xr sleep 3 +.Sh 規格 +.Fn nanosleep +関数は +.St -p1003.1b-93 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/nfssvc.2 b/ja_JP.eucJP/man/man2/nfssvc.2 new file mode 100644 index 0000000000..81fe18c089 --- /dev/null +++ b/ja_JP.eucJP/man/man2/nfssvc.2 @@ -0,0 +1,250 @@ +.\" 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.6.2.1 1999/08/29 14:49:16 peter Exp % +.\" +.\" WORD: principal 主体名 +.Dd June 9, 1993 +.Dt NFSSVC 2 +.Os +.Sh 名称 +.Nm nfssvc +.Nd NFS nfssvc - NFS サービス +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <sys/mount.h> +.Fd #include <sys/time.h> +.Fd #include <nfs/rpcv2.h> +.Fd #include <nfs/nfs.h> +.Fd #include <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 +を呼び出し、ブロック入出力サーバデーモンとしてカーネルに入ります。 +.Nm 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 +デーモンは、errno == 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 struct を指すポインタ */ + uid_t nsd_uid; /* cred にマップされる実効 uid*/ + u_long 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_long nsd_ttl; /* 証書の持続時間 (秒) */ + NFSKERBKEY_T nsd_key; /* セッションキー */ +}; +.Ed +.Pp +.Xr nfsd 8 +デーモンは、Kerberos 認証チケットを受信するたびに、 +.Fn nfssvc +から errno == ENEEDAUTH で戻ります。 +.Xr nfsd 8 +は、チケットを認証し、フィールド nsd_uid で指定された +``user id'' 用の一連の証書をサーバ上で生成しようとします。 +これを行うには、最初に Kerberos チケットを認証してから、 +Kerberos の主体名 (principal) を +ローカル名にマップし、 +.Xr getpwnam 3 +と +.Xr getgrouplist 3 +経由でそのユーザについての一連の証書を得ます。 +正常に完了すると、 +.Xr nfsd 8 +は、 +.Dv NFSSVC_NFSD +フラグと +.Dv NFSSVC_AUTHIN +フラグを設定して +.Fn nfssvc +を呼び出し、 +nsd_cr 内の証書のマッピングをカーネルに渡し、 +そのクライアント用のサーバソケット上でマップが +キャッシュされるようにします。認証が失敗した場合、 +.Xr nfsd 8 +はフラグ +.Dv NFSSVC_NFSD +および +.Dv NFSSVC_AUTHINFAIL +を設定して +.Fn nfssvc +を呼び出し、認証が失敗したことを示します。 +.Pp +.Xr nfsd 8 +マスタサーバデーモンは、フラグ +.Dv NFSSVC_ADDSOCK +および次の構造体を指すポインタを設定して +.Fn nfssvc +を呼び出し、 +.Xr nfsd 8 +デーモンがサービスを行えるようにサーバ側の +.Tn NFS +ソケットをカーネルに渡します。 +.Bd -literal +struct nfsd_args { + int sock; /* サービスを行うソケット */ + caddr_t name; /* 接続をベースとしたソケットのクライアントアドレス */ + int namelen;/* 名前の長さ */ +}; +.Ed +.Sh 戻り値 +通常、 +.Fn nfssvc +は、サーバがシグナルによって終了されるときを除いて戻りません。 +このときには、値 0 が返されます。 +そうでない場合は、-1 が返され、エラーを指定するためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Bl -tag -width [ENEEDAUTH] +.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 の要求定義に特に従ったものに +なっています。 +本来ならば、認証サポートが必要であることを示す値を返す必要があります。 +なぜなら、 +.Dv ENEEDAUTH +は本来ならエラーではないからです。 +引数である構造体のいくつかのフィールドは +正当なものであると仮定されており、直前の呼び出しから +変更されないことが時々あります。 +このようであるので、 +.Fn nfssvc +はとりわけ注意を払って使用しなくてはなりません。 diff --git a/ja_JP.eucJP/man/man2/open.2 b/ja_JP.eucJP/man/man2/open.2 new file mode 100644 index 0000000000..6f85bdada4 --- /dev/null +++ b/ja_JP.eucJP/man/man2/open.2 @@ -0,0 +1,277 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)open.2 8.2 (Berkeley) 11/16/93 +.\" +.Dd November 16, 1993 +.Dt OPEN 2 +.Os BSD 4 +.Sh 名称 +.Nm open +.Nd 読取りまたは書込み用にファイルを開くかまたは作成する +.Sh 書式 +.Fd #include <fcntl.h> +.Ft int +.Fn open "const char *path" "int flags" "..." +.Sh 解説 +.Fa path +によって指定されるファイルは、引数 +.Fa flags +によって指定されたように読取りまたは書込み (またはその両方) 用に開かれ、 +そのファイル記述子は呼び出し元プロセスに返されます。 +.Fa flags +引数で、 +.Dv ( O_CREAT +フラグを指定することによって) ファイルが存在しない場合にファイルを +作成するように指示できます。 +この場合、 +.Nm +は 3 番目の引数 +.Fa "mode_t mode" +が必要であり、ファイルは +.Xr chmod 2 +で説明されているようにモード +.Fa mode +で作成され、プロセスの umask 値によって修正されます +.Pf ( Xr umask 2 +を参照)。 +.Pp +指定されたフラグは次の値の論理和 +.\".Em or Ns 'ing +.Em ( or ) +で作成されます。 +.Pp +.Bd -literal -offset indent -compact +O_RDONLY 読取り専用で開く +O_WRONLY 書込み専用で開く +O_RDWR 読取りと書込み用に開く +O_NONBLOCK 開くときにブロックしない +O_APPEND 書込みのたびに末尾に追加する +O_CREAT ファイルが存在しない場合、作成する +O_TRUNC サイズを 0 に切り捨てる +O_EXCL ファイルを作成し、存在する場合はエラー +O_SHLOCK 共有ロックを自動的に取得する +O_EXLOCK 排他的ロックを自動的に取得する +.Ed +.Pp +.Dv O_APPEND +を設定してファイルを開くと、ファイルへ書込むごとに末尾に追加されます。 +.Dv O_TRUNC +が指定されていてファイルが存在する場合、ファイルは長さ 0 に +切り捨てられます。 +.Dv O_EXCL +が +.Dv O_CREAT +とともに設定されていてファイルが既に存在する場合、 +.Fn open +はエラーを返します。これを使用して、 +簡単な排他的アクセスロッキングメカニズムを +実現できます。 +.Dv O_EXCL +が設定されていてパス名の最後の構成要素がシンボリックリンクの場合、 +シンボリックリンクが存在しない名前を指していても +.Fn open +は処理に失敗します。 +.Dv O_NONBLOCK +フラグが指定されていて +.Fn open +呼び出しの結果が何らかの理由でプロセスがブロックされると (たとえば、 +ダイアルアップ回線でのキャリアの待機)、 +.Fn open +は即座に戻ります。プロセスが開いたファイルに +最初に入出力しようとしたとき、プロセスはブロックします +(現時点では実装されていません)。 +.Pp +ファイルを開くときに、共有ロックについては +.Dv O_SHLOCK 、 +排他的ロックについては +.Dv O_EXLOCK +を +設定することによって +.Xr flock 2 +によってロックが得られます。 +.Dv O_CREAT +でファイルを作成する場合、ロックについての要求は処理に失敗すること +はありません (ただし、下層にあるファイルシステムが +ロックをサポートしている場合に限ります)。 +.Pp +正常に完了すると、 +.Fn open +は、ファイル記述子を示す負でない整数を返します。 +処理に失敗すると -1 を返します。ファイル内の現在の位置をマークする +ファイルポインタはファイルの先頭に設定されます。 +.Pp +新しいファイルが作成されるとき、そのファイルにはそれが含まれている +ディレクトリのグループが与えられます。 +.Pp +新しい記述子は +.Xr execve 2 +システムコールを通じて開いたままに設定されます。 +.Xr close 2 +と +.Xr fcntl 2 +を参照してください。 +.Pp +システムには、1 つのプロセスによって同時に開けるファイル記述子数に +制限があります。 +.Xr getdtablesize 2 +は現在のシステム制限を返します。 +.Pp +.Sh システムの注意事項 +非スレッドライブラリでは、 +.Fn open +は +.Va open +システムコールとして実装されています。 +.Pp +スレッドライブラリでは、 +.Va open +システムコールは +.Fn _thread_sys_open +にアセンブルされ、 +.Fn open +は、スレッドの再スケジュールを無効にし +.Fn _thread_sys_open +を呼び出す関数として実装されています。 +戻る前に、 +.Fn open +はスレッドの再スケジュールを有効にします。 +.Sh 戻り値 +正常に完了すると、 +.Fn open +はファイル記述子である負でない整数を返します。 +処理に失敗すると -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +指定のファイルは次の場合を除いて開かれます。 +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +.Dv O_CREAT +が設定されてなく、指定されたファイルが存在しません。 +.It Bq Er ENOENT +存在しなければならないパス名の構成要素が存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er EACCES +要求されたパーミッション (読取りまたは書込み用、または両方) が +指定のフラグに拒否されています。 +.It Bq Er EACCES +.Dv O_CREAT +が指定されていて、ファイルが存在せず、かつファイルを作成する +ディレクトリに書込み許可がありません。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EISDIR +指定のファイルがディレクトリであり、引数が書込み用に開くことを +指定しています。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあり、 +そのファイルを修正しようとしています。 +.It Bq Er EMFILE +プロセスは、開いたファイル記述子に関する制限に達しています。 +.It Bq Er ENFILE +システムファイルテーブルが満杯です。 +.It Bq Er ENXIO +指定のファイルはキャラクタ型特殊ファイルまたはブロック型特殊 +ファイルであり、この特殊ファイルに対応するデバイスは存在していません。 +.It Bq Er EINTR +.Fn open +操作がシグナルによって割り込みされました。 +.It Bq Er EOPNOTSUPP +.Dv O_SHLOCK +または +.Dv O_EXLOCK +が指定されましたが、下層となっているファイルシステムは +ロックをサポートしていません。 +.It Bq Er ENOSPC +.Dv O_CREAT +が指定されていて、ファイルが存在せず、新しいファイル用のエントリを +配置中のディレクトリは、そのディレクトリを含むファイルシステムに +空間が残っていないため拡張できません。 +.It Bq Er ENOSPC +.Dv O_CREAT +が指定されていて、ファイルが存在せず、かつファイルが作成中の +ファイルシステム上に未使用の inode がありません。 +.It Bq Er EDQUOT +.Dv O_CREAT +が指定されていて、ファイルが存在せず、かつ新しいファイル用の +エントリを配置中のディレクトリは、そのディレクトリを含む +ファイルシステム上でディスクブロックの +ユーザのクォータが枯渇したために拡張できません。 +.It Bq Er EDQUOT +.Dv O_CREAT +が指定されていて、ファイルが存在せず、かつファイルを作成中の +ファイルシステム上で inode のユーザのクォータが枯渇しています。 +.It Bq Er EIO +ディレクトリエントリを作成中、または +.Dv O_CREAT +用の inode を割当て中に入出力エラーが発生しました。 +.It Bq Er ETXTBSY +ファイルは実行中の純粋な手続き (共有テキスト) ファイルであり、 +.Fn open +呼び出しは書込みアクセスを要求しています。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EEXIST +.Dv O_CREAT +と +.Dv O_EXCL +が指定されていて、ファイルが存在します。 +.It Bq Er EOPNOTSUPP +ソケットを開こうとしました (現時点では実装されていません)。 +.It Bq Er EINVAL +.Dv O_RDONLY , +.Dv O_WRONLY +および +.Dv O_RDWR +の不正な組合わせで記述子を開こうとしました。 +.El +.Sh 関連項目 +.Xr chmod 2 , +.Xr close 2 , +.Xr dup 2 , +.Xr getdtablesize 2 , +.Xr lseek 2 , +.Xr read 2 , +.Xr umask 2 , +.Xr write 2 +.Sh 歴史 +.Fn open +関数は +.At v6 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/pathconf.2 b/ja_JP.eucJP/man/man2/pathconf.2 new file mode 100644 index 0000000000..ca3530100f --- /dev/null +++ b/ja_JP.eucJP/man/man2/pathconf.2 @@ -0,0 +1,157 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt PATHCONF 2 +.Os BSD 4 +.Sh 名称 +.Nm pathconf , +.Nm fpathconf +.Nd 構成可能なパス名変数を取得する +.Sh 書式 +.Fd #include <unistd.h> +.Ft long +.Fn pathconf "const char *path" "int name" +.Ft long +.Fn fpathconf "int fd" "int name" +.Sh 解説 +.Pp +.Fn pathconf +関数と +.Fn fpathconf +関数は、構成可能なシステム限界の現在値、またはパス名または +ファイル記述子に対応するオプション変数を +アプリケーションが判定する方法を提供します。 +.Pp +.Fn pathconf +の場合、 +.Fa path +引数はファイルまたはディレクトリの名前です。 +.Fn fpathconf +の場合、 +.Fa fd +引数はオープンファイルの記述子です。 +.Fa name +引数は、照会するシステム変数を指定します。 +それぞれの名前に関するシンボリック定数はインクルードファイル +.Li <unistd.h> +にあります。 +.Pp +利用可能な値は次のとおりです。 +.Pp +.Bl -tag -width "123456" +.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 を返します。 +.It Li _PC_NO_TRUNC +KERN_NAME_MAX より長いファイル名で切り捨てられる場合は 1 を返します。 +.It Li _PC_VDISABLE +値を無効にする終了文字を返します。 +.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 +.Fn pathconf +は次の場合に失敗します。 +.Bl -tag -width ENAMETOOLONGAA +.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 +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Pp +.Bl -tag -width [EFAULT] +.Fn fpathconf +は次の場合に失敗します。 +.It Bq Er EBADF +.Fa fd +は有効なオープンファイル記述子ではありません。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr sysctl 3 +.Sh 歴史 +.Fn pathconf +関数と +.Fn fpathconf +関数は +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/pipe.2 b/ja_JP.eucJP/man/man2/pipe.2 new file mode 100644 index 0000000000..b11966d873 --- /dev/null +++ b/ja_JP.eucJP/man/man2/pipe.2 @@ -0,0 +1,112 @@ +.\" 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.7.2.4 1999/08/29 14:49:16 peter Exp % +.\" +.Dd June 4, 1993 +.Dt PIPE 2 +.Os BSD 4 +.Sh 名称 +.Nm pipe +.Nd プロセス間通信について記述子のペアを作成する +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn pipe "int *fildes" +.Sh 解説 +.Fn pipe +関数は +双方向のデータフローを可能とするオブジェクトである +.Em pipe +を作成し、ペアのファイル記述子を割り当てます。 +.Pp +慣習により 1 番めの記述子が通常、パイプの +.Em read end +として使用され、2 番めの記述子が通常、 +.Em write end +なので、 +.Fa fildes[1] +に書込まれたデータが +.Fa fildes[0] +に現れます (すなわち、 +.Fa fildes[0] +から読取れます)。 +これによって 1 つのプログラムの出力が別のプログラムに送信できます。 +ソースの標準出力はパイプの書込み終端であるようにセットアップされ、 +シンクの標準入力はパイプの読取り終端であるようにセットアップされます。 +パイプ自体は、すべての対応する記述子が閉じるまで持続します。 +.Pp +1 端が閉じているパイプは +.Em widowed +(相手を失った) と見なされます。このようなパイプに書込みをすると、 +書込みプロセスは +.Dv SIGPIPE +信号を受信します。読取り側にファイルの終了を伝える方法は、 +書込み側のパイプを閉じてしまうしかありません。 +読取り側がバッファに入っているデータを使用した後、相手を失ったパイプを +読取ると 0 カウントが返されます。 +.Pp +実装したパイプのこの双方向という性質は古いシステムには移植できないので、 +一方向にパイプを使用する +ときは、従来の方法で端点を使用する慣習を使用することをお勧めします。 +.Sh 戻り値 +パイプの作成が正常に完了すると、0 を返します。そうでない場合は -1 が返され、 +エラーを示すために変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn pipe +呼び出しは次の場合に失敗します。 +.Bl -tag -width [EMFILE] +.It Bq Er EMFILE +アクティブな記述子が多すぎます。 +.It Bq Er ENFILE +システムファイルテーブルが満杯です。 +.It Bq Er EFAULT +.Fa fildes +バッファがプロセスのアドレス空間の不正な領域にあります。 +.El +.Sh 関連項目 +.Xr sh 1 , +.Xr fork 2 , +.Xr read 2 , +.Xr socketpair 2 , +.Xr write 2 +.Sh 歴史 +.Fn pipe +関数は +.At v3 +で登場しました。 +.Pp +双方向パイプははじめて +.At V.4 +で使用されました。 diff --git a/ja_JP.eucJP/man/man2/poll.2 b/ja_JP.eucJP/man/man2/poll.2 new file mode 100644 index 0000000000..7865f1e2ab --- /dev/null +++ b/ja_JP.eucJP/man/man2/poll.2 @@ -0,0 +1,187 @@ +.\" %NetBSD: poll.2,v 1.3 1996/09/07 21:53:08 mycroft Exp % +.\" %FreeBSD: src/lib/libc/sys/poll.2,v 1.2.2.1 1999/08/29 14:49:17 peter Exp % +.\" +.\" Copyright (c) 1996 Charles M. Hannum. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by Charles M. Hannum. +.\" 4. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd September 7, 1996 +.Dt POLL 2 +.Os +.Sh 名称 +.Nm poll +.Nd 同期的な入出力の多重化 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <poll.h> +.Ft int +.Fn poll "struct pollfd *fds" "unsigned int nfds" "int timeout" +.Sh 解説 +.Fn poll +はファイル記述子の集合を調査して、 +それらのいずれかが入出力の準備ができているか否かを調べます。 +.Fa fds +引数は +.Aq Pa poll.h +に定義された pollfd 配列を指す +ポインタ (後述) です。 +.Fa nfds +引数は +.Fa fds +配列のサイズを決定します。 +.Bd -literal +struct pollfd { + int fd; /* ファイル記述子 */ + short events; /* 検索するイベント */ + short revents; /* 返されたイベント */ +}; +.Ed +.Pp +.Fa pollfd +構造体のフィールドは次のとおりです: +.Bl -tag -width XXXrevents +.It fd +ポールするファイル記述子。 +.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) の場合、ポールは永久にブロックします。 +.Fa timeout +が 0 の場合 +.Fn poll +はブロックせずに戻ります。 +.Sh 戻り値 +.Fn poll +は入出力の準備が完了した記述子の番号を返します。 +エラーが起きた場合は -1 を返します。 +時間切れになると +.Fn poll +は 0 を返します。割り込み呼び出しによるエラーも含めて +.Fn poll +がエラーで戻った場合、 +.Fa fds +配列は変更されません。 +.Sh 互換性 +この実装は、ある指定のファイル記述子においては +.Fn poll +がエラー付きで戻らない場合があるという点で、 +過去のものと異なっています。 +過去の実装ではこのようなエラー付きで戻るであろう場合 +(たとえば +.Xr revoke 2 +された記述子を検査しようとした場合)では、この実装は代わりに +.Fa events +ビットマスクを +.Fa revents +ビットマスクにコピーします。 +この記述子上で入出力を実行しようとするとエラーが返されます。 +この動作はより便利であると考えられています。 +.Sh エラー +.Fn poll +は次のエラーで戻ります。 +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa fds +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINTR +時間切れになる前に、そして選択されたイベントが発生する前に +シグナルが配信されました。 +.It Bq Er EINVAL +指定の時間制限が負です。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr connect 2 , +.Xr read 2 , +.Xr recv 2 , +.Xr select 2 , +.Xr send 2 , +.Xr write 2 +.Sh バグ +.Fa events +ビットマスクと +.Fa revents +ビットマスクのいくつかのフィールド間の違いは、 +STREAMS 以外では実用的ではありません。 +それらのフィールドは、既存のソフトウェアとの互換性を +保つために定義されています。 +.Sh 歴史 +.Fn poll +関数は +.At V +で登場しました。 +このマニュアルページと実装の主要な部分は +.Nx +から得たものです。 diff --git a/ja_JP.eucJP/man/man2/profil.2 b/ja_JP.eucJP/man/man2/profil.2 new file mode 100644 index 0000000000..9891b624c7 --- /dev/null +++ b/ja_JP.eucJP/man/man2/profil.2 @@ -0,0 +1,127 @@ +.\" 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.7.2.1 1999/08/29 14:49:17 peter Exp % +.\" +.Dd June 4, 1993 +.Dt PROFIL 2 +.Os +.Sh 名称 +.Nm profil +.Nd プロセスのプロファイルを制御する +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn profil "char *samples" "int size" "int 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 戻り値 +値 +.Fa scale +が 0 ではなく、バッファ +.Fa samples +に不正なアドレスが入っている場合、 +.Fn profil +は -1 を返し、プロファイルは終了し、 +.Va errno +は適宜設定されます。そうでない場合、 +.Fn profil +は 0 を返します。 +.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/ja_JP.eucJP/man/man2/ptrace.2 b/ja_JP.eucJP/man/man2/ptrace.2 new file mode 100644 index 0000000000..efd3e8500a --- /dev/null +++ b/ja_JP.eucJP/man/man2/ptrace.2 @@ -0,0 +1,307 @@ +.\" %FreeBSD: src/lib/libc/sys/ptrace.2,v 1.10.2.1 1999/08/29 14:49:17 peter Exp % +.\" %NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp % +.\" +.\" This file is in the public domain. +.Dd January 20, 1996 +.Dt PTRACE 2 +.Os FreeBSD 2 +.Sh 名称 +.Nm ptrace +.Nd プロセスのトレースとデバッグ +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +(トレース +されるプロセス)を制御できます。 +ほとんどの場合、トレースされるプロセスは正常に実行されますが、 +シグナルを受信すると +.Po +.Xr sigaction 2 +を参照 +.Pc 、 +停止します。トレースのプロセスは、 +.Xr wait 2 +または +.Dv SIGCHLD +シグナルの配信によって認識し、停止されたプロセスの状態を調査し、 +適宜それが終了するかまたは継続するようにします。 +.Fn ptrace +は、これらすべてが行なわれるメカニズムです。 +.Pp +.Fa request +引数は、どの操作が実行中であるかを指定します。 +残りの引数の意味は操作で決まりますが、 +後述する 1 つの特殊なケースを除いて、 +.Fn ptrace +呼び出しはすべてトレースするプロセスによって行われ、 +.Fa pid +引数がトレースされるプロセスのプロセス ID を指定します。 +.Fa request +は次のものにできます。 +.Bl -tag -width 12n +.It Dv PT_TRACE_ME +この要求は、トレースされているプロセスが使用する唯一の要求です。 +この要求は、 +プロセスがその親によってトレースされると予想されることを宣言します。 +他の引数はすべて無視され +ます (親プロセスが子プロセスをトレースすると予想できない場合は、 +それはおそらく結果によって +混乱されています。トレースされているプロセスが停止すると、このプロセスは、 +.Eo \& +.Fn ptrace +.Ec \& +によってしか継続するようにできません)。プロセスがこの要求を使用し、 +.Xr execve 2 +またはそれに組み込まれているルーチン +.Po +たとえば、 +.Xr execv 3 +.Pc +を呼び出した場合、 +そのプロセスは新しいイメージの最初の指示を実行する前に停止します。 +また、実行中の実行可能モジュールについて +setuid または setgid ビットは無視されます。 +.It Dv PT_READ_I , Dv PT_READ_D +これらの要求は、トレースされたプロセスのアドレス空間から 1 つの +.Li int +データを読み取ります。従来、 +.Fn ptrace +は命令とデータについて区別されたアドレス空間のある +マシンを許容していました。これが 2 つの要求がある理由です。概念的には、 +.Dv PT_READ_I +が命令空間から読み取り、 +.Dv PT_READ_D +がデータ空間から読み取ります。現在の +.Tn FreeBSD +システムでは、これらの 2 つの要求は完全に同一です。 +.Fa addr +引数が、読み取りが行われる (トレースされたプロセスの仮想アドレス空間内の) +アドレスを指定します。 +このアドレスはどのような整列制約を満たす必要はありません。読み取られた値は +.Eo \& +.Fn ptrace +.Ec +からの戻り値として +返されます。 +.It Dv PT_WRITE_I , Dv PT_WRITE_D +これらの要求は +.Dv PT_READ_I +および +.Dv PT_READ_D +と平行しますが、読取るのでは +なく書き込むところが異なります。 +.Fa data +引数が書き込まれる値を指定します。 +.It Dv PT_READ_U +この要求は、トレースされるプロセスのユーザ構造体から 1 つの +.Li int +を読み取ります。 +.Fa addr +引数は、 +ユーザ構造体のベースに相対的に +int の位置を指定します。この引数は、通常、明示的にまたは +.Eo \& +.Fn ptrace +.Ec +のプロトタイプの存在のどちらかによって +.Li caddr_t +にキャストされる整数値です。 +.Dv PT_READ_I +および +.Dv PT_READ_D +と異なり、 +.Fa addr +は +.Li int +境界に整列されている必要があります。読取られた値は +.Eo \& +.Fn ptrace +.Ec +からの戻り値として返されます。 +.It Dv PT_WRITE_U +この要求はトレースされるプロセスのユーザ構造体に 1 つの +.Li int +を書き込みます。 +.Fa addr +は +.Dv PT_READ_U +についてとまったく同じようにオフセットを指定し、 +.Fa data +は +.Dv PT_WRITE_I +および +.Dv PT_WRITE_D +とまったく同じように書き込まれる値を指定します。 +.It Dv PT_CONTINUE +トレースされるプロセスは実行を継続します。 +.Fa addr +は、実行が再開される場所 (プログラムカウンタには新しい値)、 +または実行が停止されたところで再開されることを示す +.Li (caddr_t)1 +を指定します。 +.Fa data +は、実行を再開するときにトレースされるプロセスに配信されるシグナル番号、 +またはシグナルが送信されない場合は 0 を提供します。 +.It Dv PT_KILL +トレースされるプロセスは、 +.Dv PT_CONTINUE +が、配信されるシグナルとして与えられた +.Dv SIGKILL +とともに使用されたかのように終了します。 +.It Dv PT_ATTACH +この要求は、さもなければ無関係のプロセスの制御を取得し、 +それをトレース開始するように +します。トレースされるプロセスからの協力は必要としません。このケースでは、 +.Fa pid +がトレースされるプロセスのプロセス ID を指定し、 +他の 2 つの引数は無視されます。 +この要求では、ターゲットプロセスにトレースする +プロセスと同じリアル UID があること、 +それが setuid または setgid 実行可能モジュールを実行している必要が +あることが要求されます (トレースしているプロセスがルートとして実行されている +場合、これらの制約は該当しません)。 +トレースしているプロセスは、新たにトレースされるプロセスが停止させ、 +次に、これがずっとトレースされているかのように制御できます。 +.It Dv PT_DETACH +この要求は PT_CONTINUE と類似していますが、実行を継続する別の場所を +指定できないこと、 +およびそれが継続した後、トレースされたプロセスがトレースされなくなり、 +通常どおり実行を継続することが異なります。 +.El +.Pp +さらにマシンに固有の要求が存在することがあります。i386 +では、これらは次のとおりです。 +.Bl -tag -width 12n +.It Dv PT_GETREGS +この要求は、トレースされたプロセスのマシンレジスタを、 +.Fa addr +が指す +.Dq Li "struct reg" +.Pf ( Aq Pa machine/reg.h +内に定義されています) 内に読み取ります。 +.It Dv PT_SETREGS +この要求は +.Dv PT_GETREGS +の逆です。 +.Fa addr +が指す +.Dq Li "struct reg" +.Pf ( Aq Pa machine/reg.h +内に定義されています) +からトレースされたプロセスのマシンレジスタをロードします。 +.It Dv PT_GETFPREGS +この要求はトレースされるプロセスの浮動小数点レジスタを +.Fa addr +が指す +.Dq Li "struct fpreg" +.Pf ( Aq Pa machine/reg.h +に定義されています) に読み取ります。 +.It Dv PT_SETFPREGS +この要求は +.Dv PT_GETFPREGS +の反対です。 +.Fa addr +が指す +.Dq Li "struct fpreg" +.Pf ( Aq Pa machine/reg.h +内に定義されています) +からトレースされたプロセスの浮動小数点レジスタをロードします。 +.El +.Sh 戻り値 +要求にはエラーでない値として +.Li -1 +を +.Fn ptrace +に返させるものもあります。 +曖昧さをなくすために、呼び出しの前に +.Va errno +を 0 に設定し、後でチェックできます。 +.Sh エラー +.Fn ptrace +関数は次の場合に処理に失敗することがあります。 +.Bl -tag -width 4n +.It Bq Er ESRCH +.Bl -bullet -compact +.It +指定のプロセス ID があるプロセスが存在しません。 +.El +.It Bq Er EINVAL +.Bl -bullet -compact +.It +プロセスが自身の上に +.Dv PT_ATTACH +を使おうとしました。 +.It +.Fa request +は正しい要求の 1 つではありませんでした。 +.It +.Dv PT_READ_U +または +.Dv PT_WRITE_U +への +.Fa addr +が +.\".Li int Ns \&-aligned. +.Li int +で整列していませんでした。 +.It +.Dv PT_CONTINUE +へのシグナル番号 +.Fa ( data +内) が、0 ではないか、または正しいシグナル番号ではありませんでした。 +.It +.Dv PT_GETREGS , +.Dv PT_SETREGS , +.Dv PT_GETFPREGS +または +.Dv PT_SETFPREGS +が、有効なレジスタを設定せずに +プロセスについて試みられました +(これは通常、システムプロセスについてだけ真です)。 +.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 +.Sh 関連項目 +.Xr execve 2 , +.Xr sigaction 2 , +.Xr wait 2 , +.Xr execv 3 +.Sh 歴史 +.Fn ptrace +関数は +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/quotactl.2 b/ja_JP.eucJP/man/man2/quotactl.2 new file mode 100644 index 0000000000..d72626ef2a --- /dev/null +++ b/ja_JP.eucJP/man/man2/quotactl.2 @@ -0,0 +1,227 @@ +.\" 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.8.2.1 1999/09/18 16:19:00 phantom Exp % +.\" +.\" WORD: quota 割り当て制限 +.\" WORD: quota file 割り当て制限情報ファイル +.\" WORD: quota file 割り当て制限を記録したファイル +.\" WORD: usage 使用状況 +.\" +.Dd March 10, 1995 +.Dt QUOTACTL 2 +.Os +.Sh 名称 +.Nm quotactl +.Nd ファイルシステム割り当て制限を操作する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <ufs/ufs/quota.h> +.Ft int +.Fn quotactl "const char *path" "int cmd" "int id" "char *addr" +.Sh 解説 +.Fn quotactl +システムコールは、 +ファイルシステムの割り当て制限を有効や無効にしたり、操作します。 +.Fa cmd +で与えられた割り当て制限制御コマンドは、指定のユーザ +.Fa id +に対して +.Fa path +で指定されたファイルを操作します (注釈: +.Fa cmd +の値を明確に表すために、 +.Ao Pa ufs/ufs/quota.h Ac +で定義されている +QCMD マクロを使用すべきです)。 +オプションとして各コマンド固有のデータ構造体のアドレスを +.Fa addr +に指定できます。 +これがどう解釈されるかは各コマンド毎に後述します。 +.Pp +現時点で、割り当て制限は +.Dq ufs +ファイルシステムについてのみサポートされています。 +.Dq ufs +の場合、コマンドは、主たるコマンド (後述) および +.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 +構造体 +.Pf ( Ao Pa ufs/ufs/quota.h Ac +で定義されています) を指すポインタです。 +.It Dv Q_SETQUOTA +識別子 +.Fa id +で指定されるユーザまたはグループ +(どちらであるかはコマンドタイプによって決定されます) +のディスク割り当て制限を設定します。 +.Fa addr +は、 +.Fa struct dqblk +構造体 +.Pf ( Ao Pa ufs/ufs/quota.h Ac +で定義されています) を指すポインタです。 +.Fa dqblk +構造体の使用状況を示すフィールドは無視されます。 +この呼び出しはスーパユーザだけに制限されています。 +.It Dv Q_SETUSE +識別子 +.Fa id +で指定されるユーザまたはグループ +(どちらであるかはコマンドタイプによって決定されます) +のディスク使用制限を設定します。 +.Fa addr +は、 +.Fa struct dqblk +構造体 +.Pf ( Ao Pa ufs/ufs/quota.h Ac +で定義されています) を指すポインタで、 +使用状況を示すフィールドだけが使われます。 +この呼び出しはスーパユーザだけに制限されています。 +.It Dv Q_SYNC +割り当て使用状況の、ディスク上のコピーを更新します。 +コマンドタイプには、どのタイプの割り当て制限を更新するかを指定します。 +.Fa id +パラメータと +.Fa addr +パラメータは無視されます。 +.El +.Sh 戻り値 +処理が正常に完了すると 0 を返します。 +そうでない場合は、値 -1 が返され、グローバル変数 +.Va errno +が失敗の理由を示します。 +.Sh エラー +.Fn quotactl +呼び出しは次の場合に失敗します。 +.Bl -tag -width ENAMETOOLONGAA +.It Bq Er EOPNOTSUPP +カーネルが +.Dv QUOTA +オプションを指定してコンパイルされていません。 +.It Bq Er EUSERS +割り当て制限のテーブルを拡張できません。 +.It Bq Er EINVAL +.Fa cmd +またはコマンドタイプが無効です。 +.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/ja_JP.eucJP/man/man2/read.2 b/ja_JP.eucJP/man/man2/read.2 new file mode 100644 index 0000000000..c63698b621 --- /dev/null +++ b/ja_JP.eucJP/man/man2/read.2 @@ -0,0 +1,261 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)read.2 8.4 (Berkeley) 2/26/94 +.\" +.Dd February 26, 1994 +.Dt READ 2 +.Os BSD 4 +.Sh 名称 +.Nm read , +.Nm readv , +.Nm pread +.Nd 入力を読取る +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/uio.h> +.Fd #include <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 { + char *iov_base; /* ベースアドレス */ + size_t iov_len; /* 長さ */ +}; +.Ed +.Pp +.Fa iovec +の各エントリは、データを配置するべきメモリ領域のベースアドレスと +長さを指定しています。 +.Fn readv +は、次のエントリに進む前に必ず領域を完全に満たします。 +.Pp +シーク可能なオブジェクト上では +.Fn read +は +.Fa d +に対応するポインタが指定する位置から開始 +します +.Pf ( Xr lseek 2 +を参照)。 +.Fn read +からの戻り時に、ポインタは、実際に読取られたバイト数 +だけ増加させられます。 +.Pp +シークできないオブジェクトは必ず現在の位置から読取られます。 +そのようなオブジェクトに対応するポインタの値は未定義です。 +.Pp +処理が成功すると、 +.Fn read , +.Fn readv +および +.Fn pread +は、実際に読取られバッファ内に配置されたバイト +数を返します。記述子が通常ファイルを参照しており、 +ファイルの終端までに十分な量のバイトがあれば、 +システムは要求されたバイト数を読取ることを保証しますが、 +他のケースではそうではありません。 +.Pp +.Sh システムの注意事項 +.Pp +非スレッドライブラリ +.Fn read +は +.Va read +システムコールとして実装されています。 +.Pp +スレッドライブラリの場合、 +.Va read +システムコールは +.Fn _thread_sys_read +にアセンブルされ、 +.Fn read +は読取り用に +.Va d +をロックしてから +.Fn _thread_sys_read +を呼び出す関数として実装されています。 +.Fn _thread_sys_read +の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。戻る前に +.Fn read +は +.Va d +をアンロックします。 +.Pp +非スレッドライブラリ +.Fn readv +は +.Va readv +システムコールとして実装されています。 +.Pp +スレッドライブラリの場合、 +.Va readv +システムコールは +.Fn _thread_sys_readv +システムコールにアセンブルされ、 +.Fn readv +は、読取り用に +.Va d +をロックしてから +.Fn _thread_sys_readv +を呼び出す関数として実装されています。 +.Fn _thread_sys_readv +の呼び出しがブロックする場合、コンテキストスイッチが実行されます。 +戻る前に +.Fn readv +は +.Va d +をアンロックします。 +.Sh 戻り値 +正常に完了すると、実際に読取られたバイト数が返されます。 +ファイル終了 (EOF) が読取られると +0 が返されます。そうでない場合は -1 が返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn read , +.Fn readv +および +.Fn pread +は次の場合を除いて正常に完了します。 +.Bl -tag -width Er +.It Bq Er EBADF +.Fa d +は読取り用にオープンされた有効なファイルまたはソケットの記述子ではありません。 +.It Bq Er EFAULT +.Fa buf +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムから読取っている間に入出力エラーが発生しました。 +.It Bq Er EINTR +データが到着する前に、シグナルの配送により低速デバイスからの読取りが +割り込まれました。 +.It Bq Er EINVAL +.Fa d +に対応するポインタが負でした。 +.It Bq Er EAGAIN +ファイルは非ブロッキング入出力とマークされており、 +読取りの準備ができたデータがありません。 +.El +.Pp +さらに、 +.Fn readv +は次のエラーのうちの 1 つを返すことがあります。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa iovcnt +が 0 に等しいかまたは 0 未満であるか、または 16 より大きくなっています。 +.It Bq Er EINVAL +.Fa iov +配列の中の +.Fa iov_len +値の 1 つが負でした。 +.It Bq Er EINVAL +.Fa iov +配列の中の +.Fa iov_len +値の合計が 32 ビット整数をオーバーフローしました。 +.It Bq Er EFAULT +.Fa iov +の一部が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Pp +.Fn pread +呼び出しも次のエラーを返すことがあります。 +.Bl -tag -width Er +.It Bq Er EINVAL +指定のファイルオフセットが有効ではありません。 +.It Bq Er ESPIPE +ファイル記述子がパイプ、ソケット、または FIFO に対応しています。 +.El +.Sh 関連項目 +.Xr dup 2 , +.Xr fcntl 2 , +.Xr open 2 , +.Xr pipe 2 , +.Xr select 2 , +.Xr socket 2 , +.Xr socketpair 2 +.Sh 規格 +.Fn read +関数は +.St -p1003.1-90 +に準拠しています。 +.Fn readv +関数と +.Fn pread +関数は +.St -xpg4.2 +に準拠しています。 +.Sh 歴史 +.Fn pread +関数は +.At V.4 +で登場しました。 +.Fn readv +関数は +.Bx 4.2 +で登場しました。 +.Fn read +関数は +.At v6 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/readlink.2 b/ja_JP.eucJP/man/man2/readlink.2 new file mode 100644 index 0000000000..c8c49a089b --- /dev/null +++ b/ja_JP.eucJP/man/man2/readlink.2 @@ -0,0 +1,97 @@ +.\" 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.6.2.1 1999/08/29 14:49:18 peter Exp % +.\" +.Dd June 4, 1993 +.Dt READLINK 2 +.Os BSD 4.2 +.Sh 名称 +.Nm readlink +.Nd シンボリックリンクの値を読取る +.Sh 書式 +.Fd #include <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 ENAMETOOLONG +.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/ja_JP.eucJP/man/man2/reboot.2 b/ja_JP.eucJP/man/man2/reboot.2 new file mode 100644 index 0000000000..ad712ed725 --- /dev/null +++ b/ja_JP.eucJP/man/man2/reboot.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. +.\" +.\" @(#)reboot.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/reboot.2,v 1.5.4.1 1999/09/18 16:19:00 phantom Exp % +.\" +.Dd June 4, 1993 +.Dt REBOOT 2 +.Os BSD 4 +.Sh 名称 +.Nm reboot +.Nd システムをリブートするかまたはプロセッサを停止する +.Sh 書式 +.Fd #include <unistd.h> +.Fd #include <sys/reboot.h> +.Ft int +.Fn reboot "int howto" +.Sh 解説 +.Fn reboot +は、システムをリブートします。スーパユーザだけが必要に応じてマシンを +リブートできます。しかし、回復不可能なシステム障害の場合は、 +リブートは自動的に起動されます。 +.Pp +.Fa howto +はオプションのマスクです。システムコールインタフェースは +インクルードファイル +.Aq Pa sys/reboot.h +内に定義された次のオプションを受付け、 +新しいカーネルまたは新しいブートストラップと +init プログラムに渡されるようにします。 +.Bl -tag -width RB_INITNAMEA +.It Dv RB_AUTOBOOT +デフォルト。システムが通常の方法でリブートするようにします。 +.It Dv RB_ASKNAME +ブートストラッププログラム自体によって解釈され、 +どのファイルをブートすべきかに +ついて、コンソールにプロンプトを表示するようにします。 +通常、システムはファイル +.Dq Em xx Ns No (0,0)kernel +からブートされます。ここで、 +.Em 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 kadb 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/ja_JP.eucJP/man/man2/recv.2 b/ja_JP.eucJP/man/man2/recv.2 new file mode 100644 index 0000000000..4606e1d53b --- /dev/null +++ b/ja_JP.eucJP/man/man2/recv.2 @@ -0,0 +1,283 @@ +.\" Copyright (c) 1983, 1990, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)recv.2 8.3 (Berkeley) 2/21/94 +.\" %FreeBSD: src/lib/libc/sys/recv.2,v 1.4.2.1 1999/09/18 16:19:00 phantom Exp % +.\" +.Dd February 21, 1994 +.Dt RECV 2 +.Os BSD 4.3r +.Sh 名称 +.Nm recv , +.Nm recvfrom , +.Nm recvmsg +.Nd ソケットからメッセージを受信する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft ssize_t +.Fn recv "int s" "void *buf" "size_t len" "int flags" +.Ft ssize_t +.Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr *from" "int *fromlen" +.Ft ssize_t +.Fn recvmsg "int s" "struct msghdr *msg" "int flags" +.Sh 解説 +.Fn recvfrom +と +.Fn recvmsg +は、ソケットからのメッセージを受信するのに使用され、 +ソケットが接続指向であるかどうかと無関係にソケット上のデータを +受信するのに使用できます。 +.Pp +.Fa from +が nil でなく、ソケットが接続指向でない場合、 +メッセージのソースアドレスが記入されます。 +.Fa fromlen +は「値-結果」パラメータであり、 +.Fa from +に対応するバッファのサイズに初期化され、 +戻り時には保存されたアドレスの実際のサイズを示すように +変更されます。 +.Pp +.Fn recv +呼出しは、通常 +.Em 接続された +ソケット上だけで使用され +.Pf ( Xr connect 2 +を参照)、 +.Fa from +パラメータに nil を指定した +.Fn recvfrom +と同一です。これは冗長なので、将来のリリースでは +サポートされない可能性があります。 +.Pp +これら 3 つのルーチンは正常に完了するとメッセージの長さを返してきます。 +メッセージが長すぎて指定のバッファに入らない場合は、 +メッセージを受信したソケットのタイプによっては +超過分のバイトは破棄されるでしょう。 +.Pf ( Xr socket 2 +を参照)。 +.Pp +ソケットにメッセージが無い場合は、ソケットがノンブロッキング +.Pf ( Xr fcntl 2 +を参照) の場合を除き、呼出しはメッセージが到着するのを待ちます。 +ソケットがノンブロッキングの場合、値 -1 が返され、外部変数 +.Va errno +が +.Er EAGAIN +に設定されます。通常受信呼出しは、要求された量を受信するまで待たずに、 +得られたデータを要求された量を上限として返します。この動作は、 +.Xr getsockopt 2 +で説明したソケットレベルの +オプション +.Dv SO_RCVLOWAT +および +.Dv SO_RCVTIMEO +によって影響を受けます。 +.Pp +.Xr select 2 +呼出しは、さらなるデータがいつ到着するかを判定するのに使うことができます。 +.Pp +recv 呼出しへの +.Fa flags +引数は、次の値の 1 つまたは複数の論理和 +.\".Em or Ap ing +.Em ( or ) +から成ります。 +.Bl -column MSG_WAITALL -offset indent +.It Dv MSG_OOB プロセス帯域外データ +.It Dv MSG_PEEK 着信メッセージの覗き見 (peek) +.It Dv MSG_WAITALL 完全な要求またはエラーを待つ +.El +.Pp +.Dv MSG_OOB +フラグは、帯域外データの受信を要求し、 +通常のデータストリームは受信されません。 +急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、 +このフラグはそのようなプロトコルでは使用できません。MSG_PEEK フラグは、 +受信操作が、データを待ち行列から除去せずにそのデータを受信待ち行列の先頭から +返すようにします。したがって、後続の受信呼出しは同じデータ +を返します。MSG_WAITALL フラグは、完全な要求が満たされるまで操作のブロックを +要求します。しかし、シグナルが補足された場合、エラーまたは切断が発生した場合、 +または受信する次のデータが返されたものと異なるタイプ +である場合、呼出しは要求されたより少ないデータを返す可能性があります。 +.Pp +.Fn recvmsg +呼び出しは、 +直接に指定されるパラメータの数を最小にするために +.Fa msghdr +構造体を使用します。この構造体は +.Ao Pa sys/socket.h Ac +で定義されているように、次の形式になっています。 +.Pp +.Bd -literal +struct msghdr { + caddr_t msg_name; /* オプションのアドレス */ + u_int msg_namelen; /* アドレスのサイズ */ + struct iovec *msg_iov; /* スキャッタ/ギャザー配列 */ + u_int msg_iovlen; /* msg_iov の要素数 */ + caddr_t msg_control; /* 補助データ、後述。 */ + u_int msg_controllen; /* 補助データのバッファ長 */ + int msg_flags; /* 受信されたメッセージ上のフラグ */ +}; +.Ed +.Pp +ここで +.Fa msg_name +と +.Fa msg_namelen +は、ソケットが接続されていない場合に、宛先アドレスを指定します。 +名前が望まれない場合や必要でない場合、 +.Fa msg_name +は NULL ポインタとして指定できます。 +.Fa msg_iov +と +.Fa msg_iovlen +は +.Xr read 2 +で説明されているようにスキャッタ/ギャザの場所を記述します。 +.Fa msg_control +は、長さが +.Fa msg_controllen +で、他のプロトコル制御に関連するメッセージまたはその他の +各種補助データ用のバッファを指しています。メッセージは次の形式です。 +.Bd -literal +struct cmsghdr { + u_int cmsg_len; /* データバイトカウント、hdr を含む */ + int cmsg_level; /* メッセージを生成したプロトコル */ + int cmsg_type; /* プロトコルに固有のタイプ */ +/* u_char cmsg_data[]; が後に続く */ +}; +.Pp +.Ed +たとえば、これを使用して XNS/SPP または ISO における +データストリームの変化を知り、 +.Fn accept +呼び出しの直後に、データバッファを伴わずに recvmsg を要求して、 +ユーザ接続要求を得ることができるでしょう。 +.Pp +開いたファイル記述子はこれで +.Dv AF_UNIX +ドメインソケット用の補助データとして引き渡され、その際、 +.Fa cmsg_level +が +.Dv SOL_SOCKET +に設定され、 +.Fa cmsg_type +が +.Dv SCM_RIGHTS +に設定されます。 +.Pp +.Dv SCM_CREDS +の +.Fa cmsg_type +を使用して、プロセスのクレデンシャルを +.Dv AF_UNIX +ドメインソケット用の補助データとして +渡すこともできます。このケースでは、 +.Fa cmsg_data +は、構造体 +.Fa cmsgcred +である必要があります。これは +次のように +.Ao Pa sys/socket.h Ac +内で定義されています。 +.Pp +.Bd -literal +struct cmsgcred { + pid_t cmcred_pid; /* 送信プロセスの PID */ + uid_t cmcred_uid; /* 送信プロセスの実 UID */ + uid_t cmcred_euid; /* 送信プロセスの実効 UID */ + gid_t cmcred_gid; /* 送信プロセスの実 GID */ + short cmcred_ngroups; /* グループの数 */ + gid_t cmcred_groups[CMGROUP_MAX]; /* グループ */ +}; +.Ed +.Pp +カーネルは送信プロセスのクレデンシャル情報を記入し、それを受信側へ配信します。 +.Pp +.Fa msg_flags +フィールドは受信済みメッセージに従って戻り時に設定されます。 +.Dv MSG_EOR +はレコードの終了を示します: 返されたデータがレコードを完了しました (一般には、 +タイプ +.Dv SOCK_SEQPACKET +のソケットとともに使用されます)。 +.Dv MSG_TRUNC +は、提供されたバッファよりデータグラムが大きかったので、 +データグラムの後ろの部分が切り捨てられたことを示します。 +.Dv MSG_CTRUNC +は、補助データ用のバッファ内の空間の不足のためにいくらかの制御データが +切り捨てられたことを示します。 +.Dv MSG_OOB +は、急送または帯域外データが受信されたことを示します。 +.Pp +.Sh 戻り値 +これらの呼出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。 +.Sh エラー +呼び出しは次の場合に失敗します。 +.Bl -tag -width ENOTCONNAA +.It Bq Er EBADF +引数 +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTCONN +ソケットは接続指向プロトコルと関係付けられていますが、接続されていません +.Pf ( Xr connect 2 +と +.Xr accept 2 +を参照)。 +.It Bq Er ENOTSOCK +引数 +.Fa s +はソケットを参照していません。 +.It Bq Er EAGAIN +ソケットはノンブロッキングとマークされており、 +受信操作はブロックするでしょう。 +あるいは、受信時間切れが設定されていて、 +データが受信される前に時間切れになりました。 +.It Bq Er EINTR +データが得られるようになる前にシグナルの配信によって受信は割込まれました。 +.It Bq Er EFAULT +受信バッファポインタが、プロセスに割り当てられたアドレス空間の +範囲外を指しています。 +.El +.Sh 関連項目 +.Xr fcntl 2 , +.Xr getsockopt 2 , +.Xr read 2 , +.Xr select 2 , +.Xr socket 2 +.Sh 歴史 +.Fn recv +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/rename.2 b/ja_JP.eucJP/man/man2/rename.2 new file mode 100644 index 0000000000..5e9e12de71 --- /dev/null +++ b/ja_JP.eucJP/man/man2/rename.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. +.\" +.\" @(#)rename.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/rename.2,v 1.7.2.1 1999/08/29 14:49:18 peter Exp % +.\" +.Dd June 4, 1993 +.Dt RENAME 2 +.Os BSD 4.2 +.Sh 名称 +.Nm rename +.Nd ファイル名を変更する +.Sh 書式 +.Fd #include <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 +.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 +.\".Ql Pa a , +.\"say +.\".Ql Pa a/foo , +.\"being a hard link to directory +.\".Ql Pa b , +.\"and an entry in +.\"directory +.\".Ql Pa b , +.\"say +.\".Ql Pa b/bar , +.\"being a hard link +.\"to directory +.\".Ql 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 戻り値 +操作が正常に完了すると値 0 が返されます。そうでない場合、 +.Fn rename +は -1 を返し、グローバル変数 +.Va errno +は失敗の理由を示します。 +.Sh エラー +.Fn rename +は次の場合、処理に失敗し、いずれの引数ファイルも影響を受けません。 +.Bl -tag -width ENAMETOOLONG +.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 +.Em 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-90 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/revoke.2 b/ja_JP.eucJP/man/man2/revoke.2 new file mode 100644 index 0000000000..763a936327 --- /dev/null +++ b/ja_JP.eucJP/man/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 +.\" +.Dd June 4, 1993 +.Dt REVOKE 2 +.Os +.Sh 名称 +.Nm revoke +.Nd ファイルアクセスを無効にする +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn revoke "const char *path" +.Sh 解説 +.Fn revoke +関数は、 +.Fa path +によって指定されたファイルについて、システム内の現在の開いているすべての +ファイル記述子を無効にします。 +そのような記述子についての後続の操作は、 +解除されたキャラクタ型デバイスファイルからの +.Fn read +がカウント 0 (ファイルの終了) を返して、後続する +.Fn close +呼び出しが成功する場合を例外として、 +処理を失敗します。 +ただし、ファイルが開かれたデバイスについての特殊ファイルである場合、 +デバイスを閉じる関数は、ファイルへのすべての開かれていた参照が +閉じられたものであったかのように呼び出されます。 +.Pp +ファイルへのアクセスはその所有者または +スーパユーザによってだけ無効にされます。 +.Fn revoke +関数は現時点ではブロック型およびキャラクタ型特殊ファイルについてだけ +サポートされています。 +これは通常、端末の前の使用者によるアクセスを防止し、 +新しいログインセッション用に端末デバイスを準備 +するのに使用されます。 +.Sh 戻り値 +値 0 は呼び出しが正常に完了したことを示します。 +戻り値 -1 はエラーが起こったことを示し、理由を示すために +.Va errno +が設定されます。 +.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/ja_JP.eucJP/man/man2/rfork.2 b/ja_JP.eucJP/man/man2/rfork.2 new file mode 100644 index 0000000000..5bae2ec25e --- /dev/null +++ b/ja_JP.eucJP/man/man2/rfork.2 @@ -0,0 +1,138 @@ +.\" +.\" 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>. +.\" +.Dd Jan 12, 1996 +.Dt RFORK 2 +.Os +.Sh 名称 +.Nm rfork +.Nd プロセスリソースの操作 +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn rfork "int flags" +.Sh 解説 +fork, vfork, と rfork が新しいプロセスが作成される唯一の方法です。 +.Fn rfork +への +.Fa flags +引数は、起動しているプロセス (親) のどのリソースが、新しいプロセス (子) に +よって共有されるか、またはそれらのデフォルト値に初期化されるかを選択します。 +リソースにはオープンファイル記述子テーブル (これは、共有されたとき、 +プロセスが他のプロセスについてファイルを開閉することを +許容します) およびオープンファイルが含まれます。 +.Fa flags +は次の項目の倫理和 (OR) です。 +.Bl -tag -width "RFCNAMEG" -compact -offset indent +.It RFPROC +設定されている場合、新しいプロセスが +作成されます。そうでない場合、変更が現在のプロセスに影響を及ぼします。 +現在のシステムでは、このフラグがいつでも設定されていることが要求されます。 +.It RFNOWAIT +設定されている場合、子プロセスは親から分離されます。終了時に、子は、 +親が集めるステータスを残しません。 +.Xr wait 2 +を参照してください。 +.It RFFDG +設定されている場合、起動側のファイル記述子テーブル +.Pf ( Xr intro 2 +を参照) が +コピーされます。そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。 +.It RFCFDG +設定されている場合、新しいプロセスは新しいファイル記述子テーブルで +開始します。 +.Dv RFFDG +とは互いに排他的です。 +.It RFMEM +設定されている場合、カーネルは、アドレス空間全体の共有を強制します。 +その際、子は、親プロセスが所有しているすべての共有セグメントを継承します。 +他のセグメントタイプは影響を受けません。親による後続の fork は、 +子の間で共通データと bss を影響させます。 +スタックセグメントは常に分割されます。 +.Dv RFPROC +とだけ共に設定することになるでしょう。 +.It RFSIGSHARE +設定されている場合、カーネルは、親子間で sigacts 構造体を共有することを +強制します。 +.It RFLINUXTHPN +設定されている場合、カーネルは、 +子についてのスレッド終了時に、SIGCHILD の代わりに +SIGUSR1 を返します。これは特定の Linux クローン動作を模倣するためです。 +.El +.Pp +共有ファイル記述子テーブル内のファイル記述子は、 +明示的に閉じられるか、またはテーブルを +共有しているすべてのプロセスが終了するまで開いたままに保たれます。 +.Pp +.Dv RFPROC +が設定されている場合、 +親プロセス内で返される値は子プロセスのプロセス ID です。 +子プロセス内で返される値は 0 です。 +.Dv RFPROC +がない場合、戻り値は 0 です。プロセス ID の範囲は +1 から最大整数値 +.Ft ( int ) +です。必要であれば、要求されたプロセスリソースが +利用できるようになるまで +.Fn rfork +は待機します。 +.Pp +.Fn fork +は、 +.Fn rfork "RFFDG | RFPROC" +への呼び出しとして実現できますが、後方互換性のためにでは +ありません。 +.Sh 戻り値 +正常に完了した場合、 +.Fn rfork +は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに +返します。そうでない場合、子プロセスは作成されずに、 +値 -1 が親プロセスに返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn rfork +は、次の場合に処理を失敗し、子プロセスは作成されません。 +.Bl -tag -width [EAGAIN] +.It Bq Er EAGAIN +実行中のプロセスの合計数がシステムの課す制限を超過してしまいます。 +制限は +.Xr sysctl 3 +MIB 変数 +.Dv KERN_MAXPROC +によって指定されます (スーパユーザを除いて、制限は実際には +これより 1 少なくなります)。 +.It Bq Er EAGAIN +ユーザがスーパユーザではなく、 +1 人のユーザによる実行中のプロセスの合計数 +がシステムの課した制限を超過してしまいます。制限は、 +.Xr sysctl 3 +MIB 変数 +.Dv KERN_MAXPROCPERUID +によって指定されます。 +.It Bq Er EAGAIN +ユーザがスーパユーザではなく、リソースパラメータ +.Dv RLIMIT_NOFILE +に対応するソフトリソースの限界を超過してしまいます +.Pf ( Xr getrlimit 2 +を参照)。 +.It Bq Er EINVAL +RFPROC フラグが指定されませんでした。 +.It Bq Er EINVAL +RFFDG フラグと RFCFDG フラグの両方が指定されました。 +.It Bq Er ENOMEM +新しいプロセス用に十分なスワップ空間が不足しました。 +.El +.Sh 関連項目 +.Xr fork 2 , +.Xr intro 2 , +.Xr minherit 2 , +.Xr vfork 2 +.Sh 歴史 +.Fn rfork +関数は +Plan9 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/rmdir.2 b/ja_JP.eucJP/man/man2/rmdir.2 new file mode 100644 index 0000000000..64bcb8e07d --- /dev/null +++ b/ja_JP.eucJP/man/man2/rmdir.2 @@ -0,0 +1,107 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt RMDIR 2 +.Os BSD 4.2 +.Sh 名称 +.Nm rmdir +.Nd ディレクトリファイルを削除する +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn rmdir "const char *path" +.Sh 解説 +.Fn rmdir +は、名前が +.Fa path +で指定されるディレクトリファイルを削除します。 +ディレクトリには +.Ql \&. +と +.Ql \&.. +以外のエントリがあってはなりません。 +.Sh 戻り値 +削除が正常に完了すると 0 が返されます。そうでない場合は -1 が返され、 +グローバル変数 +.Va errno +にエラーコードが保存されます。 +.Sh エラー +次の場合を除いて、指定のファイルが削除されます。 +.Bl -tag -width [ENAMETOOLONG] +.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/ja_JP.eucJP/man/man2/rtprio.2 b/ja_JP.eucJP/man/man2/rtprio.2 new file mode 100644 index 0000000000..c07a22ce1c --- /dev/null +++ b/ja_JP.eucJP/man/man2/rtprio.2 @@ -0,0 +1,117 @@ +.\" 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.10.2.2 1999/09/18 16:19:00 phantom Exp % +.\" +.Dd July 23, 1994 +.Dt RTPRIO 2 +.Sh 名称 +.Nm rtprio +.Nd ユーティリティやプロセスのリアルタイムまたはアイドル優先順位を取得と修正 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +.Nm type +の値は、リアルタイム優先順位については RTP_PRIO_REALTIME、 +通常の優先順位については RTP_PRIO_NORMAL、 +アイドル優先順位については RTP_PRIO_IDLE です。 +.Nm prio +によって指定する優先順位は、0 から +.Dv RTP_PRIO_MAX (通常は 31) +の範囲になります。0 が可能な最高優先順位です。 +.Pp +リアルタイム優先順位とアイドル優先順位は、 +fork() と exec() を通じて継承されます。 +.Pp +リアルプロセスは、それ以上優先順位をもつプロセス、 +または割り込みによってだけ優先権を取得できます。 +アイドル優先順位のプロセスは、 +他のリアルタイムまたは通常の優先順位プロセスが +実行可能でないときにだけ実行されます。 +優先度の高いリアルまたはアイドルのプロセスは +優先度の低いリアルまたはアイドルのプロセスから優先権を取得します。 +優先度が等しいリアルまたはアイドルの +プロセスはラウンドロビン式で実行されます。 +.Sh 戻り値 +.Fn rtprio +は正常に完了すると 0 を返し、エラーの場合は -1 を返します。 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn rtprio +は次の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +指定された +.Fa prio +が範囲外でした。 +.It Bq Er EPERM +呼び出しプロセスがリアルタイム優先順位を設定できません。 +スーパユーザだけがプロセスのリアル優先順位を変更することができます。 +スーパユーザ以外は現在のプロセスのアイドル優先順位を変更できるだけです。 +.It Bq Er ESRCH +指定のプロセスが見つかりませんでした。 +.Sh 作者 +元の作者は +.An Henrik Vestergaard Draboel Aq hvd@terry.ping.dk +です。 +.Fx +でのこの実装は主に David Greenman +によって書き直されました。 +.Sh 関連項目 +.Xr nice 1 , +.Xr ps 1 , +.Xr rtprio 1 , +.Xr setpriority 2 , +.Xr nice 3 , +.Xr renice 8 diff --git a/ja_JP.eucJP/man/man2/sched_get_priority_max.2 b/ja_JP.eucJP/man/man2/sched_get_priority_max.2 new file mode 100644 index 0000000000..05ca3b2fd6 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sched_get_priority_max.2 @@ -0,0 +1,119 @@ +.\" %FreeBSD: src/lib/libc/sys/sched_get_priority_max.2,v 1.2.2.1 1999/08/29 14:49:19 peter 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. +.\" +.Dd Mar 12, 1998 +.Dt SCHED_GET_PRIORITY_MAX 2 +.Os BSD 4 +.Sh 名称 +.Nm sched_get_priority_max , +.Nm sched_get_priority_min , +.Nm sched_rr_get_interval +.Nd スケジュールパラメータ制限を取得する +.Sh 書式 +.Fd #include <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 +関数は、指定された方針についてそれぞれ該当する最大と最小を返します。 +.Fn sched_rr_get_interval +関数は、 +.Fa interval +引数によって参照される +.Fa timespec +構造体を、 +.Fa pid +によって指定されるプロセスについて +現在の実行時間制限 (すなわち、時間量) が含まれるように更新します。 +.Fa pid +がゼロの場合、呼び出しプロセスに関する現在の実行時間制限が返されます。 +.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 +正常に完了した場合、 +.Fn sched_rr_get_interval +関数は 0 を返します。そうでない場合、 +値 -1 が返され、エラーを示すために +.Fa errno +が設定されます。 +.Sh エラー +処理を失敗すると、 +.Va errno +は対応する値に設定されます。 +.Bl -tag -width [EFAULT] +.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_get_scheduler 2 , +.Xr sched_getparam 2 , +.Xr sched_set_scheduler 2 , +.Xr sched_setparam 2 +.Sh 規格 +.Fn sched_setscheduler +関数と +.Fn sched_getscheduler +関数は +.St -p1003.1b-93 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/sched_setparam.2 b/ja_JP.eucJP/man/man2/sched_setparam.2 new file mode 100644 index 0000000000..5557ee50c6 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sched_setparam.2 @@ -0,0 +1,176 @@ +.\" %FreeBSD: src/lib/libc/sys/sched_setparam.2,v 1.3.2.1 1999/08/29 14:49:20 peter 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. +.\" +.Dd Mar 12, 1998 +.Dt SCHED_SETPARAM 2 +.Os BSD 4 +.Sh 名称 +.Nm sched_setparam , +.Nm sched_getparam +.Nd スケジュールパラメータの設定/取得 +.Sh 書式 +.Fd #include <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 +この実装では、あるプロセスが別のプロセスのスケジュールパラメータに +いつ影響を及ぼせるのかという方針は、書込みスタイル操作として +.Xr p1003_1b +に指定されているものです。 +.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 +この実装では、あるプロセスが別のプロセスのスケジュールパラメータを +いつ得られるかの方針は、読取りスタイル操作として +.Xr p1003_1b +に詳説されているものです。 +.Pp +.Fa pid +が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。 +この実装では、 +.Fa pid +が負の場合、 +.Fa sched_getparam +関数は処理に失敗します。 +.Sh 戻り値 +関数は正常に完了すると 0 を返し、そうでない場合は、値 +-1 を返し、エラーを示すために +.Va errno +を設定します。 +.Sh エラー +処理に失敗すると、 +.Va errno +を対応する値に設定します。 +.Bl -tag -width [EFAULT] +.It Bq Er ENOSYS +システムはこの機能をサポートするように構成されていません。 +.It Bq Er EPERM +要求しているプロセスは、 +.Xr p1003_1b +で詳説されているパーミッションを持っていません。 +.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/ja_JP.eucJP/man/man2/sched_setscheduler.2 b/ja_JP.eucJP/man/man2/sched_setscheduler.2 new file mode 100644 index 0000000000..062ccd44a1 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sched_setscheduler.2 @@ -0,0 +1,167 @@ +.\" %FreeBSD: src/lib/libc/sys/sched_setscheduler.2,v 1.2.2.1 1999/08/29 14:49:21 peter 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. +.\" +.Dd Mar 12, 1998 +.Dt SCHED_SETSCHEDULER 2 +.Os BSD 4 +.Sh 名称 +.Nm sched_setscheduler , +.Nm sched_getscheduler +.Nd スケジュール方針とスケジューラパラメータの設定/取得 +.Sh 書式 +.Fd #include <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 +が指す +.Fa sched_param +構造体の指定するパラメータに設定します。 +.Fa param +構造体の +.Fa sched_priority +メンバの値は、 +.Fa policy +で指定するスケジュール方針用の +優先度範囲内 (両端含む) の整数である必要があります。 +.Pp +この実装では、 +.Fa pid +の値が負である場合、関数は処理に失敗します。 +.Pp +.Fa pid +で指定するプロセスが存在し、かつ呼び出し元プロセスにパーミッションがある場合、 +プロセス ID が +.Fa pid +と等しいプロセスに対して +スケジュール方針とスケジュールパラメータを設定します。 +.Pp +.Fa pid +が 0 の場合、呼び出し元プロセスに対して +スケジュール方針とスケジュールパラメータを設定します。 +.Pp +この実装では、あるプロセスが別のプロセスのスケジュールパラメータに +いつ影響を及ぼせるのかという方針は、書き込みスタイル操作として +.Xr p1003_1b +に指定されているものです。 +.Pp +スケジュール方針は +.Fa <sched.h> +内にあります。 +.Bl -tag -width [SCHED_OTHER] +.It Bq Er SCHED_FIFO +ラウンドロビンスケジュールのない、 +先入先出優先順位固定スケジュール。 +.It Bq Er SCHED_OTHER +標準のタイムシェアリングスケジューラ。 +.It Bq Er SCHED_RR +同じ優先順位のプロセス間でのラウンドロビンスケジュール。 +.El +.Pp +.Fa sched_param +構造体は +.Fa <sched.h> +に定義されています。 + +.Bd -literal -offset indent +struct sched_param { + int sched_priority; /* スケジュール優先順位 */ +}; +.Ed +.Pp +.Fn sched_getscheduler +関数は、 +.Fa pid +で指定するプロセスのスケジュール方針を返します。 +.Pp +.Fa pid +で指定するプロセスが存在してかつ、 +呼び出し元プロセスにパーミッションがある場合、 +プロセス ID が +.Fa pid +に等しいプロセスのスケジュールパラメータを返します。 +.Pp +この実装では、あるプロセスが別のプロセスのスケジュールパラメータを +いつ得られるかの方針は、読取りスタイル操作として +.Xr p1003_1b +に詳説されているものです。 +.Pp +.Fa pid +が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。 +この実装では、 +.Fa pid +が負の場合、 +.Fa sched_getscheduler +関数は処理に失敗します。 +.Sh 戻り値 +処理が正常に完了すると関数は 0 を返し、そうでない場合は、値 -1 を返し、 +エラーを示すために +.Va errno +を設定します。 +.Sh エラー +処理に失敗すると、 +.Va errno +を対応する値に設定します。 +.Bl -tag -width [EFAULT] +.It Bq Er ENOSYS +システムは、この機能をサポートするように構成されていません。 +.It Bq Er EPERM +要求しているプロセスは +.Xr p1003_1b +で詳説されているパーミッションを持っていません。 +.It Bq Er ESRCH +.Fa pid +で指定したプロセスに対応するプロセスが見つかりません。 +.It Bq Er EINVAL +.Fa policy +パラメータの値が無効であるか、または +.Fa param +に含まれている +1 つまたは複数のパラメータが +指定のスケジュール方針で有効な範囲の外にあります。 +.El +.Sh 関連項目 +.Xr sched_get_priority_max 2 , +.Xr sched_get_priority_min 2 , +.Xr sched_getparam 2 , +.Xr sched_rr_get_interval 2 , +.Xr sched_setparam 2 , +.Xr sched_yield 2 +.Sh 規格 +.Fn sched_setscheduler +関数と +.Fn sched_getscheduler +関数は +.St -p1003.1b-93 +に適合しています。 diff --git a/ja_JP.eucJP/man/man2/sched_yield.2 b/ja_JP.eucJP/man/man2/sched_yield.2 new file mode 100644 index 0000000000..29e2af7aac --- /dev/null +++ b/ja_JP.eucJP/man/man2/sched_yield.2 @@ -0,0 +1,58 @@ +.\" %FreeBSD: src/lib/libc/sys/sched_yield.2,v 1.1.2.1 1999/08/29 14:49:21 peter 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. +.\" +.Dd Mar 12, 1998 +.Dt SCHED_YIELD 2 +.Os BSD 4 +.Sh 名称 +.Nm sched_yield +.Nd プロセッサを明け渡す +.Sh 書式 +.Fd #include <sched.h> +.Ft int +.Fn sched_yield void +.Sh 解説 +.Fn sched_yield +関数は、実行中のプロセスが再びプロセスリストの先頭になるまで、 +プロセッサを放棄させます。 +引数は指定しません。 +.Sh 戻り値 +.Fn sched_yield +関数は、正常に完了すると 0 を返します。そうでない場合は値 -1 を返して、 +エラーを示すために +.Va errno +を設定します。 +.Sh エラー +処理に失敗すると、 +.Va errno +に対応する値を設定します。 +.Bl -tag -width [EFAULT] +.It Bq Er ENOSYS +システムがこの機能をサポートするように構成されていません。 +.Sh 規格 +.Fn sched_yield +関数は +.St -p1003.1b-93 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/select.2 b/ja_JP.eucJP/man/man2/select.2 new file mode 100644 index 0000000000..dbab05d2ec --- /dev/null +++ b/ja_JP.eucJP/man/man2/select.2 @@ -0,0 +1,196 @@ +.\" 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 +.\" +.Dd March 25, 1994 +.Dt SELECT 2 +.Os BSD 4.2 +.Sh 名称 +.Nm select +.Nd 同期的な入出力の多重化 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/time.h> +.Fd #include <unistd.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 +が、非 nil +のポインタである場合、それはセレクションが完了するのを +待機する最大インターバルを指定します。 +.Fa timeout +が +nil +ポインタの場合、 +.Fn select +は無限にブロックします。 +ポーリングのためには、 +.Fa timeout +引数が非 +nil +で、値が 0 の +timeval +構造体を指しているべきです。 +.Pp +.Fa readfds , +.Fa writefds +および +.Fa exceptfds +のどれについても、いずれの記述子も興味がない場合は +nil ポインタとして指定できます。 +.Sh 戻り値 +.Fn select +は記述子集合に含まれている準備のできた記述子の数を返し、 +エラーが起きた場合は -1 を返します。 +タイムリミットが来ると、 +.Fn select +は +0 を返します。 +割り込みによるものも含めて +.Fn select +がエラーで戻る場合は、記述子集合は変更されません。 +.Sh エラー +.Fn select +から戻るエラーは次のことを示します。 +.Bl -tag -width Er +.It Bq Er EBADF +記述子集合のどれかが無効な記述子を指定していました。 +.It Bq Er EINTR +タイムリミットが切れる前あるいは選択したイベントのいずれかが起きる前に、 +シグナルが配送されました。 +.It Bq Er EINVAL +指定のタイムリミットは無効です。 +どれかが負であるか、または大きすぎます。 +.It Bq Er EINVAL +.Fa nfds +が無効でした。 +.El +.Sh 関連項目 +.Xr accept 2 , +.Xr connect 2 , +.Xr getdtablesize 2 , +.Xr gettimeofday 2 , +.Xr read 2 , +.Xr recv 2 , +.Xr send 2 , +.Xr write 2 , +.Xr clocks 7 +.Sh 注釈 +.Dv FD_SETSIZE +のデフォルトのサイズは現時点では +1024 です。 +多数のオープンファイルを使用する可能性があるプログラムで +.Fn select +を実行するために、 +.Aq Pa sys/types.h +を取り込むヘッダを含める前にプログラムで +.Dv FD_SETSIZE +を定義することで、このサイズを増加できます。 +.Pp +.Fa nfds +がオープンファイルの数より大きい場合、 +.Fn select +が未使用のファイル記述子を調査することは保証されていません。 +歴史的な理由で、 +.Fn select +は最初の +256 個の記述子を必ず調査します。 +.Sh バグ +.Fn select +は、時間値を適切に修正することで、 +指定したタイムアウトからの残り時間を返す必要がおそらくあります。 +これはシステムの将来のバージョンで実装される可能性があります。 +このように、タイムアウトの値が +.Fn select +呼び出しによって修正されないと想定するのは賢明ではありません。 +.Sh 歴史 +.Fn select +関数は +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/semctl.2 b/ja_JP.eucJP/man/man2/semctl.2 new file mode 100644 index 0000000000..96ff07d311 --- /dev/null +++ b/ja_JP.eucJP/man/man2/semctl.2 @@ -0,0 +1,185 @@ +.\" +.\" 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.8.2.1 1999/08/29 14:49:21 peter Exp % +.\" +.Dd September 12, 1995 +.Dt SEMCTL 2 +.Os FreeBSD +.Sh 名称 +.Nm semctl +.Nd セマフォ集合に対する操作を制御する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/ipc.h> +.Fd #include <sys/sem.h> +.Ft int +.Fn semctl "int semid" "int semnum" "int cmd" ... +.Sh 解説 +.Fn semctl +は、 +.Fa semid +で示されるセマフォ集合に対して +.Fa cmd +が示す操作を実行します。 +ある値の +.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 +.Fa "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; /* 最後の変更時刻 */ + /* 00:00:00 GMT, Jan. 1, 1970 */ + /* からの秒単位の経過時間 */ + long sem_pad2; /* SVABI/386 によるとこれが必要 */ + long sem_pad3[4]; /* SVABI/386 によるとこれが必要 */ +}; +.Ed +.Sh 戻り値 +処理が正常に完了すると、 +.Fa cmd +が GETVAL, GETNCNT または 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 +操作とセマフォ集合のモードの間に不一致があったために +パーミッションが拒否されました。 +.Sh 関連項目 +.Xr semget 2 , +.Xr semop 2 diff --git a/ja_JP.eucJP/man/man2/semget.2 b/ja_JP.eucJP/man/man2/semget.2 new file mode 100644 index 0000000000..8100f19cae --- /dev/null +++ b/ja_JP.eucJP/man/man2/semget.2 @@ -0,0 +1,153 @@ +.\" +.\" 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.6.2.1 1999/08/29 14:49:22 peter Exp % +.\" +.Dd September 12, 1995 +.Dt SEMGET 2 +.Os FreeBSD +.Sh 名称 +.Nm semget +.Nd セマフォ ID を取得する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/ipc.h> +.Fd #include <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 +.Fn ftok +を使用して、パス名からキーを生成できます。 +.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 +が指定されていませんでした。 +.Sh 関連項目 +.Xr semctl 2 , +.Xr semop 2 , +.Xr ftok 3 diff --git a/ja_JP.eucJP/man/man2/semop.2 b/ja_JP.eucJP/man/man2/semop.2 new file mode 100644 index 0000000000..bf9f1e5e49 --- /dev/null +++ b/ja_JP.eucJP/man/man2/semop.2 @@ -0,0 +1,213 @@ +.\" +.\" 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.6.2.1 1999/08/29 14:49:22 peter Exp % +.\" +.\" WORD: atomic 不可分な [POSIX] +.\" WORD: adjust on exit 終了時調整 +.Dd September 22, 1995 +.Dt SEMOP 2 +.Os FreeBSD +.Sh 名称 +.Nm semop +.Nd セマフォ集合に対する不可分な操作の配列 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/ipc.h> +.Fd #include <sys/sem.h> +.Ft int +.Fn semop "int semid" "struct sembuf array[]" "unsigned nops" +.Sh 解説 +.Fn semop +は、 +.Fa semid +が示すセマフォ集合に対して、 +.Fa array +が示す操作の配列を不可分に実行します。 +.Fa array +の長さは +.Fa nops +で示します。 +各操作は +.Fa "struct sembuf" +内にエンコードされており、 +.Fa "struct sembuf" +は次のように定義されます。 +.Bd -literal +.\" +.\" From <sys/sem.h> +.\" +struct sembuf { + u_short sem_num; /* セマフォ番号 */ + short sem_op; /* セマフォ操作 */ + short sem_flg; /* 操作フラグ */ +}; +.Ed +.Pp +.Fa array +内の各要素に関し、 +.Fa sem_op +と +.Fa sem_flg +は、集合内のセマフォ番号 +.Fa sem_num +に対して実行される操作を決定します。 +指定した操作の動作を変更するために、 +SEM_UNDO +と +IPC_NOWAIT +の値の論理和 +( +.Em OR +) を取って +.Fa sem_flg +メンバに入れることが可能です。 +.Pp +実行される操作は次のように +.Fa sem_op +の値に依存します。 +.\" +.\" This section is based on the description of semop() in +.\" Stevens, _Advanced Programming in the UNIX Environment_. +.\" +.Bl -bullet +.It +.Fa sem_op +が正の場合、セマフォの値を +.Fa sem_op +の値だけ増加させます。 +SEM_UNDO +を指定した場合、セマフォの終了時調整値を +.Fa sem_op +の値だけ減少させます。 +.Fa sem_op +についての正の値は、一般に、 +セマフォに結び付けられた資源をリリースするプロセスに対応します。 +.It +.Fa sem_op +が負の場合の動作は、セマフォの現在の値に依存します。 +.Bl -bullet +.It +セマフォの現在の値が +.Fa sem_op +の絶対値と等しいかそれより大きい場合、セマフォの値を +.Fa sem_op +の絶対値だけ減少させます。 +SEM_UNDO +が指定されている場合、セマフォの終了時調整値を +.Fa sem_op +の絶対値だけ増加させます。 +.It +セマフォの現在値が +.Fa sem_op +の値未満の場合、次のどれかが発生します。 +.\" XXX a *second* sublist? +.Bl -bullet +.It +IPC_NOWAIT +を指定した場合、 +.Fn semop +は戻り値 +EAGAIN +でただちに復帰します。 +.It +.Fn semctl +の +IPC_RMID +オプションを用いて、他のプロセスがセマフォを削除してしまった場合、 +.Fn semop +は戻り値 +EINVAL +でただちに復帰します。 +.It +それ以外の場合、セマフォの値が +.Fa sem_op +の絶対値に等しいかそれより大きくなるまで、 +呼び出し元プロセスは休眠状態になります。 +この条件が真になるとき、セマフォの値を +.Fa sem_op +の絶対値だけ減少させ、セマフォの終了時調整値を +.Fa sem_op +の絶対値だけ増加させます。 +.El +.Pp +.Fa sem_op +が負の値であるときは、一般に、 +資源が利用可能になるのをプロセスが待っていることに +なります。 +.El +.Pp +.It +.Fa sem_op +が 0 の場合、プロセスはセマフォの値が 0 になるのを待ちます。 +既に 0 の場合は、 +.Fn semop +の呼び出しからただちに復帰します。 +そうでない場合、呼び出し元プロセスは、セマフォの値が +0 になるまで休眠状態になります。 +.El +.Pp +プロセスが使用しているセマフォごとに、カーネルは、 +先に述べたように「終了時調整」値を保持します。 +自発的であれ非自発的にであれ、プロセスが終了するときには、 +各セマフォに対する終了時調整値がセマフォの値に追加されます。 +これを、プロセスが予期せず終了してしまう場合に +資源を必ず解放することを保証するのに使用可能です。 +.Sh 戻り値 +正常に完了すると、 +.Fn semop +は +0 を返します。そうでない場合、 +-1 を返し、エラーを示すために +.Va errno +を設定します。 +.Sh エラー +.Fn semop +は次の場合に失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa semid +に対応するセマフォ集合がありません。 +.It Bq Er EACCES +操作とセマフォ集合のモードの間で不一致があるため、 +パーミッションが拒否されました。 +.It Bq Er EAGAIN +セマフォの値が +.Fa sem_op +未満で、かつ +IPC_NOWAIT +が指定されました。 +.It Bq Er E2BIG +あまりに多くの操作が指定されました。 +.It Bq Er EFBIG +.\" +.\" I'd have thought this would be EINVAL, but the source says +.\" EFBIG. +.\" +.Fa sem_num +が集合に対する有効なセマフォの範囲内にありませんでした。 +.Sh 関連項目 +.Xr semctl 2 , +.Xr semget 2 diff --git a/ja_JP.eucJP/man/man2/send.2 b/ja_JP.eucJP/man/man2/send.2 new file mode 100644 index 0000000000..6bb22bca3b --- /dev/null +++ b/ja_JP.eucJP/man/man2/send.2 @@ -0,0 +1,202 @@ +.\" 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.8.2.1 1999/08/29 14:49:23 peter Exp % +.\" +.Dd February 15, 1995 +.Dt SEND 2 +.Os BSD 4.2 +.Sh 名称 +.Nm send , +.Nm sendto , +.Nm sendmsg +.Nd ソケットからメッセージを送信する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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" "int 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 +リモートホストに到達できませんでした。 +.El +.Sh バグ +.Fn sendmsg +はデータが転送されてしまうまで必ずしもブロックしないので、 +オープンされているファイル記述子を +.Dv AF_UNIX +ドメインソケット +( +.Xr recv 2 +を参照 +) +経由で送信し、それから実際に送信される前に +.Fn close +する可能性があります。 +その結果、受信側は閉じたファイル記述子を得ることになります。 +これを防止する確認メカニズムの実装は +アプリケーションで行う必要があります。 +.Sh 関連項目 +.Xr fcntl 2 , +.Xr getsockopt 2 , +.Xr recv 2 , +.Xr select 2 , +.Xr socket 2 , +.Xr write 2 +.Sh 歴史 +.Fn send +関数呼出しは +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sendfile.2 b/ja_JP.eucJP/man/man2/sendfile.2 new file mode 100644 index 0000000000..cd0582cb28 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sendfile.2 @@ -0,0 +1,159 @@ +.\" Copyright (c) 1998, David Greenman +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice unmodified, this list of conditions, and the following +.\" disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.2.2.3 1999/08/29 14:49:24 peter Exp % +.\" +.Dd November 5, 1998 +.Dt SENDFILE 2 +.Os +.Sh 名称 +.Nm sendfile +.Nd ファイルをソケットに送信 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Fd #include <sys/uio.h> +.Ft int +.Fn sendfile "int fd" "int s" "off_t offset" "size_t nbytes" "struct sf_hdtr *hdtr" "off_t *sbytes" "int flags" +.Sh 解説 +.Fn sendfile +は、記述子 +.Fa fd +によって指定された通常のファイルを、記述子 +.Fa s +によって指定されたストリームソケットから送信します。 +.Pp +.Fa offset +引数はファイルのどこから開始すべきかを指定します。 +.Fa nbytes +引数は、ファイルの何バイトを送信する必要があるかを指定します。 0 は、 +ファイル終了に到達するまで送信という特殊な意味を持ちます。 +.Pp +オプションのヘッダまたはトレーラ、またはその両方は、構造体 sf_hdtr を +指すポインタを指定することによってファイルの前と後で送信できます。 +構造体 sf_hdtr の構造は次のとおりです。 +.Pp +.Bd -literal -offset indent -compact +struct sf_hdtr { + struct iovec *headers; /*ヘッダ iovecs を指すポインタ*/ + int hdr_cnt; /*ヘッダ iovecs の数*/ + struct iovec *trailers; /*トレーラ iovecs を指すポインタ */ + int trl_cnt; /*トレーラ iovecs の数*/ +}; +.Ed +.Pp +.Fa headers +ポインタと +.Fa tailers +ポインタは、 NULL でない場合に構造体 iovec 構造の配列を +指します。 iovec 構造体の詳細については、 +.Fn writev +システムコールを参照してください。これらの配列内の iovecs の数は、 +.Fa hdr_cnt +と +.Fa trl_cnt +によって指定されます。 +.Pp +NULL でない場合に、システムは、ソケット上に送信された合計バイト数を、 +.Fa sbytes +によって指された変数に書込みます。 +.Pp +.Fa flags +引数は現時点では未定義であり、 0 として指定する必要があります。 +.Pp +非ブロッキング入出力用に指定されたソケットを使用するときに、 +.Fn sendfile +は要求されたよりも少ないバイトを送信することがあります。この場合、正常に +書込まれたバイト数が +.Fa *sbytes +(指定されている場合) に返され、エラー +.Er EAGAIN +が返されます。 +.Sh 実装上の注釈 +.Pp +.Fn sendfile +の FreeBSD での実装は「0 コピー」です。すなわち、ファイルデータのコピー +が回避されるように最適化されています。 +.Sh 戻り値 +正常に完了すると、 +.Fn sendfile +は 0 を返します。そうでない場合は -1 が返され、 +エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +が有効なファイル記述子ではありません。 +.It Bq Er EBADF +.Fa s +が有効なソケット記述子ではありません。 +.It Bq Er ENOTSOCK +.Fa s +がソケットではありません。 +.It Bq Er EINVAL +.Fa fd +が通常のファイルではありません。 +.It Bq Er EINVAL +.Fa s +が SOCK_STREAM 型のソケットではありません。 +.It Bq Er EINVAL +.Fa offset +が負であるか、または範囲外です。 +.It Bq Er ENOTCONN +.Fa s +は、未接続のソケットを指しています。 +.It Bq Er EPIPE +通信相手が接続を閉じてしまいました。 +.It Bq Er EIO +.Fa fd +から読取る間に入出力エラーが発生しました。 +.It Bq Er EFAULT +パラメータについて無効なアドレスが指定されました。 +.It Bq Er EAGAIN +ソケットは非ブロッキング入出力と指定されており、ソケットバッファが +満杯であるためにすべてのデータが送信されたわけではありません。 +指定された場合、送信が正常に完了したバイト数が +.Fa *sbytes +内に返されます。 +.El +.Sh 関連項目 +.Xr open 2 , +.Xr send 2 , +.Xr socket 2 , +.Xr writev 2 +.Sh 歴史 +.Fn sendfile +は、はじめて +.Fx 3.0 +で登場しました。このマニュアルページは +.Fx 3.1 +ではじめて登場しました。 +.Sh 作者 +.Fn sendfile +とこのマニュアルページは +.An David Greenman Aq dg@root.com +が作成しました。 diff --git a/ja_JP.eucJP/man/man2/setgroups.2 b/ja_JP.eucJP/man/man2/setgroups.2 new file mode 100644 index 0000000000..510f4b21e3 --- /dev/null +++ b/ja_JP.eucJP/man/man2/setgroups.2 @@ -0,0 +1,82 @@ +.\" 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 +.\" +.Dd April 16, 1994 +.Dt SETGROUPS 2 +.Os BSD 4.2 +.Sh 名称 +.Nm setgroups +.Nd グループ アクセス リストを設定する +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <unistd.h> +.Ft int +.Fn setgroups "int ngroups" "const gid_t *gidset" +.Sh 解説 +.Fn setgroups +は、配列 +.Fa gidset +に従って、現在のユーザプロセスのグループアクセスリストを設定します。 +パラメータ +.Fa ngroups +は、配列内のエントリの数を示し、 +.Ao Pa sys/param.h Ac +内に定義されている値 +.Dv NGROUPS +を超えてはいけません。 +.Pp +スーパユーザだけが新しいグループを設定できます。 +.Sh 戻り値 +正常に完了すると値 0 が返されます。エラーがあったときは -1 が返され、 +エラーコードが +.Va errno +に保存されます。 +.Sh エラー +.Fn setgroups +呼び出しは次の場合に処理に失敗します。 +.Bl -tag -width Er +.It Bq Er EPERM +呼び出し側がスーパユーザではありません。 +.It Bq Er EFAULT +.Fa gidset +に指定されたアドレスは、 +プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr getgroups 2 , +.Xr initgroups 3 +.Sh 歴史 +.Fn setgroups +関数呼び出しは +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/setpgid.2 b/ja_JP.eucJP/man/man2/setpgid.2 new file mode 100644 index 0000000000..408811a28c --- /dev/null +++ b/ja_JP.eucJP/man/man2/setpgid.2 @@ -0,0 +1,89 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt SETPGID 2 +.Os BSD 4 +.Sh 名称 +.Nm setpgid , +.Nm setpgrp +.Nd プロセス グループを設定する +.Sh 書式 +.Fd #include <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 +は、指定された +.Ar pid +プロセスのプロセスグループを指定された +.Ar pgrp +に設定します。 +.Ar pid +が 0 の場合、呼び出しは現在のプロセスに適用されます。 +.Pp +起動側がスーパユーザでない場合、影響を受けるプロセスは、起動側と同じ +実効ユーザ ID を持っているか、または起動プロセスの子孫である必要が +あります。 +.Sh 戻り値 +.Fn setpgid +は、正常に処理を完了したときに 0 を返します。要求が失敗した場合は、 -1 +が返され、理由を示すグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn setpgid +は、次の場合に処理を失敗し、プロセスグループは変更されません。 +.Bl -tag -width indent +.It Bq Er ESRCH +要求されたプロセスが存在しません。 +.It Bq Er EPERM +要求されたプロセスの実効ユーザ ID は呼び出し側の実効ユーザ ID と +異なっており、プロセスは呼び出し側プロセスの子孫ではありません。 +.El +.Sh 関連項目 +.Xr getpgrp 2 +.Sh 規格 +.Fn setpgid +関数呼び出しは +.St -p1003.1-90 +に準拠します。 +.Sh 互換性 +.Fn setpgrp +は、 +.Fn setpgid +と同一であり、 +.Bx +の旧バージョンとの呼び出し規約互換のために保持されています。 diff --git a/ja_JP.eucJP/man/man2/setregid.2 b/ja_JP.eucJP/man/man2/setregid.2 new file mode 100644 index 0000000000..6cca7abb59 --- /dev/null +++ b/ja_JP.eucJP/man/man2/setregid.2 @@ -0,0 +1,88 @@ +.\" 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 +.\" +.Dd April 16, 1994 +.Dt SETREGID 2 +.Os BSD 4.2 +.Sh 名称 +.Nm setregid +.Nd 実グループ ID と実効グループ ID を設定する +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn setregid "gid_t rgid" "gid_t egid" +.Sh 解説 +現在のプロセスの実グループ ID と実効グループ ID を引数で +指定されたように設定します。 +特権のないユーザは、実グループ ID を実効グループ ID に、そして +実効グループ ID を実グループ ID に変更できます。スーパユーザだけが +他の変更を行えます。 +.Pp +実グループ ID と実効グループ ID のどちらかに値 -1 を指定す +ると、システムは -1 パラメータの代わりに現在の ID で置き換えます。 +.Pp +.Fn setregid +関数は、 set-group-ID プログラム内の実グループ ID と実効グループ ID を +スワップし、 set-group-ID 値を一時的に放棄できるように作られました。 +この関数は正しく機能せず、その目的のためには今では +.Fn setegid +関数 ( +.Xr setuid 2 +を参照 ) の使用によってより良く達成できます。 +.Pp +実グループ ID と実効グループ ID を同じ値に設定するときは、 +標準の +.Fn setgid +関数を使用してください。 +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Bl -tag -width [EPERM] +.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/ja_JP.eucJP/man/man2/setreuid.2 b/ja_JP.eucJP/man/man2/setreuid.2 new file mode 100644 index 0000000000..002be8ed6b --- /dev/null +++ b/ja_JP.eucJP/man/man2/setreuid.2 @@ -0,0 +1,85 @@ +.\" 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 +.\" +.Dd April 16, 1994 +.Dt SETREUID 2 +.Os BSD 4 +.Sh 名称 +.Nm setreuid +.Nd 実ユーザ ID と実効ユーザ ID を設定する +.Sh 書式 +.Fd #include <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 +.Fn setreuid +関数は set-user-ID プログラム内で実ユーザ ID と実効ユーザ ID を +スワップし、 set-user-ID の値を一時的に放棄するように使われてきました。 +この目的は、現在では +.Fn seteuid +関数 ( +.Xr setuid 2 +を参照 ) の使用によってより良く達成できます。 +.Pp +実ユーザ ID と実効ユーザ ID を同じ値に設定するときは、標準の +.Fn setuid +関数を使用するようにしてください。 +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Bl -tag -width [EPERM] +.It Bq Er EPERM +現在のプロセスがスーパユーザでなく、実効ユーザ ID を実ユーザ ID に +変更する以外の変更が指定されました。 +.El +.Sh 関連項目 +.Xr getuid 2 , +.Xr issetugid 2 , +.Xr seteuid 2 , +.Xr setuid 2 +.Sh 歴史 +.Fn setreuid +システムコールは +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/setsid.2 b/ja_JP.eucJP/man/man2/setsid.2 new file mode 100644 index 0000000000..966efb8a5e --- /dev/null +++ b/ja_JP.eucJP/man/man2/setsid.2 @@ -0,0 +1,76 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt SETSID 2 +.Os +.Sh 名称 +.Nm setsid +.Nd セッションを作成しプロセスグループ ID を設定する +.Sh 書式 +.Fd #include <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 と一致します。 +.Sh 関連項目 +.Xr setpgid 2 , +.Xr tcgetpgrp 3 , +.Xr tcsetpgrp 3 +.Sh 規格 +.Fn setsid +関数は +.St -p1003.1-90 +仕様に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/setuid.2 b/ja_JP.eucJP/man/man2/setuid.2 new file mode 100644 index 0000000000..4a83f3be8f --- /dev/null +++ b/ja_JP.eucJP/man/man2/setuid.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. +.\" +.\" @(#)setuid.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/setuid.2,v 1.12.2.1 1999/08/29 14:49:24 peter Exp % +.\" +.Dd June 4, 1993 +.Dt SETUID 2 +.Os BSD 4.2 +.Sh 名称 +.Nm setuid , +.Nm seteuid , +.Nm setgid , +.Nm setegid , +.Nd ユーザ ID とグループ ID を設定する +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 と +現在のプロセスの保存された set-user-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 +.\" function is equal to +.\" .Fn seteuid +.\" function if the effective user ID is not that of the super user. +.\" End of block +.Fn setuid +関数が許容されるのは、指定の ID がプロセスの実ユーザ 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 と +現在のプロセスの保存された set-group-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 +.\" function is equal to +.\" .Fn setegid +.\" function if the effective user ID is not that of the super user. +.\" End of block +.Fn setgid +関数が許容されるのは、指定の ID がプロセスの実グループ 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 +または現在のプロセスの保存された set-user-ID ( +.Xr intro 2 +と +.Xr execve 2 +を参照 ) の値に設定できます。これを利用し、 +set-user-ID 実行可能ファイルの実効ユーザ ID を、実ユーザ ID に切り替え、 +次に set-user-ID 値に戻ることによって再有効化して切り替えることできます。 +同じように、実効グループ ID は、 +実グループ ID または保存された set-user-ID の値に設定できます。 +.Pp +.Sh 戻り値 +正常に完了すると、これらの関数は 0 を返します。 +そうでない場合は、-1 が返されます。 +.Pp +ユーザがスーパユーザでない場合、または指定された uid が実 ID 、 +実効 ID 、または保存された ID でない場合、これらの関数は -1 を返します。 +.Sh 関連項目 +.Xr getgid 2 , +.Xr getuid 2 , +.Xr issetugid 2 , +.Xr setregid 2 , +.Xr setreuid 2 +.Sh 規格 +.Fn setuid +関数と +.Fn setgid +関数は +.St -p1003.1-90 +仕様と互換性があります。ただし、 +.Li _POSIX_SAVED_IDS +.\" Uncomment next line for !_POSIX_SAVED_IDS +は付録 B.4.2.2 の許可された拡張で定義されていません。 +.Fn seteuid +関数と +.Fn setegid +関数は、 +.Li _POSIX_SAVED_IDS +の +.Tn POSIX +コンセプトを基礎にして拡張してあり、規格の将来の改定用に提案されています。 +.Sh 歴史 +.Fn setuid +関数呼び出しと +.Fn setgid +関数呼び出しは +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/shmat.2 b/ja_JP.eucJP/man/man2/shmat.2 new file mode 100644 index 0000000000..f451dc1bae --- /dev/null +++ b/ja_JP.eucJP/man/man2/shmat.2 @@ -0,0 +1,108 @@ +.\" +.\" 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.6.2.2 1999/08/29 14:49:25 peter Exp % +.\" +.Dd August 2, 1995 +.Dt SHMAT 2 +.Os FreeBSD +.Sh 名称 +.Nm shmat , +.Nm shmdt +.Nd 共有メモリをアタッチまたはデタッチする +.Sh 書式 +.Fd #include <machine/param.h> +.Fd #include <sys/types.h> +.Fd #include <sys/ipc.h> +.Fd #include <sys/shm.h> +.Ft void * +.Fn shmat "int shmid" "void *addr" "int flag" +.Ft int +.Fn shmdt "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 +正常に完了すると、 +.Fn shmdt +は 0 を返します。そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.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 +は共有メモリセグメントを指していません。 +.Sh 関連項目 +.Xr shmctl 2 , +.Xr shmget 2 diff --git a/ja_JP.eucJP/man/man2/shmctl.2 b/ja_JP.eucJP/man/man2/shmctl.2 new file mode 100644 index 0000000000..b0300b7160 --- /dev/null +++ b/ja_JP.eucJP/man/man2/shmctl.2 @@ -0,0 +1,137 @@ +.\" +.\" 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.7.2.2 1999/08/29 14:49:25 peter Exp % +.\" +.Dd July 17, 1995 +.Dt SHMCTL 2 +.Os FreeBSD +.Sh 名称 +.Nm shmctl +.Nd 共有メモリ制御 +.Sh 書式 +.Fd #include <machine/param.h> +.Fd #include <sys/types.h> +.Fd #include <sys/ipc.h> +.Fd #include <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 +.Fa 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; /* システムのミス */ +}; +.Ed +.Sh 戻り値 +処理が正常に完了すると、 +.Fn shmctl +は 0 を返します。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn shmctl +は次の場合に処理に失敗します。 +.Bl -tag -width Er +.It Bq Er EINVAL +無効な操作、または +.Fa shmid +に指定された共有メモリセグメントが検出されませんでした。 +.\" +.\" XXX I think the following is right: ipcperm() only returns EPERM +.\" when an attempt is made to modify (IPC_M) by a non-creator +.\" non-owner +.It Bq Er EPERM +呼び出しプロセスの実効ユーザ ID が、共有メモリセグメントの所有者 +または作成者のユーザ ID と一致しません。 +.It Bq Er EACCES +操作と共有メモリセグメントモードの間の不一致のために +パーミッションが拒絶されました。 +.El +.Sh 関連項目 +.Xr shmat 2 , +.Xr shmdt 2 , +.Xr shmget 2 , +.Xr ftok 3 diff --git a/ja_JP.eucJP/man/man2/shmget.2 b/ja_JP.eucJP/man/man2/shmget.2 new file mode 100644 index 0000000000..8f2ac4e033 --- /dev/null +++ b/ja_JP.eucJP/man/man2/shmget.2 @@ -0,0 +1,133 @@ +.\" +.\" 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.6.2.2 1999/08/29 14:49:25 peter Exp % +.\" +.Dd July 3, 1995 +.Dt SHMGET 2 +.Os FreeBSD +.Sh 名称 +.Nm shmget +.Nd 共有メモリの識別子の取得 +.Sh 書式 +.Fd #include <machine/param.h> +.Fd #include <sys/types.h> +.Fd #include <sys/ipc.h> +.Fd #include <sys/shm.h> +.Ft int +.Fn shmget "key_t key" "int size" "int flag" +.Sh 解説 +.Fn shmget +は、 +.Fa key +と +.Fa flag +の値に従って、新しく作成した、 +または既存の共有メモリセグメントの識別子を戻します。 +.\" +.\" The following bit about keys and modes also applies to semaphores +.\" and message queues. +.\" +キーはファイル名に似たもので、IPC オブジェクトを +指定するハンドルを提供するものです。 +キーの指定方法には 3 つ方法があります。 +.Bl -bullet +.It +IPC_PRIVATE を指定すると新しい IPC オブジェクトが作成されます。 +.It +整定数を指定できます。 +.Fa key +に対応する IPC オブジェクトが指定されておらず、IPC_CREAT ビットが +.Fa flag +で設定されている場合は、新しい IPC オブジェクトが作成されます。 +.It +.Fn ftok +を使用し、パス名からキーを作成できます。 +.Xr ftok 3 +を参照してください。 +.El +.Pp +新しく作成された IPC オブジェクトのモードは、 +.Fa flag +パラメータに渡す以下の定数の論理和で決まります。 +.Bl -tag -width XSHMLWXX6XXX +.It Dv SHM_R +ユーザの読取りアクセス +.It SHM_W +ユーザの書込みアクセス +.It Dv (SHM_R>>3) +グループの読取りアクセス +.It Dv (SHM_W>>3) +グループの書込みアクセス +.It Dv (SHM_R>>6) +他者の読取りアクセス +.It Dv (SHM_W>>6) +他者の書込みアクセス +.El +.\" +.\" XXX - we should also mention how uid, euid, and gid affect ownership +.\" and use +.\" +.\" end section about keys and modes +.\" +.Pp +新しい共有メモリセグメントを作成する場合、 +.Fa size +は、新しいセグメントのバイト単位のサイズを表わします。 +セグメントのサイズは、カーネルに便利なように倍数に +切り上げられることがあります (ページサイズなど)。 +.Sh 戻り値 +処理が正常に完了すると、 +.Fn shmget +は共有メモリセグメントの正整数の識別子を返します。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +以下の場合、 +.Fn shmget +は処理を失敗します。 +.Bl -tag -width Er +.\" +.\" XXX What about ipcperm failing? +.\" +.It Bq Er EINVAL +指定したサイズが、既存セグメントのサイズより大きいです。 +指定したサイズが、システムの最低値より小さいか、最大値より大きいです。 +.It Bq Er ENOENT +.Fa key +と一致する共有メモリセグメントがなく、IPC_CREAT が指定されていません。 +.It Bq Er ENOSPC +要求を満たす十分なメモリを、カーネルが割り当てられません。 +.It Bq Er EEXIST +IPC_CREAT と IPC_EXCL が指定され、 +.Fa key +に対応する共有メモリセグメントがすでに存在します。 +.Pp +.Sh 関連項目 +.Xr shmat 2 , +.Xr shmctl 2 , +.Xr shmdt 2 , +.Xr ftok 3 diff --git a/ja_JP.eucJP/man/man2/shutdown.2 b/ja_JP.eucJP/man/man2/shutdown.2 new file mode 100644 index 0000000000..9504c4cc0c --- /dev/null +++ b/ja_JP.eucJP/man/man2/shutdown.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. +.\" +.\" @(#)shutdown.2 8.1 (Berkeley) 6/4/93 +.\" +.Dd June 4, 1993 +.Dt SHUTDOWN 2 +.Os BSD 4.2 +.Sh 名称 +.Nm shutdown +.Nd 全二重接続の一部をシャットダウン +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn shutdown "int s" "int how" +.Sh 解説 +.Fn shutdown +を呼び出すと、 +.Fa s +に関連するソケットの全二重接続の全部か一部がシャットダウンされます。 +.Fa how +が +.No Dv SHUT_RD Pq 0 +である場合は、さらなる受信はできなくなります。 +.Fa how +が +.No Dv SHUT_WR Pq 1 +である場合は、さらなる送信ができなくなります。 +.Fa how +が +.No Dv SHUT_RDWR Pq 2 +である場合は、さらなる送受信ができなくなります。 +.Sh 戻り値 +呼び出しが成功すると 0 が返されます。 +エラーが発生した場合は -1 が返されます。 +.Sh エラー +以下の場合、呼び出しはエラーになります。 +.Bl -tag -width ENOTCONNAA +.It Bq Er EBADF +.Fa s +が有効な記述子ではありません。 +.It Bq Er ENOTSOCK +.Fa s +がソケットではなくファイルです。 +.It Bq Er ENOTCONN +指定されたソケットが接続されていません。 +.El +.Sh 関連項目 +.Xr connect 2 , +.Xr socket 2 +.Sh 規格 +.Fn shutdown +関数は、完成時には +.St -p1003.1g +に準拠します。 +.Sh 歴史 +.Fn shutdown +関数呼び出しは、 +.Bx 4.2 +に追加されました。 +.Dv SHUT_ +定数は、 +.St -p1003.1g +に追加されました。 diff --git a/ja_JP.eucJP/man/man2/sigaction.2 b/ja_JP.eucJP/man/man2/sigaction.2 new file mode 100644 index 0000000000..6f778ac1ed --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigaction.2 @@ -0,0 +1,500 @@ +.\" 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.19.2.1 1999/08/29 14:49:26 peter Exp % +.\" +.\" 2001/01/01 horikawa@jp.FreeBSD.org +.\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新 +.\" してください。 +.\" +.Dd April 3, 1994 +.Dt SIGACTION 2 +.Os +.Sh 名称 +.Nm sigaction +.Nd ソフトウェアシグナル機能 +.Sh 書式 +.Fd #include <signal.h> +.Bd -literal +struct sigaction { + void (*sa_handler)(); /* シグナルハンドラ */ + sigset_t sa_mask; /* 適用するシグナルマスク */ + int sa_flags; /* 後述のシグナルオプションを参照 */ +}; +.Ed +.Ft int +.Fn sigaction "int sig" "const struct sigaction *act" "struct sigaction *oact" +.Sh 解説 +システムではシグナルの集合を定義しており、 +これらはプロセスに配信されることがあります。 +シグナルの配信は、 +ハードウェア割込みの発生に似ています。通常の場合、 +シグナルのさらなる発生はブロックされ、 +現在のプロセスコンテキストは保存されて、新しいプロセスコンテキストが +作成されます。プロセスは、シグナルの配信先 +.Em handler +を指定することもあれば、シグナルを +.Em 無視 +することを指定することもあります。 +シグナルが発生した場合に、システムがデフォルトのアクションを取る +ことを指定することも可能です。 +シグナルが +.Em ブロック +されることもあり、 +その場合、シグナルの配信は、 +.Em ブロックが解除 +されるまで延期されます。 +配信時に取るアクションは、配信時に決まります。通常の場合は、 +シグナルハンドラが、プロセスの現行スタックで動作します。 +これはハンドラによって変更可能であり、 +変更すれば、シグナルは特殊な +.Em シグナルスタック +でハンドル可能です。 +.Pp +通常の場合、シグナルルーチンは、呼び出しの原因となったシグナルが +ブロックされた状態で動作しますが、その他のシグナルが発生する可能性は +あります。グローバルの +.Em シグナルマスク +には、プロセスへの配信が現在 +ブロックされているシグナルの集合が定義されています。プロセスの +シグナルマスクは、親のシグナルマスクで初期化されます (通常は空)。 +.Xr sigprocmask 2 +が呼び出された場合、またはシグナルがプロセスに配信された場合に、 +シグナルマスクは変更されます。 +.Pp +シグナル条件がプロセスで発生すると、シグナルが、プロセスで保留に +なっているシグナルの集合に追加されます。 +そのシグナルがプロセスで +現在 +.Em ブロック +されていない場合は、プロセスに配信されます。 +シグナルは、 +プロセスがオペレーティングシステムに入ったときに (システム呼び出し、 +ページエラーやトラップ、クロック割込み中などに) 配信されます。 +複数のシグナルの配信準備が同時に整った場合は、トラップで生じたシグナルが +先に配信されます。 +その他のシグナルは、それぞれが前のシグナルのハンドラに対し、 +最初の命令の前に割り込んだ状態で同時に処理されます。 +保留になっているシグナルの集合は、 +.Xr sigpending 2 +関数で返されます。 +補足されたシグナルが配信されると、プロセスの現在の +状態が保存され、新しいシグナルマスクが以下で説明するように算出されて、 +シグナルハンドラが呼び出されます。 +ハンドラの呼び出しは、 +シグナル処理ルーチンが正常に戻った場合に、プロセスがシグナル配信前の +コンテキストで実行を再開するように編成されます。 +プロセスが別のコンテキストでの再開を望む場合は、 +前のコンテキストそのものを回復するように編成する必要があります。 +.Pp +シグナルがプロセスに配信されると、プロセスの +シグナルハンドラが続く間 (または +.Fn sigprocmask +が呼び出されるまで)、新しいシグナルマスクが設置されます。 +このマスクは、現在のシグナルマスク集合、配信されるシグナル、 +呼び出されるハンドラに関連したシグナルマスクの和集合を取って形成されます。 +.Pp +.Fn sigaction +は、 +.Fa sig +で指定したシグナルのアクションを割り当てます。 +.Fa act +が 0 でない場合は、アクション +.Pf ( Dv SIG_DFL , +.Dv SIG_IGN +かハンドラルーチン)、および指定されたシグナルの配信時に +使用するマスクが指定されます。 +.Fa oact +が 0 でない場合は、シグナルの前の処理情報がユーザに返されます。 +.Pp +シグナルハンドラが設置されると、通常の場合は +.Fn sigaction +を再度呼び出すか +.Xr execve 2 +を実行するまでシグナルハンドラは設置されたまま残ります。 +シグナルに固有なデフォルトアクションへは、 +.Fa sa_handler +を +.Dv SIG_DFL +に設定することでリセットできます。 +デフォルトは、プロセスの終了 +(コアダンプが取られることもあります)、アクションなし、プロセスの停止、 +プロセスの継続です。 +それぞれのシグナルのデフォルトアクションについては、 +以下のシグナルリストを参照してください。 +.Fa sa_handler +が +.Dv SIG_DFL +である場合、シグナルのデフォルトアクションはシグナルの放棄になります。 +また、シグナルが保留になっている場合でも、シグナルがマスクさ +れていても保留中のシグナルは放棄されます。 +.Fa sa_handler +を +.Dv SIG_IGN +に設定すると、シグナルの現在と保留中のインスタンスは無視されて放棄されます。 +.Pp +オプションは、 +.Ar sa_flags +を設定することで指定できます。それぞれの +ビットの意味は以下のとおりです。 +.Bl -tag -offset indent -width SA_RESETHANDXX +.It Dv SA_NOCLDSTOP +.Dv SIGCHLD +シグナルの受信関数を設置する場合にこのビットを設定すると、 +子プロセスが停止したときではなく、子プロセスが終了するときにのみ、 +.Dv SIGCHLD +シグナルが生成されます。 +.It SA_NOCLDWAIT +.Dv SIGCHLD +シグナルで +.Fn sigaction +を呼び出す場合にこのビットを設定すると、システムは、呼び出し側プロセスの +子が終了したときにゾンビプロセスを作成しなくなります。呼び出し側プロセスが +.Xr wait 2 +かそれに相当するものを続けて発行すると、呼び出し側プロセスのすべて +の子プロセスが終了するまでブロックし、次に +.Va errno +を +.Dv ECHILD +に設定して -1 を返します。 +.It Dv SA_ONSTACK +このビットを設定すると、システムは、 +.Xr sigaltstack 2 +で指定された +.Em シグナルスタック +で、プロセスにシグナルを配信します。 +.It Dv SA_NODEFER +このビットを設定すると、配信済みシグナルのさらなる発生が、 +ハンドラの実行中にマスクされなくなります。 +.It Dv SA_RESETHAND +このビットを設定すると、シグナルが配信された瞬間に、ハンドラが +.Dv SIG_DFL +にリセットされます。 +.\" Still missing: +.\" .It Dv SA_SIGINFO +.El +.Pp +以下のリストのシステムコール中にシグナルが補足されると、呼び出しは、エラー +.Dv EINTR +で強制終了されるか、要求より短いデータ転送で戻るか、 +または再開されます。 +保留中のシステムコールの再開は、 +.Ar 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 +以下はすべてのシグナルのリストです。名称は、インクルードファイル +.Aq Pa 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 " コアイメージの作成" Xr abort 3 の呼び出し (以前の +.Dv SIGIOT ) +.It Dv SIGEMT No " コアイメージの作成" " 実行された命令のエミュレート" +.It Dv SIGFPE No " コアイメージの作成" " 浮動小数例外" +.It Dv SIGKILL No " プロセスの終了" " プログラムの終了" +.It Dv SIGBUS No " コアイメージの作成" " バスエラー" +.It Dv SIGSEGV No " コアイメージの作成" " セグメンテーション違反" +.It Dv SIGSYS No " コアイメージの作成" " 存在しないシステムコールの呼び出し" +.It Dv SIGPIPE No " プロセスの終了" " 読取り側がないパイプへの書込み" +.It Dv SIGALRM No " プロセスの終了" " リアルタイムタイマの満了" +.It Dv SIGTERM No " プロセスの終了" " ソフトウェア終了シグナル" +.It Dv SIGURG No " シグナルの放棄" " 緊急事態がソケットに存在" +.It Dv SIGSTOP No " プロセスの停止" " 停止 (補足も無視もできません)" +.It Dv SIGTSTP No " プロセスの停止" " キーボードから生成された停止シグナル" +.It Dv SIGCONT No " シグナルの放棄" " 停止後の継続" +.It Dv SIGCHLD No " シグナルの放棄" " 子ステータスの変化" +.It Dv SIGTTIN No " プロセスの停止" " 制御端末からバックグラウンド読取りしようとした" +.It Dv SIGTTOU No " プロセスの停止" " 制御端末にバックグラウンド書込みしようとした" +.It Dv SIGIO No " シグナルの放棄" " 記述子に " +.Tn I/O +可能 ( +.Xr fcntl 2 +参照) +.It Dv SIGXCPU No " プロセスの終了" " cpu 制限時間の超過 (" +.Xr setrlimit 2 +参照) +.It Dv SIGXFSZ No " プロセスの終了" " ファイルサイズ制限の超過 (" +.Xr setrlimit 2 +参照) +.It Dv SIGVTALRM No " プロセスの終了" " 仮想時間アラーム (" + +.Xr setitimer 2 +参照) +.It Dv SIGPROF No " プロセスの終了" " プロファイリングタイマアラーム ( +.Xr setitimer 2 +参照) +.It Dv SIGWINCH No " シグナルの放棄" " ウィンドウサイズの変化" +.It Dv SIGINFO No " シグナルの放棄" " キーボードからのステータス要求" +.It Dv SIGUSR1 No " プロセスの終了" " ユーザ定義シグナル 1" +.It Dv SIGUSR2 No " プロセスの終了" " ユーザ定義シグナル 2" +.El +.Sh 注 +.Fa act +に指定する +.Fa sa_mask +フィールドでは、 +.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 +上のリストに記載されていないすべての関数は、シグナルに関して安全でない +と考えられます。 +つまり、そのような関数の動きは、シグナルハンドラから呼び出されると不定です。 +.Pp +.Sh 戻り値 +0 は、呼び出しに問題がなかったことを表わします。 +-1 は、エラーが発生し、 +.Va errno +がエラーの理由を示すように設定されていることを表わします。 +.Pp +.Sh 使用例 +ハンドラルーチンは、以下のように宣言できます。 +.Bd -literal -offset indent +void handler(sig, code, scp) +int sig, code; +struct sigcontext *scp; +.Ed +.Pp +.Fa sig +は、ハードウェアエラーとトラップがマップされているシグナル番号です。 +.Fa code +は、ハードウェアが提供する定数かコードであるパラメータです。 +.Fa scp +は、 +.Fa sigcontext +構造体のポインタ ( +.Aq Pa signal.h +で定義されています) で、シグナル前のコンテキストを回復するために使用されます。 +.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 +フラグは、 +.Dv SIGTRAP , +.Dv SIGEMT , +.Dv SIGBUS , +.Dv SIGSYS , +.Dv SIGURG , +.Dv SIGIO , +.Dv SIGXCPU , +.Dv SIGXFSZ , +.Dv SIGVTALRM , +.Dv SIGPROF , +.Dv SIGWINCH , +.Dv SIGINFO +シグナルと同じように、 +Berkeley の拡張機能です。これらのシグナルは、 +.Tn BSD +から派生した、ほとんどのシステムで使用できます。 +.Dv SA_NODEFER +フラグと +.Dv SA_RESETHAND +フラグは、その他のオペレーティングシステムとの下位互換性を保つためのものです。 +.Dv SA_NOCLDSTOP +フラグと +.Dv SA_NOCLDWAIT +フラグは、その他のオペレーティングシステムで一般的に見られるオプションです。 +.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 tty 4 diff --git a/ja_JP.eucJP/man/man2/sigaltstack.2 b/ja_JP.eucJP/man/man2/sigaltstack.2 new file mode 100644 index 0000000000..9de834377e --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigaltstack.2 @@ -0,0 +1,156 @@ +.\" 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.9.2.2 1999/08/29 14:49:26 peter Exp % +.\" +.Dd May 1, 1995 +.Dt SIGALTSTACK 2 +.Os BSD 4.2 +.Sh 名称 +.Nm sigaltstack +.Nd シグナルスタックコンテキストの設定や入手 +.Sh 書式 +.Fd #include <signal.h> +.Bd -literal +struct sigaltstack { + char *ss_sp; + size_t ss_size; + int ss_flags; +}; +.Ed +.Ft int +.Fn sigaltstack "const struct sigaltstack *ss" "struct sigaltstack *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 +を +.Dv EINVAL +に設定します。スタックが無効になると、すべてのシグナルは通常の +ユーザスタックで動作するようになります。スタックが後で有効にると、 +代替スタックで処理するように指定されたすべてのシグナルは、 +その指定どおりに再開されます。 +.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 戻り値 +処理が正常に完了すると、値 0 が返されます。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +以下のうち 1 つが発生すると、 +.Fn sigaltstack +は処理を失敗し、シグナルスタックコンテキストは変更されずに残ります。 +.Bl -tag -width [ENOMEM] +.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/ja_JP.eucJP/man/man2/sigblock.2 b/ja_JP.eucJP/man/man2/sigblock.2 new file mode 100644 index 0000000000..7e53edd2ce --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigblock.2 @@ -0,0 +1,81 @@ +.\" 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. +.\" +.\" @(#)sigblock.2 8.1 (Berkeley) 6/2/93 +.\" +.Dd June 2, 1993 +.Dt SIGBLOCK 2 +.Os BSD 4.2 +.Sh 名称 +.Nm sigblock +.Nd シグナルをブロックする +.Sh 書式 +.Fd #include <signal.h> +.Ft int +.Fn sigblock "int mask" +.Ft int +.Fn sigmask signum +.Sh 解説 +.Bf -symbolic +このインタフェースは、 +.Xr sigprocmask 2 +に更新されました。 +.Ef +.Pp +.Fn sigblock +は、現在、配信をブロックされているシグナルのセットに、 +.Fa mask +で指定したシグナルを追加します。 +.Fa mask +で対応するビットが 1 である場合、シグナルはブロックされます。マクロ +.Fn sigmask +は、 +.Fa signum +のマスクを作成するために提供されています。 +.Pp +.Dv SIGKILL +や +.Dv SIGSTOP +はブロックできません。これはシステムが課す制限事項です。 +.Sh 戻り値 +マスクされたシグナルの前のセットが戻されます。 +.Sh 関連項目 +.Xr kill 2 , +.Xr sigaction 2 , +.Xr sigprocmask 2 , +.Xr sigsetmask 2 , +.Xr sigsetops 3 +.Sh 歴史 +.Fn sigblock +関数呼び出しは、 +.Bx 4.2 +で登場しました。 +しかし、現在ではこの関数を使用することは推奨されていません。 diff --git a/ja_JP.eucJP/man/man2/sigpause.2 b/ja_JP.eucJP/man/man2/sigpause.2 new file mode 100644 index 0000000000..7efbbf3e8b --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigpause.2 @@ -0,0 +1,74 @@ +.\" 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 +.\" +.Dd June 2, 1993 +.Dt SIGPAUSE 2 +.Os BSD 4 +.Sh 名称 +.Nm sigpause +.Nd ブロックされたシグナルを不可分に解放、割込み待機する +.Sh 書式 +.Fd #include <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 +を +.Dv 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.2 +で登場しました。 +しかし、現在ではこの関数を使用することは推奨されていません。 diff --git a/ja_JP.eucJP/man/man2/sigpending.2 b/ja_JP.eucJP/man/man2/sigpending.2 new file mode 100644 index 0000000000..62327e1523 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigpending.2 @@ -0,0 +1,70 @@ +.\" 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 +.\" +.Dd January 12, 1994 +.Dt SIGPENDING 2 +.Os +.Sh 名称 +.Nm sigpending +.Nd 保留中のシグナルの得る +.Sh 書式 +.Fd #include <signal.h> +.Ft int +.Fn sigpending "sigset_t *set" +.Sh 解説 +.Fn sigpending +関数は、 +.Fa set +で示された場所の呼び出しプロセスの配信が保留になっているシグナルの +マスクを戻します。シグナルは、現在マスクをかけられているとき、 +または配信前に一時的に保留になります +(通常、後者を検出することはできません)。 +.Sh 戻り値 +戻り値 0 は呼び出しが正常に完了したことを示します。 +戻り値 -1 はエラーが起こったことを示し、 +.Va errno +にエラーが起こったり理由が設定されます。 +.Sh エラー +.Fn sigpending +関数は、現在のところエラーを検出しません。 +.Sh 関連項目 +.Xr sigaction 2 , +.Xr sigprocmask 2 +.Sh 規格 +.Fn sigpending +関数呼び出しは、 +.St -p1003.1-90 +に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/sigprocmask.2 b/ja_JP.eucJP/man/man2/sigprocmask.2 new file mode 100644 index 0000000000..7cd1207299 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigprocmask.2 @@ -0,0 +1,120 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt SIGPROCMASK 2 +.Os +.Sh 名称 +.Nm sigprocmask +.Nd 現在のシグナルマスクを操作する +.Sh 書式 +.Fd #include <signal.h> +.Ft int +.Fn sigprocmask "int how" "const sigset_t *set" "sigset_t *oset" +.Sh 解説 +.Fn sigprocmask +関数は、現在のシグナルマスク +(配信がブロックされているシグナル) +の調査や変更を行ないます。シグナルは、現在 +のシグナルマスクセットのメンバである場合にブロックされます。 +.Pp +.Fa set +がヌルではない場合、 +.Fn sigprocmask +の操作は、パラメータ +.Ar how +の値によって決まります。シグナルマスクは、指定した +.Fa set +と現在のマスクによって変更されます。 +関数は、 +.Aq Pa signal.h +の以下の値を使用して +.Ar how +で指定します。 +.Bl -tag -width SIG_UNBLOCK +.It Dv SIG_BLOCK +新しいマスクは、現在のマスクと指定した +.Fa set +の和集合になります。 +.Pp +.It Dv SIG_UNBLOCK +新しいマスクは、現在のマスクと指定した +.Fa set +の補集合の交わりになります。 +.It Dv SIG_SETMASK +現在のマスクは、指定した +.Fa set +に置き換えられます。 +.El +.Pp +.Fa oset +がヌルでない場合、前のシグナルマスクの値に設定されます。 +.Fa set +がヌルである場合、 +.Ar how +の値が無効になり、マスクは未設定のまま残るので、 +シグナルマスクを修正せずに検査できるようになります。 +.Pp +システムでは、 +.Dv SIGKILL +や +.Dv SIGSTOP +のブロックが許可されていません。 +.Pp +.Sh 戻り値 +値 0 は呼び出しが正常に完了したことを示します。 +戻り値 -1 はエラーが起こったことを示し、エラーの理由を示すために +.Va errno +が設定されます。 +.Sh エラー +以下が発生すると、 +.Fn sigprocmask +呼び出しはエラーになり、シグナルマスクは変更されません。 +.Pp +.Bl -tag -width Bq Er EINVAL +.It Bq Er EINVAL +.Fa how +が、ここでリストに挙げた以外の値になっています。 +.Pp +.Sh 関連項目 +.Xr kill 2 , +.Xr sigaction 2 , +.Xr sigsuspend 2 , +.Xr fpsetmask 3 , +.Xr sigsetops 3 +.Sh 規格 +.Fn sigprocmask +関数呼び出しは、 +.St -p1003.1-90 +に準拠します。 +.Pp diff --git a/ja_JP.eucJP/man/man2/sigreturn.2 b/ja_JP.eucJP/man/man2/sigreturn.2 new file mode 100644 index 0000000000..b1349411c3 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigreturn.2 @@ -0,0 +1,115 @@ +.\" 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.3.2.1 1999/09/18 16:19:01 phantom Exp % +.\" +.Dd June 4, 1993 +.Dt SIGRETURN 2 +.Os BSD 4.3 +.Sh 名称 +.Nm sigreturn +.Nd シグナルから戻る +.Sh 書式 +.Fd #include <signal.h> +.Pp +.Bd -literal +struct sigcontext { + int sc_onstack; /* 復元するスタックステータス */ + int sc_mask; /* 復元するシグナルマスク */ + int sc_esp; /* 機械の状態 */ + int sc_ebp; + int sc_isp; + int sc_eip; + int sc_efl; + int sc_es; + int sc_ds; + int sc_cs; + int sc_ss; + int sc_edi; + int sc_esi; + int sc_ebx; + int sc_edx; + int sc_ecx; + int sc_eax; +# define sc_sp sc_esp +# define sc_fp sc_ebp +# define sc_pc sc_eip +# define sc_ps sc_efl +}; +.Ed +.Ft int +.Fn sigreturn "struct sigcontext *scp" +.Sh 解説 +.Fn sigreturn +によって、マスクの細かい設定解除、スタックのスイッチ、 +シグナルコンテキストからの復帰を +行なえます。プロセスのシグナルマスクとスタックステータスは、 +コンテキストから復元されます。システム呼び出しは戻りません。 +ユーザのスタックポインタ、フレームポインタ、引数ポインタ、 +プロセッサステータスロングワードは、コンテキストから復元されます。 +実行は、指定された +pc +で再開されます。 +このシステム呼び出しは、前に実行していたプログラムにシグナル +から戻る場合に、トランポリンコードと +.Xr longjmp 3 +で使用します。 +.Sh 注釈 +このシステム呼び出しは4.2 +.Tn BSD +では使用できないので、下位互換性が必要な場合は使用しないでください。 +.Sh 戻り値 +処理が正常に完了すると、このシステム呼び出しは戻りません。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます +.Sh エラー +以下のうち 1 つが発生すると、 +.Fn sigreturn +は処理を失敗し、プロセスコンテキストは変更されずに残ります。 +.Bl -tag -width [EINVAL] +.It Bq Er EFAULT +.Fa Scp +が、プロセスアドレス空間の有効な部分ではない +メモリを指しています。 +.It Bq Er EINVAL +プロセスステータスロングワードが正しくないか、 +プロセスの権限レベルを不適切に上げています。 +.El +.Sh 関連項目 +.Xr sigvec 2 , +.Xr setjmp 3 +.Sh 歴史 +.Fn sigreturn +関数呼び出しは、 +.Bx 4.3 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sigsetmask.2 b/ja_JP.eucJP/man/man2/sigsetmask.2 new file mode 100644 index 0000000000..40cb4c2d35 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigsetmask.2 @@ -0,0 +1,85 @@ +.\" 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 +.\" +.Dd June 2, 1993 +.Dt SIGSETMASK 2 +.Os BSD 4.2 +.Sh 名称 +.Nm sigsetmask +.Nd 現在のシグナルマスクを設定する +.Sh 書式 +.Fd #include <signal.h> +.Ft int +.Fn sigsetmask "int mask" +.Fn sigmask signum +.Sh 解説 +.Bf -symbolic +このインタフェースは +.Ef +.Xr sigprocmask 2 +.Bf -symbolic +によって旧式のものとなっています。 +.Ef +.Pp +.Fn sigsetmask +は、現在のシグナルマスクを設定します。 +.Fa mask +で対応するビットが +1 である場合、シグナルの配信はブロックされ +ます。マクロ +.Fn sigmask +は、指定した +.Fa signum +のマスクを作成するために提供されています。 +.Pp +システムでは、 +.Dv SIGKILL +や +.Dv SIGSTOP +のブロックが許可されていません。 +.Sh 戻り値 +マスクされたシグナルの前のセットが戻されます。 +.Sh 関連項目 +.Xr kill 2 , +.Xr sigaction 2 , +.Xr sigblock 2 , +.Xr sigprocmask 2 , +.Xr sigsuspend 2 , +.Xr sigvec 2 , +.Xr sigsetops 3 +.Sh 歴史 +.Fn sigsetmask +関数呼び出しは +.Bx 4.2 +で登場しました。 +しかし、現在では この関数を使用することは推奨されていません。 diff --git a/ja_JP.eucJP/man/man2/sigstack.2 b/ja_JP.eucJP/man/man2/sigstack.2 new file mode 100644 index 0000000000..4091bf74e2 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigstack.2 @@ -0,0 +1,51 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt SIGSTACK 2 +.Os BSD 4.2 +.Sh 名称 +.Nm sigstack +.Nd シグナルスタックコンテキストの設定や取得 +.Sh 解説 +.Fn sigstack +関数は、 +.Xr sigaltstack 2 +で説明したインタフェースで置き換えられました。 +.Sh 関連項目 +.Xr sigaltstack 2 +.Sh 歴史 +.Fn sigstack +関数呼び出しは、 +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sigsuspend.2 b/ja_JP.eucJP/man/man2/sigsuspend.2 new file mode 100644 index 0000000000..b3167d241b --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigsuspend.2 @@ -0,0 +1,78 @@ +.\" 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 +.\" +.Dd May 16, 1995 +.Dt SIGSUSPEND 2 +.Os +.Sh 名称 +.Nm sigsuspend +.Nd ブロックされているシグナルの解放と割込み待ちとを不可分に実行 +.Sh 書式 +.Fd #include <signal.h> +.Ft int +.Fn sigsuspend "const sigset_t *sigmask" +.Sh 解説 +.Fn sigsuspend +は、 +.Fa sigmask +が指す集合に、ブロックされて +いるシグナルマスクを一時的に変更してから、シグナルの到着を待ちます。 +復帰時に、マスクされたシグナルの前の集合が復元されます。 +通常の場合、シグナルマスク集合は空で、呼び出しが続く間、 +すべてのシグナルがブロックされないことを表わします。 +.Pp +通常の用法では、 +.Xr sigprocmask 2 +でシグナルをブロックして重要なセクションを始め、 +シグナルの発生で修正された変数を調べて +実行すべき仕事がないことを判断し、 +.Xr sigprocmask +が返した以前のマスクで +.Fn sigsuspend +を使用することでプロセスが停止して仕事を待ちます。 +.Sh 戻り値 +.Fn sigsuspend +関数は、常に、割り込まれることで終了し、 +.Va errno +を +.Dv EINTR +に設定し、-1 を返します。 +.Sh 関連項目 +.Xr sigaction 2 , +.Xr sigprocmask 2 , +.Xr sigsetops 3 +.Sh 規格 +.Fn sigsupend +関数呼び出しは、 +.St -p1003.1-90 +に準拠します。 diff --git a/ja_JP.eucJP/man/man2/sigvec.2 b/ja_JP.eucJP/man/man2/sigvec.2 new file mode 100644 index 0000000000..993f25184b --- /dev/null +++ b/ja_JP.eucJP/man/man2/sigvec.2 @@ -0,0 +1,330 @@ +.\" 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 +.\" +.\" 2001/01/01 horikawa@jp.FreeBSD.org +.\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新 +.\" してください。 +.\" +.Dd April 19, 1994 +.Dt SIGVEC 2 +.Os BSD 4 +.Sh 名称 +.Nm sigvec +.Nd ソフトウェアシグナル機能 +.Sh 書式 +.Fd #include <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 +このインタフェースは、 +sigaction(2) +に置き換えられました。 +.Ef +.Pp +システムではシグナルの集合を定義しており、 +これらはプロセスに配信されることがあります。 +シグナルの配信は、ハードウェア割込みの発生に似ています。 +シグナルのさらなる発生はブロックされ、 +現在のプロセスコンテキストは保存されて、新しいプロセスコンテキストが +作成されます。プロセスは、シグナルの配信先 +.Em handler +を指定することもあれば、シグナルを +.Em ブロックすること +および +.Em 無視すること +を指定することもあります。 +シグナルが発生した場合に、システムがデフォルトのアクションを取る +ことを指定することも可能です。 +通常の場合、シグナルハンドラは、プロセスの現行スタックで動作します。 +これは、ハンドラ毎に変更して、シグナルが特殊な +.Em シグナルスタック +でハンドルされるようにできます。 +.Pp +すべてのシグナルの +.Em 優先順位 +は同じです。 +シグナルルーチンは、呼出しの原因となったシグナルが +.Em ブロックされた +状態で動作しますが、 +その他のシグナルが発生する可能性はあります。グローバルな +.Em シグナルマスク +には、プロセスへの配信が現在ブロック +されているシグナルの集合が定義されています。 +プロセスのシグナルマスクは、親のシグナルマスクに初期化されます (通常は 0)。 +シグナルマスクは、 +.Xr sigblock 2 +か +.Xr sigsetmask 2 +を呼び出すか、シグナルがプロセスに配信された場合に変更され得ます。 +.Pp +シグナル条件がプロセスで発生すると、そのシグナルが、 +プロセスで保留になっているシグナルの集合に追加されます。 +そのシグナルがプロセスで現在 +.Em ブロック +されていない場合は、プロセスに配信されます。 +シグナルが配信されると、プロセスの現在の状態が保存され、 +新しいシグナルマスクが以下で説明するように +算出されて、シグナルハンドラが呼び出されます。 +ハンドラの呼び出しは、シグナル処理ルーチンが正常に戻った場合に +プロセスがシグナル配信前のコンテキストで実行を再開するように編成されます。 +プロセスが別のコンテキストでの再開を望む場合は、 +プロセスが前のコンテキストそのものを回復するように編成する必要があります。 +.Pp +シグナルがプロセスに配信されると、新しいシグナルマスクが、 +プロセスのシグナルハンドラが続く間 (または +.Xr sigblock 2 +か +.Xr sigsetmask 2 +が呼び出されるまで) 設置されます。 +このマスクは、現在のシグナルマスクに、配信されるシグナルを追加し、 +呼び出されるハンドラに関連したシグナルマスクとの論理和を +取って形成されます。 +.Pp +.Fn sigvec +は、特定のシグナルにハンドラを割り当てます。 +.Fa vec +を 0 以外にした場合は、指定したシグナルを配信する場合に使用する +ハンドラルーチンとマスクが指定されます。 +.Dv SV_ONSTACK +ビットが +.Fa sv_flags +で設定されている場合、システムは、 +.Xr sigaltstack 2 +で指定された +.Em シグナルスタック +のプロセスにシグナルを配信します。 +.Fa ovec +を 0 以外にした場合は、 +シグナルの前の処理情報がユーザに返されます。 +.Pp +以下はすべてのシグナルのリストです。 +名称は、インクルードファイル +.Aq Pa 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 " コアイメージの作成" 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 +で設定することで、システムコールは、 +.Dv 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 +フラグを使用できないので、下位 +互換性が必要な場合は使用しないでください。 +.Pp +.Sh 戻り値 +0 は、呼び出しに問題がなかったことを表わします。 +-1 は、エラーが発生し、 +.Va errno +がエラーの理由を示すように設定されていることを表わします。 +.Pp +.Sh エラー +以下のうち 1 つが発生すると、 +.Fn sigvec +はエラーとなり、新 +しいシグナルハンドラは設置されません。 +.Bl -tag -width [EINVAL] +.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 +構造体 ( +.Aq Pa signal.h +で定義) へのポインタで、シグナル前にコンテキストを復元するために使用されます。 +.Sh バグ +このマニュアルページは不明確です。 diff --git a/ja_JP.eucJP/man/man2/socket.2 b/ja_JP.eucJP/man/man2/socket.2 new file mode 100644 index 0000000000..33496afe65 --- /dev/null +++ b/ja_JP.eucJP/man/man2/socket.2 @@ -0,0 +1,247 @@ +.\" 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.9.2.1 1999/08/29 14:49:27 peter Exp % +.\" +.Dd November 24, 1997 +.Dt SOCKET 2 +.Os BSD 4.2 +.Sh 名称 +.Nm socket +.Nd 通信のエンドポイントの作成 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/socket.h> +.Ft int +.Fn socket "int domain" "int type" "int protocol" +.Sh 解説 +.Fn socket +は、通信のエンドポイントを作成し、記述子を +戻します。 +.Pp +.Fa domain +パラメータでは、通信を行なう通信ドメインを指 +定します。これにより、使用するプロトコルファミリが選 +択されます。このプロトコルファミリは、インクルードファイル +.Ao Pa sys/socket.h Ac +で定義されています。現在解釈され +るフォーマットは以下のとおりです。 +.Pp +.Bd -literal -offset indent -compact +PF_LOCAL (PF_UNIX と呼ばれていた、ホスト内プロトコル), +PF_INET (ARPA インターネットプロトコル), +PF_ISO (ISO プロトコル), +PF_CCITT (X.25 のような ITU-T プロトコル), +PF_NS (Xerox Network Systems プロトコル), +.\"PF_IMPLINK (IMP \*(lqhost at IMP\*(rq link layer). +.Ed +.Pp +ソケットには、通信の種類を指定する +.Fa タイプ +があります。現在、定義されているタイプは以下のとおりです。 +.Pp +.Bd -literal -offset indent -compact +SOCK_STREAM +SOCK_DGRAM +SOCK_RAW +SOCK_SEQPACKET +SOCK_RDM +.Ed +.Pp +.Dv SOCK_STREAM +タイプは、連続した、信頼性のある、双方向接続ベースの +バイトストリームを提供します。帯域外データ転送メカニズムが +サポートされることもあります。 +.Dv SOCK_DGRAM +ソケットでは、データグラム +(コネクションレスで信頼性のない、固定最大長 (一般的には小さい) メッセージ) +がサポートされます。 +.Dv SOCK_SEQPACKET +ソケットは、連続した、信頼性のある、双方向接続ベースの +最大長のデータグラムの転送を提供します。 +各読取りシステムコールでパケット全体を読み取る必要があるかもしれません。 +この機能はプロトコル固有のもので、現在のところ +.Dv PF_NS +でしか実現されていません。 +.Dv SOCK_RAW +ソケットでは、内部ネットワークプロトコ +ルとインタフェースにアクセスできます。スーパユーザしか使用できない +.Dv SOCK_RAW +タイプ、および計画されているがまだ実現されていない +.Dv SOCK_RDM +については、ここでは説明しません。 +.Pp +.Fa protocol +では、ソケットで使用する特定プロトコルを指定します。通常の場合は、 +1 つのプロトコルのみが存在して、指定したプロトコルファミリの +特定ソケットタイプをサポートします。しかし、複数のプロトコルが +存在することも可能です。この場合は、特定プロトコルをこの方法で +指定する必要があります。使用するプロトコル番号は、 +通信を行なう通信ドメインに固有です。 +.Xr protocols 5 +を参照してください。 +.Pp +タイプ +.Dv SOCK_STREAM +のソケットは、パイプに類似した全二重バイトストリームです。 +ストリームソケットでは、 +.Em 接続済み状態 +にしてからデータを送受信する必要があります。別のソケットへの接続は、 +.Xr connect 2 +を呼び出して作成できます。接続されたら、 +.Xr read 2 +と +.Xr write 2 +を呼び出すか、 +.Xr send 2 +と +.Xr recv 2 +の変種を呼び出してデータを転送できます。(インターネットファミリなど、 +一部のプロトコルファミリでは、「暗黙接続」という観念が +サポートされています。この接続では、 +.Xr sendto 2 +を呼び出し、接続オペレーションに乗せてデータを送信できます。) +セッションが終了したら、 +.Xr close 2 +が実行されることがあります。帯域外データは、 +.Xr send 2 +で説明されているように送信し、 +.Xr recv 2 +で説明されているように受信できます。 +.Pp +.Dv SOCK_STREAM +の実現に使用する通信プロトコルでは、データの喪失や重複がないことが +保証されます。ピアプロトコルにバッファ空間があるデータの一部を +合理的な時間内に問題なく転送できない場合は、 +接続が破損したとみなされて呼び出しがエラーとなり、 +-1 が戻されてグローバル変数 +.Va errno +に +.Dv 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 +シグナルを受信するプロセスグループを指定できます。非ブロック I/O、 +および I/O イベントの非同期通知も、 +.Dv SIGIO +で有効にできます。 +.Pp +ソケットのオペレーションは、ソケットレベルの +.Em オプション +で制御されます。このオプションは、ファイル +.Ao Pa sys/socket.h Ac +に定義されています。 +.Xr setsockopt 2 +はオプションの設定に、 +.Xr getsockopt 2 +はオプションの入手に使用します。 +.Sh 戻り値 +エラーが発生すると -1 が戻されます。エラーが発生しなかった場合は、 +ソケットを参照する記述子が戻されます。 +.Sh エラー +以下のような場合、 +.Fn socket +の呼び出しはエラーになります。 +.Bl -tag -width EPROTONOPSUPPORTA +.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 select 2 , +.Xr send 2 , +.Xr shutdown 2 , +.Xr socketpair 2 , +.Xr write 2 , +.Xr getprotoent 3 , +.Xr protocols 5 +.Re +.Rs +.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial" +.%B PS1 +.%N 7 +.Re +.Rs +.%T "BSD Interprocess Communication Tutorial" +.%B PS1 +.%N 8 +.Re +.Sh 歴史 +.Fn socket +関数呼び出しは +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/socketpair.2 b/ja_JP.eucJP/man/man2/socketpair.2 new file mode 100644 index 0000000000..eabcfaf017 --- /dev/null +++ b/ja_JP.eucJP/man/man2/socketpair.2 @@ -0,0 +1,90 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt SOCKETPAIR 2 +.Os BSD 4.2 +.Sh 名称 +.Nm socketpair +.Nd 接続されたソケットのペアの作成 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 戻り値 +処理が正常に完了すると、0 が返されます。 +エラーが発生すると -1 が返されます。 +.Sh エラー +以下のような場合、処理を失敗します。 +.Bl -tag -width EPROTONOSUPPORTA +.It Bq Er EMFILE +プロセスで使用されている記述子が多すぎます。 +.It Bq Er EAFNOSUPPORT +指定されたアドレスファミリが、この機械でサポートされていません。 +.It Bq Er EPROTONOSUPPORT +指定したプロトコルが、この機械でサポートされていません。 +.It Bq Er EOPNOSUPPORT +指定したプロトコルでの、ソケットペアの作成がサポートされていません。 +.It Bq Er EFAULT +アドレス +.Fa sv +が、プロセスアドレス空間の有効な部分を指定していません。 +.Sh 関連項目 +.Xr pipe 2 , +.Xr read 2 , +.Xr write 2 +.Sh バグ +この呼び出しは、現在のところ +.Tn UNIX +ドメインのみで実装されています。 +.Sh 歴史 +.Fn socketpair +関数呼び出しは +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/stat.2 b/ja_JP.eucJP/man/man2/stat.2 new file mode 100644 index 0000000000..1d0908cbb1 --- /dev/null +++ b/ja_JP.eucJP/man/man2/stat.2 @@ -0,0 +1,274 @@ +.\" 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.14.2.1 1999/08/29 14:49:27 peter Exp % +.\" +.Dd May 1, 1995 +.Dt STAT 2 +.Os BSD 4 +.Sh 名称 +.Nm stat , +.Nm lstat , +.Nm fstat +.Nd ファイルステータスの取得 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <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 +はリンクが参照するファイルの情報を返します。 +その他のファイルシステムオブジェクトと異なり、 +シンボリックリンクには、所有者、グループ、アクセスモード、時刻など +がありません。これらの属性は、そのリンクを含むディレクトリから +得られます。シンボリックリンクそのものを参照して +.Fn lstat +を呼び出すと、ファイルタイプ (S_IFLINK)、サイズ、ブロック、リンク数 +(常に 1) のみを返します。 +.Pp +.Fn fstat +は、ファイル記述子 +.Fa fd +で区別されるオープンファイルについて、上と同じ情報を取得します。 +.Pp +引数 +.Fa sb +は、構造体 +.Fn stat +へのポインタです。これは、 +.Aq Pa sys/stat.h +(下記参照) で定義され、ファイルに関する情報を保持します。 +.Bd -literal +struct stat { + dev_t st_dev; /* inode のデバイス */ + ino_t st_ino; /* inode 番号 */ + mode_t st_mode; /* inode 保護モード */ + nlink_t st_nlink; /* ハードリンク数 */ + uid_t st_uid; /* ファイル所有者のユーザ ID */ + gid_t st_gid; /* ファイルグループのグループ ID */ + dev_t st_rdev; /* デバイスタイプ */ +#ifndef _POSIX_SOURCE + struct timespec st_atimespec; /* 最後のアクセス時刻 */ + struct timespec st_mtimespec; /* 最後のデータ修正時刻 */ + struct timespec st_ctimespec; /* 最後のファイルステータス修正時刻 */ +#else + time_t st_atime; /* 最後のアクセス時刻 */ + long st_atimensec; /* 最後のアクセス時刻の nsec */ + time_t st_mtime; /* 最後のデータ修正時刻 */ + long st_mtimensec; /* 最後のデータ修正時刻の nsec */ + time_t st_ctime; /* 最後のファイルステータス修正時刻 */ + long st_ctimensec; /* 最後のファイルステータス修正時刻の nsec */ +#endif + off_t st_size; /* バイト単位のファイルの大きさ */ + int64_t st_blocks; /* ファイルに割り当てられたブロック数 */ + u_int32_t st_blksize; /* I/O に最適なブロックサイズ */ + u_int32_t st_flags; /* ファイルに対するユーザ定義フラグ */ + u_int32_t st_gen; /* ファイル生成番号 */ +}; +.Ed +.Pp +.Fa struct stat +の時刻に関するフィールドは、以下のとおりです。 +.Bl -tag -width XXXst_mtime +.It st_atime +ファイルのデータが最後にアクセスされた時刻。 +.Xr mknod 2 , +.Xr utimes 2 , +.Xr read 2 +システムコールで変更されます。 +.It st_mtime +ファイルのデータが最後に修正された時刻。 +.Xr mknod 2 , +.Xr utimes 2 , +.Xr write 2 +システムコールで変更されます。 +.It st_ctime +ファイルステータスが最後に変更された時刻 (inode データの修正)。 +.Xr chmod 2 , +.Xr chown 2 , +.Xr link 2 , +.Xr mknod 2 , +.Xr rename 2 , +.Xr unlink 2 , +.Xr utimes 2 , +.Xr write 2 +システムコールで変更されます。 +.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 +.Fa struct stat +のサイズに関するフィールドは、以下のとおりです。 +.Bl -tag -width XXXst_blksize +.It st_blksize +ファイルの最適な I/O ブロックサイズ。 +.It st_blocks +ファイルに 512 バイト単位で割り当てられたブロックの実際の数。 +短いシンボリックリンクが i ノードに保持されている場合、この数値が +0 になることがあります。 +.El +.Pp +ステータス情報ワード +.Fa st_mode +には、以下のようなビットがあります。 +.Bd -literal +#define S_IFMT 0170000 /* ファイルのタイプ */ +#define S_IFIFO 0010000 /* 名前付きパイプ (fifo) */ +#define S_IFCHR 0020000 /* キャラクタ型特殊ファイル */ +#define S_IFDIR 0040000 /* ディレクトリ */ +#define S_IFBLK 0060000 /* ブロック方特殊ファイル */ +#define S_IFREG 0100000 /* 通常 */ +#define S_IFLNK 0120000 /* シンボリックリンク */ +#define S_IFSOCK 0140000 /* ソケット */ +#define S_IFWHT 0160000 /* ホワイトアウト */ +#define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ +#define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ +#define S_ISVTX 0001000 /* 使用後にもスワップされたテキストを保存 */ +#define S_IRUSR 0000400 /* 読み込み権限の所有者 */ +#define S_IWUSR 0000200 /* 書き込み権限の所有者 */ +#define S_IXUSR 0000100 /* 実行/検索権限の所有者 */ +.Ed +アクセスモードのリストについては、 +.Aq Pa sys/stat.h , +.Xr access 2 , +.Xr chmod 2 +を参照してください。 +.Sh 戻り値 +問題なく終了すると 0 が戻されます。 +問題が発生すると -1 が戻され、 +.Va errno +にそのエラーを示す値が設定されます。 +.Sh 互換性 +以前のバージョンのシステムでは、 +.Li st_dev , +.Li st_uid , +.Li st_gid , +.Li st_rdev , +.Li st_size , +.Li st_blksize , +.Li st_blocks +フィールドに別のタイプを使用していました。 +.Sh エラー +.Fn stat +と +.Fn lstat +は、以下のような場合にエラーとなります。 +.Bl -tag -width ENAMETOOLONGAA +.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 EFAULT +.Fa sb +か +.Em name +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムでの読み書き中に I/O エラーが発生しました。 +.El +.Pp +.Fn fstat +は、以下のような場合にエラーとなります。 +.Bl -tag -width [EFAULT] +.It Bq Er EBADF +.Fa fd +が、有効な記述子ではありません。 +.It Bq Er EFAULT +.Fa sb +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr access 2 , +.Xr chmod 2 , +.Xr chown 2 , +.Xr utimes 2 , +.Xr symlink 7 +.Pp +.Sh バグ +.Fn fstat +をソケット (およびパイプ) に適用すると、ブロックサイズフィールド、 +および固有デバイスと i ノード番号以外に 0 の入ったバッファが戻されます。 +.Sh 規格 +.Fn stat +関数呼出しと +.Fn fstat +関数呼出しは、 +.St -p1003.1-90 +に準拠します。 +.Sh 歴史 +.Fn stat +関数呼出しと +.Fn fstat +関数呼出しは、 +.At v7 +で登場しました。 +.Fn lstat +関数呼出しは +.Bx 4.2 +で登場しました。 +.\" Amended by N.Kumagai 2000-3-18 diff --git a/ja_JP.eucJP/man/man2/statfs.2 b/ja_JP.eucJP/man/man2/statfs.2 new file mode 100644 index 0000000000..c1dfc16123 --- /dev/null +++ b/ja_JP.eucJP/man/man2/statfs.2 @@ -0,0 +1,184 @@ +.\" 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 +.\" +.Dd May 24, 1995 +.Dt STATFS 2 +.Os +.Sh 名称 +.Nm statfs +.Nd ファイルシステムの統計を入手 +.Sh 書式 +.Fd #include <sys/param.h> +.Fd #include <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 +は、以下のように定義 +されている +.Fn statfs +の構造体のポインタです。 +.Bd -literal +typedef struct fsid { int32_t val[2]; } fsid_t; /* ファイルシステム ID 型 */ + +/* + * ファイルシステム統計 + */ + +#define MFSNAMELEN 16 /* Null を含むファイルシステム名の長さ */ +#define MNAMELEN 90 /* 戻り値の用のバッファの長さ */ + +struct statfs { +long f_spare2; /* プレイスホルダー */ +long f_bsize; /* ファイルシステムのブロックサイズ */ +long f_iosize; /* 最適なトランスファーブロックサイズ */ +long f_blocks; /* ファイルシステム上の合計ブロックサイズ */ +long f_bfree; /* ファイルシステム上の利用可能なブロック */ +long f_bavail; /* スーパユーザ以外が利用可能なブロック */ +long f_files; /* ファイルシステム上の合計ノード数 */ +long f_ffree; /* ファイルシステム上の利用可能なノード数 */ +fsid_t f_fsid; /* ファイルシステム ID 番号 */ +uid_t f_owner; /* ファイルシステムをマウントしたユーザ */ +int f_type; /* ファイルシステムのタイプ (下記参照) */ +int f_flags; /* マウントフラッグのコピー */ +long f_spare[2]; /* 将来の拡張のためのスペース */ +char f_fstypename[MFSNAMELEN];/* ファイルシステムタイプ名 */ +char f_mntonname[MNAMELEN]; /* マウントポイント */ +char f_mntfromname[MNAMELEN]; /* マウントされたファイルシステム */ +}; +.Ed +戻される可能性があるフラグは以下のとおりです。 +.Bl -tag -width MNT_ASYNCHRONOUS +.It Dv MNT_RDONLY +ファイルシステムが読取り専用でマウント +されています。スーパユーザでも書込めません。 +.It Dv MNT_NOEXEC +そのファイルシステムからファイルを実行できません。 +.It Dv MNT_NOSUID +ファイルの setuid ビットと setgid ビットが、 +ファイルの実行時に受け入れられません。 +.It Dv MNT_NODEV +ファイルシステムの特殊ファイルを開けません。 +.It Dv MNT_SYNCHRONOUS +ファイルシステムへのすべての I/O が、 +同期を取って実行されます。 +.It Dv MNT_ASYNCHRONOUS +ファイルシステム I/O が、同期を取って実行されません。 +.It Dv MNT_LOCAL +ファイルシステムがローカルに常駐しています。 +.It Dv MNT_QUOTA +ファイルシステムで数量規制が有効になっています。 +.It Dv MNT_ROOTFS +ルートファイルシステムを確認します。 +.It Dv MNT_EXRDONLY +ファイルシステムが、読取り専用でエクスポートされます。 +.It Dv MNT_EXPORTED +ファイルシステムが、読み書きの両方でエクスポートされます。 +.It Dv MNT_DEFEXPORTED +ファイルシステムが、読み書きの両方で +任意のインターネットホストにエクスポートされます。 +.It Dv MNT_EXPORTANON +ファイルシステムが、すべてのリモートアクセスを +匿名ユーザにマップします。 +.It Dv MNT_EXKERB +ファイルシステムが、Kerberos uid マッピングでエクスポートされます。 +.El +.Pp +特定のファイルシステムで定義されていないフィールドは、 +-1 に設定されます。 +.Fn fstatfs +は、記述子 +.Fa fd +で参照されるオープンファイルに対して同じ情報を戻します。 +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます +.Sh エラー +.Fn statfs +は、以下のうちの +1 つ以上が真である場合にエラーとなります。 +.Bl -tag -width ENAMETOOLONGA +.It Bq Er ENOTDIR +.Fa path +のパスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +.Fa path +の構成要素が 255 文字を越えているか、または +.Fa path +全体が 1023 文字を越えています。 +.It Bq Er ENOENT +.Fa path +の参照するファイルが存在しません。 +.It Bq Er EACCES +.Fa path +には、検索が許可されていないディレクトリが含まれています。 +.It Bq Er ELOOP +.Fa path +を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EFAULT +.Fa buf +か +.Fa path +が、不正なアドレスを指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Pp +.Fn fstatfs +は、以下のうち +1 つ以上が真である場合にエラーとなります。 +.Bl -tag -width ENAMETOOLONGA +.It Bq Er EBADF +.Fa fd +が有効オープンファイル記述子ではありません。 +.It Bq Er EFAULT +.Fa buf +が不正なアドレスを指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に +.Tn I/O +エラーが発生しました。 +.El +.Sh 歴史 +.Fn statfs +関数は、 +.Bx 4.4 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/swapon.2 b/ja_JP.eucJP/man/man2/swapon.2 new file mode 100644 index 0000000000..15e3441ed1 --- /dev/null +++ b/ja_JP.eucJP/man/man2/swapon.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. +.\" +.\" @(#)swapon.2 8.1 (Berkeley) 6/4/93 +.\" +.Dd June 4, 1993 +.Dt SWAPON 2 +.Os BSD 4 +.Sh 名称 +.Nm swapon +.Nd インターリーブ ページング/スワッピング用にスワップデバイスを追加する +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn swapon "const char *special" +.Sh 解説 +.Fn swapon +は、システムがページングとスワッピングの割当てにブロックデバイス +.Fa special +を使用できるようにします。 +潜在的に使用できるデバイスの名前はシステムに知られていて、 +システム設定時に定義されます。 +.Fa special +のスワップ領域のサイズは、 +デバイスがスワッピングに初めて使用できるよう +になるときに算出されます。 +.Sh 戻り値 +エラーが発生した場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn swapon +は、以下のような場合に処理を失敗します。 +.Bl -tag -width ENAMETOOLONG +.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 ENOTBLK +.Fa special +はブロックデバイスではありません。 +.It Bq Er EBUSY +.Fa special +で指定したデバイスは、すでにスワッピングに使用できるようになっています。 +.It Bq Er EINVAL +.Fa special +で設定したデバイスが、システムにスワップデバイスとして設定されていません。 +.It Bq Er ENXIO +.Fa special +のメジャーデバイス番号が範囲外になっています +(これは関連するハードウェアに対応するデバイスドライバが +存在しないことを表します)。 +.It Bq Er EIO +スワップデバイスをオープンする間に入出力エラーが発生しました。 +.It Bq Er EFAULT +.Fa special +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.Sh 関連項目 +.Xr config 8 , +.Xr swapon 8 +.Sh バグ +パックを取り外せるようにするためにディスクのスワッピングを停止する方法は +ありません。 +.Pp +この呼び出しは、システムの将来のバージョンでアップグレードされます。 +.Sh 歴史 +.Fn swapon +関数呼び出しは、 +.Bx 4.0 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/symlink.2 b/ja_JP.eucJP/man/man2/symlink.2 new file mode 100644 index 0000000000..4479dc48af --- /dev/null +++ b/ja_JP.eucJP/man/man2/symlink.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. +.\" +.\" @(#)symlink.2 8.1 (Berkeley) 6/4/93 +.\" +.Dd June 4, 1993 +.Dt SYMLINK 2 +.Os BSD 4.2 +.Sh 名称 +.Nm symlink +.Nd ファイルへのシンボリックリンクの作成 +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn symlink "const char *name1" "const char *name2" +.Sh 解説 +シンボリックリンク +.Fa name2 +が +.Fa name1 +に作成されます +.Pf ( Fa name2 +は作成されるファイルの名前で、 +.Fa name1 +はシンボリックリンクの作成に使用される文字列です)。 +どちらの名前も任意のパス名です。 +ファイルが同じファイルシステムに存在する必要はありません。 +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。エラーが発生すると +エラーコードが +.Va errno +に保存され、-1 が返されます。 +.Sh エラー +以下のような場合、シンボリックリンクはエラーとなります。 +.Bl -tag -width ENAMETOO +.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/ja_JP.eucJP/man/man2/sync.2 b/ja_JP.eucJP/man/man2/sync.2 new file mode 100644 index 0000000000..b0d70087aa --- /dev/null +++ b/ja_JP.eucJP/man/man2/sync.2 @@ -0,0 +1,72 @@ +.\" 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 +.\" +.Dd June 4, 1993 +.Dt SYNC 2 +.Os BSD 4 +.Sh 名称 +.Nm sync +.Nd ディスク上のディスクブロックをメモリ上の状態と同期化する +.Sh 書式 +.Fd #include <unistd.h> +.Ft void +.Fn sync void +.Sh 解説 +.Fn sync +関数は、ブロックバッファキャッシュの修正済み +バッファをディスクに強制的に書き出します。カーネルは +この情報をコアに維持し、システムが要求するディスク I/O +転送の数を減らします。システムのクラッシュ後に +キャッシュの情報が失われると、ユーザプロセス +.Xr update 4 +が +.Fn sync +を頻繁に呼び出します +(約 30 秒ごと)。 +.Pp +それぞれのファイル記述子属性の同期を取るには、関数 +.Xr fsync 2 +を使用します。 +.Sh 関連項目 +.Xr fsync 2 , +.Xr update 4 , +.Xr sync 8 +.Sh バグ +.Fn sync +は、バッファが完全にフラッシュされる前に戻る +ことがあります。 +.Sh 歴史 +.Fn sync +関数呼び出しは、 +.At v6 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/sysarch.2 b/ja_JP.eucJP/man/man2/sysarch.2 new file mode 100644 index 0000000000..c400a5c1d2 --- /dev/null +++ b/ja_JP.eucJP/man/man2/sysarch.2 @@ -0,0 +1,76 @@ +.\" %NetBSD: sysarch.2,v 1.6 1998/02/25 21:24:57 perry Exp % +.\" %FreeBSD: src/lib/libc/sys/sysarch.2,v 1.1.2.1 1999/08/29 14:49:28 peter 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 +.\" +.Dd October 11, 1993 +.Dt SYSARCH 2 +.Os +.Sh 名称 +.Nm sysarch +.Nd アーキテクチャ依存型システムコール +.Sh 書式 +.Fd #include <machine/sysarch.h> +.Ft int +.Fn sysarch "int number" "void *args" +.Sh 解説 +.Fn sysarch +は、 +.Fa args +ポインタが指定する引数で、 +.Fa number +が指定するアーキテクチャ依存型関数を実行します。 +.Fa args +は、関数の実引数を定義する構造体のポインタです。 +アーキテクチャ依存型関数のシンボリック定数と引数の構造体は、 +ヘッダファイル +.Ao Pa machine/sysarch.h Ac +にあります。 +.Pp +ユーザプログラムでは、 +.Fn sysarch +システムコールを直接呼び出さず、 +アーキテクチャ依存型ライブラリを使用して関数にアクセスしてください。 +.Pp +.Sh 戻り値 +戻り値については、それぞれのアーキテクチャ依存型関数呼び出しの +マニュアルページを参照してください。 +.Sh 関連項目 +.Xr i386_get_ioperm 2 , +.Xr i386_get_ldt 2 , +.Xr i386_vm86 2 +.Sh 歴史 +このマニュアルページは、 +.Nx +から取られました。 diff --git a/ja_JP.eucJP/man/man2/syscall.2 b/ja_JP.eucJP/man/man2/syscall.2 new file mode 100644 index 0000000000..4e34c3511f --- /dev/null +++ b/ja_JP.eucJP/man/man2/syscall.2 @@ -0,0 +1,79 @@ +.\" 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 +.\" +.Dd June 16, 1993 +.Dt SYSCALL 2 +.Os BSD 4 +.Sh 名称 +.Nm syscall , +.Nm __syscall +.Nd 間接的なシステムコール +.Sh 書式 +.Fd #include <sys/syscall.h> +.Fd #include <unistd.h> +.Ft int +.Fn syscall "int number" ... +.Ft off_t +.Fn __syscall "quad_t number" ... +.Sh 解説 +.Fn syscall +は、指定した +.Fa number +がアセンブリ言語インタフェースにあるシステムコールを、 +指定した引数で実行します。システムコールのシンボリック定数は、 +ヘッダファイル +.Ao Pa sys/syscall.h Ac +にあります。 +.Fn __syscall +は、 +1 つ以上のパラメータが +64 ビット引数で、引数の +アラインメントが正しいことを保証する場合に使用して +ください。このシステムコールは、 +C ライブラリにエントリがない、新しいシステムコールを +テストする場合に有用です。 +.Sh 戻り値 +戻り値は、呼び出すシステムコールで定義されています。 +一般的に 0 は正常に完了したことを示します。 +-1 はエラーを表わし、エラーコードが +.Va errno +に設定されます。 +.Sh バグ +.Xr pipe 2 +のように、複数の戻り値があるシステムコールを +シミュレートする方法はありません。 +.Sh 歴史 +.Fn syscall +関数呼び出しは、 +.Bx 4.0 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/truncate.2 b/ja_JP.eucJP/man/man2/truncate.2 new file mode 100644 index 0000000000..c1c45b4394 --- /dev/null +++ b/ja_JP.eucJP/man/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 +.\" +.Dd June 4, 1993 +.Dt TRUNCATE 2 +.Os BSD 4.2 +.Sh 名称 +.Nm truncate , +.Nm ftruncate +.Nd 指定した長さにファイルを切り捨てたり拡張したりする +.Sh 書式 +.Fd #include <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 戻り値 +戻り値 0 は呼び出しが正常に完了したことを示します。戻り値 -1 は +エラーが起こったことを示し、グローバル変数 +.Va errno +はエラーコードを示します。 +.Sh エラー +.Fn truncate +は、以下のような場合に処理を失敗します。 +.Bl -tag -width [ENOTDIR] +.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 [ENOTDIR] +.It Bq Er EBADF +.Fa fd +が有効な記述子ではありません。 +.It Bq Er EINVAL +.Fa fd +はファイルではなくソケットを参照しています。 +.It Bq Er EINVAL +.Fa fd +が書込み用に開いていません。 +.El +.Sh 関連項目 +.Xr open 2 +.Sh バグ +この呼出しは、ファイルのある範囲を放棄できるように一般化する +必要があります。 +.Pp +.Fn truncate +を使用してファイルを拡張すると、移植性が失われます。 +.Sh 歴史 +.Fn truncate +関数呼び出しは、 +.Bx 4.2 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/umask.2 b/ja_JP.eucJP/man/man2/umask.2 new file mode 100644 index 0000000000..754948a77f --- /dev/null +++ b/ja_JP.eucJP/man/man2/umask.2 @@ -0,0 +1,87 @@ +.\" 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.5.2.1 1999/08/29 14:49:29 peter Exp % +.\" +.Dd June 4, 1993 +.Dt UMASK 2 +.Os BSD 4 +.Sh 名称 +.Nm umask +.Nd ファイルモード生成マスクの設定 +.Sh 書式 +.Fd #include <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、所有者のみの書込みアクセス) です。 +子プロセスは、呼び出しプロセスのマスクを継承します。 +.Pp +.Sh 戻り値 +ファイルモードマスクの前の値が、呼び出しによって返されます。 +.Pp +.Sh エラー +.Fn umask +は、常に成功します。 +.Pp +.Sh 関連項目 +.Xr chmod 2 , +.Xr mknod 2 , +.Xr open 2 +.Pp +.Sh 規格 +.Fn umask +関数呼び出しは、 +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn umask +関数呼び出しは、 +.At v7 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/undelete.2 b/ja_JP.eucJP/man/man2/undelete.2 new file mode 100644 index 0000000000..65dc846a2a --- /dev/null +++ b/ja_JP.eucJP/man/man2/undelete.2 @@ -0,0 +1,101 @@ +.\" 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 +.\" +.Dd October 18, 1994 +.Dt UNDELETE 2 +.Os BSD 4 +.Sh 名称 +.Nm undelete +.Nd 削除したファイルの回復 +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn undelete "const char *path" +.Sh 解説 +.Fn undelete +関数は、 +.Fa path +で指定された削除済みファイルを回復しようとします。 +現在は、指定されたオブジェクトがユニオンファイルシステムの +ホワイトアウトである場合に限って動作します。 +このシステムコールはホワイトアウトを削除し、 +ユニオンスタックの下層にあるオブジェクトが表示されるようにします。 +.Pp +最終的に +.Nm undelete +機能は、その他のログ構造ファイルシステムのような削除済みファイルを +回復できるファイルシステムに拡張されるでしょう。 +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn undelete +は、以下の場合にエラーとなります。 +.Bl -tag -width ENAMETOOLONGAA +.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_union 8 +.Sh 歴史 +.Nm undelete +関数呼び出しは、 +.Bx 4.4-Lite +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/unlink.2 b/ja_JP.eucJP/man/man2/unlink.2 new file mode 100644 index 0000000000..92d8f6fa51 --- /dev/null +++ b/ja_JP.eucJP/man/man2/unlink.2 @@ -0,0 +1,113 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)unlink.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/unlink.2,v 1.7.2.1 1999/08/29 14:49:29 peter Exp % +.\" +.Dd June 4, 1993 +.Dt UNLINK 2 +.Os BSD 4 +.Sh 名称 +.Nm unlink +.Nd ディレクトリエントリの削除 +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn unlink "const char *path" +.Sh 解説 +.Fn unlink +関数は、 +.Fa path +で指定されたリンクをディレクトリから削除し、 +そのリンクで参照されていたファイルのリンク数を減らします。 +ファイルのリンク数が 0 になり、ファイルを開いているプロセスがなくなると、 +ファイルに関連するすべてのリソースが再生されます。 +最後のリンクが削除されたときに、ファイルを開いているプロセスが +1 つ以上あると、リンクは削除されますが、ファイルの削除は、 +そのファイルへのすべての参照が閉じられるまで延期されます。 +.Fa path +は、ディレクトリでない場合もあります。 +.Sh 戻り値 +処理が正常に完了すると、値 0 が返されます。 +そうでない場合は -1 が返され、エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn unlink +は、以下の場合に処理を失敗します。 +.Bl -tag -width ENAMETOOLONGAA +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定されたファイルが存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒否されています。 +.It Bq Er EACCES +削除するリンクを含むディレクトリで、書込み許可が拒否されています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EPERM +指定されたファイルがディレクトリになっています。 +.It Bq Er EPERM +ファイルを含むディレクトリがスティッキーとマークされ、 +削除するファイルを含むディレクトリまたはファイルが、 +有効なユーザ ID に所有されていません。 +.It Bq Er EBUSY +リンクを削除するエントリが、 +マウント済みファイルシステムのマウントポイントです。 +.It Bq Er EIO +ディレクトリエントリの削除中か、inode の割当て解除中に +入出力エラーが発生しました。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.El +.Sh 関連項目 +.Xr close 2 , +.Xr link 2 , +.Xr rmdir 2 , +.Xr symlink 7 +.Sh 歴史 +.Fn unlink +関数呼出しは、 +.At v6 +で登場しました。 +.Pp +古来の +.Fn unlink +システムコールでは、ファイルシステムを破壊する可能性のあるディレクトリの +リンクをスーパユーザが削除できるようになっています。 +それを実行することは、すでに許可されなくなっています。 diff --git a/ja_JP.eucJP/man/man2/utimes.2 b/ja_JP.eucJP/man/man2/utimes.2 new file mode 100644 index 0000000000..3b16687647 --- /dev/null +++ b/ja_JP.eucJP/man/man2/utimes.2 @@ -0,0 +1,174 @@ +.\" %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.4.2.3 1999/08/29 14:49:30 peter Exp % +.\" +.Dd June 4, 1993 +.Dt UTIMES 2 +.Os +.Sh 名称 +.Nm utimes , +.Nm lutimes , +.Nm futimes +.Nd ファイルアクセス時刻と更新時刻の設定 +.Sh 書式 +.Fd #include <sys/time.h> +.Ft int +.Fn utimes "const char *path" "const struct timeval *times" +.Ft int +.Fn lutimes "const char *path" "const struct timeval *times" +.Ft int +.Fn futimes "int fd" "const struct timeval *times" +.Sh 解説 +.Fa path +で指定したファイルか +.Fa fd +が参照するファイルのアクセス時刻と更新時刻を、引数 +.Fa times +で指定されたように変更します。 +.Pp +.Fa times +が +.Dv NULL +である場合、アクセス時刻と更新時刻は現在の時刻に設定されます。 +呼び出し側はファイルの所有者でファイルの書込み権があるか、 +スーパユーザである必要があります。 +.Pp +.Fa times +が NULL 以外である場合、 +.Fa times +は 2 つの timeval 構造体の配列を指していることが前提となります。 +アクセス時刻は最初の要素に、更新時刻は次の要素に +設定します。呼出し側はファイルの所有者であるか +スーパユーザである必要があります。 +.Pp +どちらの場合でも、ファイルの i ノード変更時刻は現在の時刻に設定されます。 +.Pp +.Fn lutimes +は指定したファイルがシンボリックリンク以外では +.Fn utimes +と同じです。シンボリックリンクの場合 +.Fn lutimes +はリンクのアクセス時刻と更新時刻を変更するのに対し、 +.Fn utimes +はリンクが参照するファイルの時刻を変更します。 +.Sh 戻り値 +成功すると 0 が戻されます。そうでなければ -1 が戻され、 +.Va errno +がエラーを示すように設定されます。 +.Sh エラー +.Fn utimes +と +.Fn lutimes +は、以下のような場合にエラーとなります。 +.Bl -tag -width Er +.It Bq Er EACCES +指定されたパスには、検索が許可されていないディレクトリが含まれています。 +あるいは +.Fa times +引数がヌルで、プロセスの実効ユーザ ID がファイルの所有者と一致せず、 +しかもスーパユーザでもなく、書込みアクセスが拒否されました。 +.It Bq Er EFAULT +.Fa path +または +.Fa times +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +変更される i ノードの読書きの間に入出力エラーが発生しました。 +.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 +引数がヌルではなく、呼び出し側プロセスの実効ユーザ 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 ヌル +であり、プロセスの実効ユーザ ID が +ファイルの所有者と一致せず、しかもスーパユーザでもなく、 +書込みアクセスが拒否されました。 +.It Bq Er EFAULT +.Fa times +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +変更される i ノードの読み書き中に入出力エラーが発生しました。 +.It Bq Er EPERM +.Fa times +引数が +.Dv ヌル +ではなく、呼び出し側プロセスの実効ユーザ ID が、 +ファイルの所有者と一致せず、しかもスーパユーザでもありません。 +.It Bq Er EROFS +そのファイルを含むファイルシステムが読取り専用でマウントされています。 +.El +.Sh 関連項目 +.Xr stat 2 , +.Xr utime 3 +.Sh 歴史 +.Fn utimes +関数は +.Bx 4.2 +で登場しました。 +.Fn futimes +関数と +.Fn lutimes +関数は +.Fx 3.0 +ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man2/vfork.2 b/ja_JP.eucJP/man/man2/vfork.2 new file mode 100644 index 0000000000..684316bdba --- /dev/null +++ b/ja_JP.eucJP/man/man2/vfork.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. +.\" +.\" @(#)vfork.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/vfork.2,v 1.11.2.1 1999/08/29 14:49:31 peter Exp % +.\" +.Dd June 4, 1993 +.Dt VFORK 2 +.Os BSD 4 +.Sh 名称 +.Nm vfork +.Nd 効率的な方法で仮想メモリに新しいプロセスを生成 +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn vfork void +.Sh 解説 +.Fn vfork +では、古いプロセスのアドレス空間を完全にコピーせずに、 +新しいプロセスを作成できます。 +ページされた環境では、古いプロセスのアドレス空間を完全にコピーすることは、 +非常に非効率的です。 +.Xr fork 2 +での目的が、 +.Xr execve 2 +の新しいシステムコンテキストの作成である場合に有効です。 +.Fn vfork +は、 +.Xr execve 2 +を呼び出すか、終了する ( +.Xr _exit 2 +を呼び出すか異常終了する) まで子が親のメモリとコントロールの +スレッドを借りるという点で、 +.Xr fork 2 +と異なります。親プロセスは、子がリソースを使用している間停止されます。 +.Pp +.Fn vfork +は、0 を子のコンテキストに、そして (後に) 子の pid を +親のコンテキストに戻します。 +.Pp +通常の場合、 +.Fn vfork +は +.Xr fork 2 +のように使用できます。しかし、 +.Fn vfork +を呼び出したプロシージャから子のコンテキストで動作している間に +動作して戻ることはありません。最終的に +.Fn vfork +から戻ると、存在しないスタックフレームに戻るからです。 +.Xr execve 2 +を実行できない場合は、 +.Xr exit 3 +ではなく、 +.Xr _exit 2 +を呼び出してください。 +.Xr exit 3 +は標準入出力チャネルをフラッシュして閉じるため、 +親プロセスの標準入出力データ構造体を壊してしまいます。( +.Xr fork 2 +でも、バッファに入っているデータが 2 回フラッシュされるので、 +.Xr exit 3 +を呼び出さないでください。) +.Pp +.Sh 関連項目 +.Xr _exit 2 , +.Xr execve 2 , +.Xr fork 2 , +.Xr rfork 2 , +.Xr sigvec 2 , +.Xr wait 2 , +.Xr exit 3 +.Sh 戻り値 +.Xr fork 2 +と同じです。 +.Sh バグ +このシステム呼び出しは、適切なシステム共有メカニズム +が実現したときに削除されます。削除された場合は、 +.Xr fork 2 +と同義になるので、 +.Xr vfork 2 +のメモリ共有の現実装には依存しないでください。 +.Pp +デッドロックを避けるため、 +.Fn vfork +の途中で子になるプロセスには、 +.Dv SIGTTOU +シグナルや +.Dv SIGTTIN +シグナルが送信されません。その代わりに出力、または、 +.Xr ioctl 2 +呼び出しが許可され、EOF によって終端を示された結果を入力します。 +.Sh 歴史 +.Fn vfork +関数呼び出しは、 +.Bx 3.0 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/wait.2 b/ja_JP.eucJP/man/man2/wait.2 new file mode 100644 index 0000000000..055bd08b6b --- /dev/null +++ b/ja_JP.eucJP/man/man2/wait.2 @@ -0,0 +1,248 @@ +.\" 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 +.\" +.Dd April 19, 1994 +.Dt WAIT 2 +.Os BSD 4 +.Sh 名称 +.Nm wait , +.Nm waitpid , +.Nm wait4 , +.Nm wait3 +.Nd プロセスの終了待機 +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/wait.h> +.Ft pid_t +.Fn wait "int *status" +.Fd #include <sys/time.h> +.Fd #include <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 WNOHANG +オプションは、ステータスを報告するプロセスがない場合に呼出しがブロック +しないことを示すために使用します。 +.Dv WUNTRACED +オプションを設定すると、SIGTTIN シグナル、SIGTTOU シグナル、SIGTSTP シグナル、 +.Dv SIGSTOP +シグナルのために停止したカレントプロセスの子にも、 +そのステータスを報告させます。 +.Fa rusage +が 0 以外である場合は、終了したプロセスと +そのすべての子が使用したリソースのサマリが返されます +(現在のところ、この情報は停止したプロセスについては使用できません)。 +.Dv WNOHANG +オプションを指定が指定され、ステータスを報告するプロセスがない場合、 +.Fn wait4 +はプロセス ID 0 を戻します。 +.Pp +.Fn waitpid +呼出しは、 +.Fa rusage +の値を 0 にした +.Fn wait4 +と同じです。古い +.Fn wait3 +呼出しは、 +.Fa wpid +の値を -1 にした +.Fn wait4 +と同じです。 +.Pp +以下のマクロは、プロセスの終了の仕方を知るのに +使用できます。最初の 3 つのマクロは、0 以外 (真) の値を評価します。 +.Bl -tag -width Ds +.It Fn WIFEXITED status +.Xr _exit 2 +か +.Xr exit 3 +を呼出し、プロセスが正常に終了した場合に真となります。 +.It Fn WIFSIGNALED status +シグナルを受信したためにプロセスが終了した場合に真となります。 +.It Fn WIFSTOPPED status +プロセスが終了していないが、停止していて再開できる場合に真と +なります。このマクロは +.Fn wait +呼出しで +.Dv WUNTRACED +オプションを指定するか、子プロセスがトレースされている ( +.Xr ptrace 2 +を参照) 場合のみに真となります。 +.El +.Pp +上記マクロの値に従って、以下のマクロは、 +子プロセスの残りのステータス情報を生成します。 +.Bl -tag -width Ds +.It Fn WEXITSTATUS status +.Fn WIFEXITED status +が真である場合に、子が +.Xr _exit 2 +か +.Xr exit 3 +に渡した引数の下位 8 ビットを評価します。 +.It Fn WTERMSIG status +.Fn WIFSIGNALED status +が真である場合に、プロセスの終了の原因となったシグナルの番号を評価します。 +.It Fn WCOREDUMP status +.Fn WIFSIGNALED status +が真である場合に、プロセスが終了した後で、シグナルを受信したときの +プロセスのイメージを含むコアファイルが作成された場合に真となります。 +.It Fn WSTOPSIG status +.Fn WIFSTOPPED status +が真である場合に、プロセスの停止の原因となったシグナルの番号を評価します。 +.El +.Sh 注 +終了シグナルのリストについては、 +.Xr sigaction 2 +を参照してください。 +ステータスが 0 であるということは、正常に終了したということです。 +.Pp +すべての子プロセスの終了を待たずに親プロセスが終了すると、 +残りの子プロセスには親プロセス 1 ID (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 が呼出し側プロセスに戻されます。 +以前に待機した子がない場合は、-1 が戻されて +.Va errno +が +.Bq Er ECHILD +に設定されます。 +.Dv WNOHANG +が指定され、停止した子または終了した子がない場合は 0 が戻されます。 +エラーが検出されるか、受信シグナルによりこの呼出しが異常終了した場合は、 +-1 が戻され、 +.Va errno +がエラーを示すように設定されます。 +.Sh エラー +.Fn wait +は以下の場合にエラーとなり、ただちに戻ります: +.Bl -tag -width Er +.It Bq Er ECHILD +呼出し側プロセスに、待機していない子プロセスが存在しません。 +.It Bq Er EFAULT +.Fa status +引数か +.Fa rusage +引数が違法なアドレスを指しています。(子プロセスの終了前には +検出されないことがあります。) +.It Bq Er EINTR +呼出しが受信シグナルによって割り込まれたか、シグナルに +.Dv SA_RESTART +フラグが設定されていません。 +.El +.Sh 規格 +.Fn wait +関数と +.Fn waitpid +関数は POSIX によって定義されています。 +.Fn wait4 +と +.Fn wait3 +は POSIX の仕様ではありません。 +.Fn WCOREDUMP +マクロおよび保留中の +.Fn wait +呼出しを再開する機能は POSIX インタフェースの拡張機能です。 +.Sh 関連項目 +.Xr _exit 2 , +.Xr ptrace 2 , +.Xr sigaction 2 , +.Xr exit 3 +.Sh 歴史 +.Fn wait +関数は、 +.At v6 +で登場しました。 diff --git a/ja_JP.eucJP/man/man2/write.2 b/ja_JP.eucJP/man/man2/write.2 new file mode 100644 index 0000000000..36c9a531f4 --- /dev/null +++ b/ja_JP.eucJP/man/man2/write.2 @@ -0,0 +1,267 @@ +.\" 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 +.\" +.Dd April 2, 1994 +.Dt WRITE 2 +.Os BSD 4 +.Sh 名称 +.Nm write , +.Nm writev , +.Nm pwrite +.Nd 出力の書込み +.Sh 書式 +.Fd #include <sys/types.h> +.Fd #include <sys/uio.h> +.Fd #include <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 { + char *iov_base; /* Base address. */ + size_t iov_len; /* Length. */ +}; +.Ed +.Pp +各 +.Fa iovec +エントリは、データを書込むメモリのベースアドレスと領域の長さを指定します。 +.Fn writev +は、常に領域全体を書込んでから次に進みます。 +.Pp +シーク機能があるオブジェクトでは、 +.Fn write +は +.Fa d +に関連するポインタが指定する位置で開始します。 +.Xr lseek 2 +を参照してください。 +.Fn write +から戻ると、ポインタは書込まれたバイト数だけ進みます。 +.Pp +シーク機能がないオブジェクトでは、常に現在位置から書込みます。 +このようなオブジェクトに関連するポインタの値は未定義です。 +.Pp +実ユーザがスーパユーザでない場合、 +.Fn write +は、set-user-ID ビットをファイルでクリアします。 +これにより、スーパユーザが所有する書込み可能な set-user-ID ファイルを +「捕えた」ユーザは、システムセキュリティを突破できなくなります。 +.Pp +ソケットのように、フローコントロールの影響を受けるオブジェクトで +非ブロッキング I/O を使用すると、 +.Fn write +と +.Fn writev +は、要求したより少ないバイト数を書込むことがあります。 +戻り値に注意し、可能な場合にはオペレーションの残りを再度試してください。 +.Sh 実装上の注意事項 +非スレッドライブラリでは、 +.Fn write +は +.Va write +システムコールのように実装されます。 +.Pp +スレッドライブラリでは、 +.Fn write +システムコールは +.Fn _thread_sys_write +に組み込まれ、 +.Fn write +は、読み書き用に +.Fa d +をロックしてから +.Fn _thread_sys_write +を呼び出す関数のように実装されます。 +.Va _thread_sys_write +の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。 +.Fn write +は戻る前に +.Fa d +のロックを解除します。 +.Pp +非スレッドライブラリでは、 +.Fn writev +は +.Va writev +システムコールのように実装されます。 +.Pp +スレッドライブラリでは、 +.Fn writev +システムコールは +.Fn _thread_sys_writev +に組み込まれ、 +.Fn writev +は、読み書き用に +.Fa d +をロックしてから +.Fn _thread_sys_writev +を呼び出す関数のように実装されます。 +.Fn _thread_sys_writev +の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。 +.Fn writev +は戻る前に +.Fa d +のロックを解除します。 +.Sh 戻り値 +処理が正常に完了すると、書込まれたバイト数が返されます。 +そうでない場合は -1 が返され、エラーを示すためにグローバル変数 +.Va errno +が設定されます。 +.Sh エラー +.Fn write , +.Fn writev , +.Fn pwrite +は、以下の場合にエラーとなり、ファイルポインタは変更されずに残ります。 +.Bl -tag -width Er +.It Bq Er EBADF +.Fa d +が、書込み用に開かれた有効な記述子ではありません。 +.It Bq Er EPIPE +プロセスによる読取り用に開かれていないパイプに書込もうとしました。 +.It Bq Er EPIPE +通信相手のソケットに接続していないタイプ +.Dv SOCK_STREAM +のソケットに書込もうとしました。 +.It Bq Er EFBIG +プロセスのファイルサイズ制限か最大ファイルサイズを越えたファイルに +書込もうとしました。 +.It Bq Er EFAULT +.Fa iov +の一部、またはファイルに書込むデータは、 +プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EINVAL +.Fa d +に関連するポインタが負になっています。 +.It Bq Er ENOSPC +ファイルを含むファイルシステムに、充分なスペースが残っていません。 +.It Bq Er EDQUOT +ファイルを含むファイルシステムのユーザのディスクブロック割当量が +使い尽くされています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.It Bq Er EAGAIN +ファイルは非ブロッキング I/O にマークされており、 +すぐにデータを書込める状態ではありません。 +.El +.Pp +.Fn writev +は、以下のエラーを戻すことがあります。 +.Bl -tag -width Er +.It Bq Er EDESTADDRREQ +.Xr connect 2 +を使用して書込み先アドレスを設定した +.Ux +ドメインデータグラムソケットに書込む場合に、書込み先が使用できません。 +.It Bq Er EINVAL +.Fa iovcnt +が 0 以下になっているか、 +.Dv UIO_MAXIOV +より、大きくなっています。 +.It Bq Er EINVAL +.Fa iov +配列 +.Fa iov_len +値の 1 つが負になっています。 +.It Bq Er EINVAL +.Fa iov +配列 +.Fa iov_len +値の合計が、32 ビット整数をオーバフローしました。 +.El +.Pp +.Fn pwrite +呼び出しは、以下のエラーを戻すことがあります。 +.Bl -tag -width Er +.It Bq Er EINVAL +指定したファイルオフセットが正しくありません。 +.It Bq Er ESPIPE +ファイル記述子が、パイプ、ソケット、FIFO に関連しています。 +.El +.Sh 関連項目 +.Xr fcntl 2 , +.Xr lseek 2 , +.Xr open 2 , +.Xr pipe 2 , +.Xr select 2 +.Sh 規格 +.Fn write +関数呼び出しは、 +.St -p1003.1-90 +に準拠しています。 +.Fn writev +関数と +.Fn pwrite +関数は、 +.St -xpg4.2 +で登場しました。 +.Sh 歴史 +.Fn pwrite +関数呼び出しは、 +.At V.4 +で登場しました。 +.Fn writev +関数呼び出しは、 +.Bx 4.2 +で登場しました。 +.Fn write +関数呼び出しは、 +.At v6 +で登場しました。 |