Update to 4.2-20010112-STABLE base and revise Japanese wording.
Submitted by:jpman Project <man-jp@jp.FreeBSD.org>
This commit is contained in:
parent
10276dc64b
commit
d652d85bad
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=9022
66 changed files with 1127 additions and 612 deletions
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)intro.2 8.5 (Berkeley) 2/27/95
|
||||
.\" %FreeBSD: src/lib/libc/sys/intro.2,v 1.21.2.3 2000/12/29 14:44:52 ru Exp %
|
||||
.\"
|
||||
.Dd February 27, 1995
|
||||
.Dt INTRO 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm intro
|
||||
.Nd システムコールとエラー番号の紹介
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <errno.h>
|
||||
.Sh 解説
|
||||
|
@ -57,9 +60,9 @@
|
|||
.Dl #define errno (* __error())
|
||||
.Pp
|
||||
.Va __error()
|
||||
関数は、初期スレッド以外のスレッドについてスレッドに固有な構造体の
|
||||
フィールドを指すポインタを返します。初期スレッドと非スレッド
|
||||
プロセスの場合、
|
||||
関数は、初期スレッド以外のスレッドについては、スレッドに固有な構造体の
|
||||
フィールドを指すポインタを返します。初期スレッドと非スレッドプロセスの
|
||||
場合、
|
||||
.Va __error()
|
||||
は、以前の定義と互換性のあるグローバル変数
|
||||
.Va errno
|
||||
|
@ -69,7 +72,7 @@
|
|||
を返し、それに応じて変数
|
||||
.Va errno
|
||||
を設定します。
|
||||
<これによって -1 を受け取ったときの障害の解釈と、
|
||||
<これにより、 -1 を受け取ったときに障害を解釈し、
|
||||
それに応じた行動をとることを可能にします。>
|
||||
呼び出しが正常に完了した場合は
|
||||
.Va errno
|
||||
|
@ -88,14 +91,15 @@
|
|||
未使用。
|
||||
.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"
|
||||
「関数呼び出しが割り込まれました」
|
||||
|
@ -111,19 +115,20 @@
|
|||
「入出力エラーです」
|
||||
何らかの物理的な入力エラーまたは出力エラーが起きました。
|
||||
このエラーは、
|
||||
同じファイル記述子への後続の操作まで報告されず、後続のエラーによって失われる
|
||||
同じファイル記述子に対する操作が次に行なわれるまで報告されず、
|
||||
後続のエラーによって失われる
|
||||
(上書きされる) 可能性があります。
|
||||
.It Er 6 ENXIO Em "\&No such device or address"
|
||||
「そのようなデバイスまたはアドレスがありません」
|
||||
存在しないデバイスを参照している特殊ファイルへの入出力が行なわれたか、
|
||||
またはデバイスの制限を越えた要求が行われました。
|
||||
このエラーは、
|
||||
たとえばテープドライブがオンラインでないか、またはディスク
|
||||
パックがドライブにロードされていない
|
||||
ときにも発生する可能性があります。
|
||||
テープドライブがオンラインでない場合や、またはディスク
|
||||
パックがドライブにロードされていない場合など
|
||||
にも発生する可能性があります。
|
||||
.It Er 7 E2BIG Em "Arg list too long"
|
||||
「引数のリストが長すぎます」
|
||||
新しいプロセスの引数と環境変数のリストに使用される
|
||||
新しいプロセスの引数リストと環境変数リストに使用される
|
||||
バイト数が、
|
||||
現在の限界である
|
||||
65536 バイト
|
||||
|
@ -133,14 +138,14 @@
|
|||
を越えました。
|
||||
.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
|
||||
|
@ -150,7 +155,7 @@
|
|||
子プロセスが存在しないか、待機されたことのない子プロセスを持たない
|
||||
プロセスによって実行されました。
|
||||
.It Er 11 EDEADLK Em "Resource deadlock avoided"
|
||||
「リソースデッドロックが回避されました」
|
||||
「リソースデッドロックを回避しました」
|
||||
デッドロック状況になる可能性のあるシステムリソースをロックしようとしました。
|
||||
.It Er 12 ENOMEM Em "Cannot allocate memory"
|
||||
「メモリの割り当てができません」
|
||||
|
@ -166,7 +171,7 @@
|
|||
ファイルにアクセスしようとしました。
|
||||
.It Er 14 EFAULT Em "Bad address"
|
||||
「不正なアドレスです」
|
||||
呼び出しの引数を使おうとしているときに、
|
||||
呼び出しで渡された引数を使おうとしているときに、
|
||||
システムが無効なアドレスを検出しました。
|
||||
.It Er 15 ENOTBLK Em "Not a block device"
|
||||
「ブロックデバイスではありません」
|
||||
|
@ -178,27 +183,27 @@
|
|||
その要求と干渉するであろう方法で使おうとしました。
|
||||
.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"
|
||||
「無効な引数です」
|
||||
無効な引数が指定されました (たとえば、
|
||||
|
@ -207,28 +212,29 @@
|
|||
.Xr kill 2
|
||||
関数に未定義のシグナルを指定する場合)。
|
||||
.It Er 23 ENFILE Em "Too many open files in system"
|
||||
「システム内で開かれているファイルが多すぎます」
|
||||
システム上で許容できるファイル記述子の
|
||||
「システム内でオープンされているファイルが多すぎます」
|
||||
システムが許容するファイル記述子の数の
|
||||
最大数に到達しており、少なくとも
|
||||
1 つが閉じられるまで、開こうとしている要求は満たされません。
|
||||
1 つがクローズされるまで、オープンしようとする要求は満たされません。
|
||||
.It Er 24 EMFILE Em "Too many open files"
|
||||
「開いているファイルが多すぎます」
|
||||
「オープンしているファイルが多すぎます」
|
||||
<現在のリリースでは、
|
||||
プロセス1個につき開いているファイル数の上限は 64 です。>
|
||||
プロセス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"
|
||||
「ファイルが大きすぎます」
|
||||
ファイルのサイズが最大値を超過しました
|
||||
|
@ -237,39 +243,39 @@
|
|||
.if n 2.1E9
|
||||
バイト)。
|
||||
.It Er 28 ENOSPC Em "Device out of space"
|
||||
「デバイスが空間不足です」
|
||||
「デバイスの空き領域不足です」
|
||||
該当するファイルシステムで
|
||||
それ以上のディスクブロックが利用できないために、
|
||||
新たなディスクブロックが利用できないために、
|
||||
通常ファイルへの
|
||||
.Xr write 2
|
||||
、ディレクトリまたはシンボリックリンクの作成、
|
||||
処理、ディレクトリの作成、シンボリックリンクの作成、
|
||||
ディレクトリエントリの作成が失敗しました。
|
||||
または、
|
||||
該当するファイルシステムで
|
||||
それ以上の inode が利用できないために、
|
||||
新しく作成されたファイルについての
|
||||
新たな 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 です)。
|
||||
1 つのファイルについて許容されるハードリンクの最大数を超過しました
|
||||
(1 ファイルにつきハードリンク数の限界は 32767 です)。
|
||||
.It Er 32 EPIPE Em "Broken pipe"
|
||||
「パイプが破壊されてました」
|
||||
データを読み取るプロセスのない
|
||||
パイプ、ソケット、または
|
||||
.Tn FIFO
|
||||
に対しての書き込みです。
|
||||
に対しての書込みです。
|
||||
.It Er 33 EDOM Em "Numerical argument out of domain"
|
||||
「数値引数が領域外です」
|
||||
数値入力引数が、数学関数の定義域の外側にありました。
|
||||
|
@ -285,28 +291,28 @@ inode
|
|||
「操作が現在進行中です」
|
||||
完了するのに時間のかかる操作 (
|
||||
.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
|
||||
|
@ -322,72 +328,70 @@ inode
|
|||
間違ったオプションまたはレベルが指定されました。
|
||||
.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 つだけが通常許容されます。
|
||||
各アドレスごとに、一度に 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) によって強制的に閉じられました。
|
||||
これは時間切れまたは再起動によって、
|
||||
「接続が通信相手によってリセットされました」
|
||||
接続が通信相手 (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"
|
||||
「ソケットは接続されていません」
|
||||
ソケットが接続されておらず、
|
||||
|
@ -396,22 +400,22 @@ inode
|
|||
受信する要求が許可されませんでした。
|
||||
.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"
|
||||
「シンボリックリンクのレベルが多すぎます」
|
||||
|
@ -428,34 +432,33 @@ inode
|
|||
.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 .\&
|
||||
と
|
||||
.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 クォータを使い尽くしたために、
|
||||
新しく作成されたファイルのための
|
||||
inode の割り当てに失敗しました。
|
||||
.ne 1i
|
||||
.It Er 70 ESTALE Em "Stale NFS file handle"
|
||||
「腐りかけた NFS ファイルハンドルです」
|
||||
オープンされている (
|
||||
|
@ -465,29 +468,29 @@ inode
|
|||
これは
|
||||
.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"
|
||||
|
@ -495,7 +498,39 @@ inode
|
|||
システムが課した、同時ファイルロック数の制限に達しました。
|
||||
.It Er 78 ENOSYS Em "Function not implemented"
|
||||
「関数が実装されていません」
|
||||
このシステムで利用できないシステムコールをしようとしました。
|
||||
このシステムで利用できないシステムコールを実行しようとしました。
|
||||
.It Er 79 EFTYPE Em "Inappropriate file type or format"
|
||||
「ファイルの型または形式が不適切です」
|
||||
操作が誤った型のファイルに行われたか、またはデータファイルの
|
||||
形式が誤っています。
|
||||
.It Er 80 EAUTH Em "Authentication error"
|
||||
「認証エラーです」
|
||||
.Tn NFS
|
||||
ファイルシステムをマウントするために不正な
|
||||
認証チケットを使おうとしました。
|
||||
.It Er 81 ENEEDAUTH Em "Need authenticator"
|
||||
「認証物が必要です」
|
||||
指定した
|
||||
.Tn NFS
|
||||
ファイルシステムをマウントするために認証チケットが必要です。
|
||||
.It Er 82 EIDRM Em "Identifier removed"
|
||||
「識別子は削除されました」
|
||||
IPC の識別子は、現在のプロセスがそれで待っている間に削除されました。
|
||||
.It Er 83 ENOMSG Em "No message of desired type"
|
||||
「要求された型のメッセージがありません」
|
||||
要求した型のメッセージが IPC メッセージキューにありません。
|
||||
または、メッセージカタログは要求したメッセージを含んでいません。
|
||||
.It Er 84 EOVERFLOW Em "Value too large to be stored in data type"
|
||||
「データタイプに格納するには大きすぎる値です」
|
||||
関数からの数値の戻り値が、呼び出し側で用意した場所に格納するには大きすぎます。
|
||||
.It Er 85 ECANCELED Em "Operation canceled"
|
||||
「処理はキャンセルされました」
|
||||
予定されていた処理はキャンセルされました。
|
||||
.It Er 86 EILSEQ Em "Illegal byte sequence"
|
||||
「不正なバイト列です」
|
||||
多バイト文字をデコードしている際に、関数は不正または不完全なバイト列
|
||||
もしくは不正なワイド文字に遭遇しました。
|
||||
.El
|
||||
.Sh 定義
|
||||
.Bl -tag -width Ds
|
||||
.It "プロセス ID (Process ID)"
|
||||
|
@ -513,10 +548,10 @@ inode
|
|||
.Xr init 8
|
||||
の ID に設定されます。
|
||||
.It "プロセスグループ (Process Group)"
|
||||
アクティブなプロセスはそれぞれがプロセスグループのメンバであり、
|
||||
アクティブなプロセスはそれぞれがあるプロセスグループのメンバであり、
|
||||
プロセスグループはプロセスグループ ID と呼ばれる
|
||||
負でない整数によって識別されます。
|
||||
プロセスグループ ID はそのグループのリーダーのプロセス ID です。
|
||||
プロセスグループ ID はそのグループのリーダのプロセス ID です。
|
||||
このグループ化によって、
|
||||
関連づけられたプロセスの集団にシグナルを送る (
|
||||
.Xr termios 4
|
||||
|
@ -524,44 +559,44 @@ inode
|
|||
.Xr csh 1
|
||||
のジョブ制御機構を可能にします。
|
||||
.It "セッション (Session)"
|
||||
セッションは 1 つまたは複数のプロセスグループのセットです。
|
||||
セッションは 1 つ以上のプロセスグループの集合です。
|
||||
セッションは
|
||||
.Xr setsid 2
|
||||
の呼び出しが成功すると作成されます。これによって、
|
||||
呼び出したプロセスは、新規のセッションにおける、
|
||||
ただ一つしかないプロセスグループのただ一つのメンバになります。
|
||||
呼び出したプロセスは、新規のセッションが
|
||||
1 つだけ持つプロセスグループの唯一のメンバになります。
|
||||
.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)"
|
||||
.It "孤児プロセスグループ (Orphaned Process Group)"
|
||||
プロセスグループは、ジョブ制御を行なうシェルの制御下にない場合、
|
||||
孤児になったとみなされます。
|
||||
もっと正確に言うと、
|
||||
そのグループと同じセッションに属しているがプロセスグループは異なる、
|
||||
というような親プロセスを、
|
||||
プロセスグループのメンバのどれもが持たないような場合、
|
||||
.Em 孤児になった
|
||||
とみなされます。
|
||||
より正確に言うと、
|
||||
そのプロセスグループのメンバはどれも、
|
||||
そのグループと同じセッションに属す親プロセスを持たず、かつ、
|
||||
親プロセスが別のプロセスグループに属す場合、
|
||||
そのプロセスグループは孤児になります。
|
||||
なお、プロセスが終了するとき、その子プロセスの親プロセスは
|
||||
.Xr init 8
|
||||
|
@ -569,7 +604,7 @@ inode
|
|||
孤児になったプロセスグループのメンバの全てが、必ずしも
|
||||
孤児になったプロセス (プロセスを作成したプロセスが終了した)
|
||||
というわけではありません。
|
||||
セッションリーダーのプロセスグループは定義によって孤児になります。
|
||||
この定義により、セッションリーダのプロセスグループは孤児になります。
|
||||
.It "実ユーザ ID と実グループID (Real User ID and Real Group ID) "
|
||||
システム上の各ユーザは、実ユーザ ID と呼ばれる
|
||||
正の整数によって識別されます。
|
||||
|
@ -581,8 +616,8 @@ inode
|
|||
呼ばれます。
|
||||
.Pp
|
||||
すべてのプロセスは実ユーザ ID と実グループ ID を持っています。
|
||||
これらは、そのプロセスを作成したプロセスの
|
||||
同等の属性から初期化されます。
|
||||
これらは、そのプロセスを作成したプロセスと等価な属性値を
|
||||
使って初期化されます。
|
||||
.It "実効ユーザ ID、実効グループ ID、グループアクセスリスト (Effective User Id, Effective Group Id, and Group Access List)"
|
||||
システムリソースへのアクセスは、
|
||||
実効ユーザ ID とグループアクセスリストという
|
||||
|
@ -591,12 +626,12 @@ inode
|
|||
としても知られています
|
||||
(POSIX.1 では、グループアクセスリストは、補助グループ ID の
|
||||
セットとして知られ、実効グループ ID がリストのメンバで
|
||||
あるかどうかを指定しません)。
|
||||
あるかどうかは未規定です)。
|
||||
.Pp
|
||||
実効ユーザ ID と実効グループ ID は、最初は
|
||||
それぞれ、プロセスの実ユーザ ID と実グループ ID です。
|
||||
いずれも (おそらくその先祖の 1 つによる) set-user-ID ファイルまたは
|
||||
set-group-ID ファイルを実行を通じて変更することができます (
|
||||
いずれも (おそらくその先祖のいずれかが) set-user-ID ファイルまたは
|
||||
set-group-ID ファイルを実行することにより変更することができます (
|
||||
.Xr execve 2
|
||||
を参照してください)。
|
||||
慣習で、実効グループ ID
|
||||
|
@ -604,8 +639,8 @@ set-group-ID
|
|||
set-group-ID プログラムの実行の結果、もともと持っていた
|
||||
(実) グループ ID が失われることはありません。
|
||||
.Pp
|
||||
グループアクセスリストは、リソースへのアクセス可能性を決定する
|
||||
ためにだけ使用されるグループ ID のセットです。
|
||||
グループアクセスリストは、リソースへのアクセスが可能かどうかを決定する
|
||||
ためにだけ使用されるグループ ID の集合です。
|
||||
アクセスチェックは、以降の
|
||||
``ファイルアクセスパーミッション''
|
||||
で説明するように行われます。
|
||||
|
@ -629,7 +664,6 @@ setuid
|
|||
実効ユーザ ID が 0 の場合、そのプロセスは
|
||||
.Em スーパーユーザ
|
||||
プロセスとして認識され、特別な権利が認められます。
|
||||
.ne 1i
|
||||
.It "特殊プロセス (Special Processes)"
|
||||
プロセス ID が 0, 1, 2 のプロセスは特殊です。
|
||||
プロセス 0 はスケジューラです。
|
||||
|
@ -653,7 +687,7 @@ setuid
|
|||
.It "ファイル名 (File Name)"
|
||||
最高 255
|
||||
.Pq Dv MAXNAMELEN
|
||||
文字で構成される名前であって、通常ファイル、特殊ファイル、
|
||||
文字からなる名前であって、通常ファイル、特殊ファイル、
|
||||
ディレクトリに名前を付けるのに使用されます。
|
||||
.Pp
|
||||
これらの文字は、0 (NUL) および
|
||||
|
@ -662,38 +696,38 @@ setuid
|
|||
.Tn ASCII
|
||||
コードを除きすべての
|
||||
.Tn ASCII
|
||||
文字のセットから選択できます。
|
||||
文字の集合から選択できます。
|
||||
.Pp
|
||||
なお、ファイル名の一部として
|
||||
なお、一般に、ファイル名の一部として
|
||||
.Ql \&* ,
|
||||
.Ql \&? ,
|
||||
.Ql \&[ ,
|
||||
.Ql \&]
|
||||
を使用するのは一般に賢明ではありません。シェルによって
|
||||
を使用するのは賢明ではありません。シェルによって
|
||||
これらの文字には特殊な意味がつけられるからです。
|
||||
.It "パス名 (Path Name)"
|
||||
パス名は、
|
||||
.Tn NUL
|
||||
で終端された文字列です。
|
||||
オプショナルなスラッシュ
|
||||
スラッシュ
|
||||
.Ql \&/
|
||||
で開始し、スラッシュで区切られたゼロ個以上のディレクトリ名が続き、
|
||||
オプションでファイル名が続きます。パス名の長さの合計は 1024
|
||||
(省略可能) で始まり、スラッシュで区切られたゼロ個以上のディレクトリ名が続き、
|
||||
ファイル名 (省略可能) が続きます。パス名の長さの合計は 1024
|
||||
.Pq Dv MAXPATHLEN
|
||||
文字未満である必要があります。
|
||||
.Pp
|
||||
パス名がスラッシュで開始する場合、パス検索はルートディレクトリから
|
||||
始まります。そうでない場合、検索は現在の作業ディレクトリから始まります。
|
||||
スラッシュそれ自体はルートディレクトリを指定します。
|
||||
パス名がスラッシュで始まる場合、パス検索はルートディレクトリから
|
||||
開始します。そうでない場合、検索は現在の作業ディレクトリから開始します。
|
||||
スラッシュだけの場合、ルートディレクトリを指定します。
|
||||
空のパス名は現在のディレクトリを指します。
|
||||
.It "ディレクトリ (Directory)"
|
||||
ディレクトリは特殊なタイプのファイルであり、他のファイルを参照する
|
||||
エントリが含まれています。ディレクトリエントリはリンクと呼ばれます。
|
||||
慣習で、ディレクトリには少なくとも 2 つのリンク、
|
||||
.Ql \&.
|
||||
エントリを含んでいます。ディレクトリエントリをリンクと呼びます。
|
||||
伝統的に、ディレクトリには少なくとも 2 つのリンク、
|
||||
.Ql .\&
|
||||
と
|
||||
.Ql \&..
|
||||
が含まれています。これらはそれぞれ
|
||||
を含みます。これらはそれぞれ
|
||||
.Em ドット
|
||||
および
|
||||
.Em ドット-ドット
|
||||
|
@ -701,13 +735,13 @@ setuid
|
|||
ドット-ドットはその親ディレクトリを指します。
|
||||
.It "ルートディレクトリと現在の作業ディレクトリ (Root Directory and Current Working Directory)"
|
||||
各プロセスは、ルートディレクトリと現在の作業ディレクトリという
|
||||
概念に関連付けられています。これらはパス名検索を解決する際に
|
||||
概念を持つとされてきました。これらの概念はパス名検索を解決する際に
|
||||
用いられます。プロセスのルートディレクトリは、
|
||||
ルートファイルシステムのルートディレクトリである必要はありません。
|
||||
.It "ファイルアクセスパーミッション (File Access Permission)"
|
||||
ファイルシステム内の各ファイルはアクセスパーミッションの
|
||||
集合を持っています。これらのパーミッションは、プロセスがファイルに
|
||||
ついて要求された操作 (たとえば、書き込み用にファイルを開く)
|
||||
ついて要求された操作 (たとえば、書込み用にファイルをオープンする)
|
||||
を行なってもよいかどうかを判定するのに使用されます。
|
||||
アクセスパーミッションはファイルが作成されたときに設定されます。
|
||||
アクセスパーミッションは
|
||||
|
@ -715,24 +749,24 @@ setuid
|
|||
呼び出しを用いて後から変更することもできます。
|
||||
.Pp
|
||||
ファイルアクセスでは、ファイルが
|
||||
読み取りが許されているかどうか、書き込みが許されているかどうか、
|
||||
読取りが許されているかどうか、書込みが許されているかどうか、
|
||||
実行が許されているかどうか、
|
||||
によって分類されます。
|
||||
ディレクトリファイルでは、
|
||||
ディレクトリを検索してもよいかどうかを制御するのに
|
||||
実行パーミッションを使用します。
|
||||
.Pp
|
||||
ファイルアクセスパーミッションは、
|
||||
それをユーザの 3 つの異なるクラス、
|
||||
ファイルの所有者、ファイルのグループ内のユーザ、その他、
|
||||
に適用するものとしてシステムにより解釈されます。
|
||||
システムがファイルアクセスパーミッションを解釈するにあたり、
|
||||
ユーザの 3 つの異なるクラス (ファイルの所有者、
|
||||
ファイルのグループ内のユーザ、その他) のどれに適用するかによって
|
||||
解釈します。
|
||||
各ファイルは、これらの各クラスについて、
|
||||
独立したアクセスパーミッションのセットを持っています。
|
||||
独立したアクセスパーミッションの集合を持っています。
|
||||
アクセスチェックが行なわれると、システムは、
|
||||
呼び出し側に適用できるアクセス情報をチェックすることによって、
|
||||
パーミッションが認可されるかどうかを判定します。
|
||||
.Pp
|
||||
ファイルについての読み取り、書き込み、実行/検索の
|
||||
ファイルについての読取り、書込み、実行/検索の
|
||||
各パーミッションは、次の場合にプロセスに認可されます。
|
||||
.Pp
|
||||
プロセスの実効ユーザ ID がスーパーユーザである場合 (注:
|
||||
|
@ -755,7 +789,6 @@ setuid
|
|||
.Pp
|
||||
上記のいずれにも該当しない場合、パーミッションは拒絶されます。
|
||||
.It "ソケットとアドレスファミリ (Sockets and Address Families)"
|
||||
.Pp
|
||||
ソケットはプロセス間の通信の端点です。
|
||||
各ソケットには、データ送信用および受信用の待ち行列があります。
|
||||
.Pp
|
||||
|
@ -776,7 +809,7 @@ setuid
|
|||
あるプロトコルのグループに対応するアドレスの集合です。
|
||||
ソケットはそれぞれ、ソケットが作成されたアドレス
|
||||
ファミリから選択したアドレスを持ちます。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr intro 3 ,
|
||||
.Xr perror 3
|
||||
.\" Amended by N.Kumagai 2000-3-18
|
||||
|
|
|
@ -30,14 +30,18 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/madvise.2,v 1.17.2.2 2000/12/12 09:55:46 ru Exp %
|
||||
.\" WORD: revert 書き戻す(dirty なページをファイルシステムに書き込む)[madvise.2]
|
||||
.\" WORD: physically backing store 物理的バッキングストア(仮想記憶の裏にあるディスク領域、swap やファイルシステム?!)
|
||||
.\"
|
||||
.Dd Jul 19, 1996
|
||||
.Dd July 19, 1996
|
||||
.Dt MADVISE 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm madvise
|
||||
.Nd メモリの使用法について助言を与える
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
@ -47,8 +51,10 @@
|
|||
.Fn madvise
|
||||
システムコールによって、自身のメモリ利用の習性の知識があるプロセスは、それを
|
||||
システムに説明できます。
|
||||
これまで知られている習性は、
|
||||
.Aq Pa sys/mman.h
|
||||
で定義される既知の習性は次のとおりです。
|
||||
で定義されており、次のとおりです。
|
||||
.\" 6 から訳追加
|
||||
.Bd -literal
|
||||
#define MADV_NORMAL 0 /* これ以降、特殊な処理は必要ない */
|
||||
#define MADV_RANDOM 1 /* ランダムなページ参照が予測される */
|
||||
|
@ -56,6 +62,10 @@
|
|||
#define MADV_WILLNEED 3 /* これらのページを必要とする */
|
||||
#define MADV_DONTNEED 4 /* これらのページを必要としない */
|
||||
#define MADV_FREE 5 /* データは今や重要ではない */
|
||||
#define MADV_NOSYNC 6 /* 明示的に物理的バッキングストアがコミットされない場合 */
|
||||
#define MADV_AUTOSYNC 7 /* デフォルトは物理的バッキングストアにコミットされる */
|
||||
#define MADV_NOCORE 8 /* コアファイルにページを含まないこと */
|
||||
#define MADV_CORE 9 /* コアファイルにページを復帰させる */
|
||||
.Ed
|
||||
.Pp
|
||||
.Bl -tag -width MADV_SEQUENTIAL
|
||||
|
@ -74,11 +84,12 @@
|
|||
あるページはただちにプロセスにマップされ、それによって
|
||||
プロセス全体にわたるフォルトによる読み込みによる
|
||||
不要なオーバーヘッドを除去します。
|
||||
これはフォルトによるページのバッキングストアからの読み込みを起こさず、
|
||||
メモリ内に既にあるページを呼び出し側のプロセスに素早くマップします。
|
||||
これは、フォルトによるページのバッキングストアからの読み込み
|
||||
を生じさせるのではなく、
|
||||
メモリ内に既にあるページを呼び出し側のプロセスに素早くマップさせます。
|
||||
.It Dv MADV_DONTNEED
|
||||
VM システムに、指定の範囲内のページのメモリ内優先順位の減少を許可します。
|
||||
さらに、このアドレス範囲への将来の参照はページフォルトを発生させるでしょう。
|
||||
今後、このアドレス範囲への参照はページフォルトを発生させるでしょう。
|
||||
.It Dv MADV_FREE
|
||||
VM システムにページを解放する自由を与え、指定ページ範囲内の情報がもはや
|
||||
重要でないことをシステムに通知します。これは、アドレス空間を有効にしたままで
|
||||
|
@ -90,6 +101,51 @@ VM
|
|||
呼び出しの前にそこにあったデータが残っているかもしれません。
|
||||
ページが再び修正されるまで、そのアドレス空間範囲に対する参照だけでは、
|
||||
VM システムはバッキングストアから情報をページに読み込む動作を行わなくなります。
|
||||
.\" 訳追加
|
||||
.It Dv MADV_NOSYNC
|
||||
このマップに関連づけられているデータを
|
||||
物理的バッキングストアにフラッシュしないようにシステムに要求します。
|
||||
通常、これにより、ファイルシステムアップデートデーモンが
|
||||
VM システムが汚したページを特に理由もないのに
|
||||
物理ディスクに書込む不要な動作を防止します。
|
||||
VM とファイルシステムの一貫性は常に維持されることに注意して
|
||||
下さい。
|
||||
この機能は、
|
||||
マップされたデータが必要なときだけ、
|
||||
(通常、システムページャにより)フラッシュされることを
|
||||
保証しているに過ぎません。
|
||||
.Pp
|
||||
この機能を使用する典型的な場合とは、
|
||||
ファイルを裏に持つ共有メモリ領域をプロセス (IPC) 間通信で使いたいとき、
|
||||
とくに、その領域に格納されるデータを物理的ディスクに書き込む必要が
|
||||
ない場合です。
|
||||
この機能は、
|
||||
SysV 共有メモリ呼び出しで得られる mmap 性能と
|
||||
同等の性能を与えてくれますし、かつ、
|
||||
SysV 共有メモリ呼び出しを使うより、きめ細かい制御が可能で
|
||||
より制約が少ない方法でもあります。
|
||||
しかしこの機能は UNIX プラットホーム間で
|
||||
移植性がないことに注意してください
|
||||
(いくつかのプラットホームではデフォルトで
|
||||
正しく振る舞うかも知れませんが)。
|
||||
詳しい情報に関しては、
|
||||
.Xr mmap 2
|
||||
の
|
||||
MAP_NOSYNC セクションを参照してください。
|
||||
.It Dv MADV_AUTOSYNC
|
||||
将来、アドレス範囲内のページが汚された場合のために
|
||||
MADV_NOSYNC の効果を元に戻します。
|
||||
既に汚されているページについての効果は不定です。
|
||||
書き戻しするかもしれませんし、しないかもしれません。
|
||||
書き戻しを確実に行なうには、
|
||||
.Xr msync 2
|
||||
または
|
||||
.Xr fsync 2
|
||||
システムコールを使用します。
|
||||
.It Dv MADV_NOCORE
|
||||
領域は、コアファイルに含まれません。
|
||||
.It Dv MADV_CORE
|
||||
コアファイルの領域を含みます。
|
||||
.El
|
||||
.Sh 戻り値
|
||||
正常に完了すると
|
||||
|
@ -112,7 +168,7 @@ VM
|
|||
.Xr mincore 2 ,
|
||||
.Xr mprotect 2 ,
|
||||
.Xr msync 2 ,
|
||||
.Xr munmap 2 .
|
||||
.Xr munmap 2
|
||||
.Sh 歴史
|
||||
.Fn madvise
|
||||
関数は
|
||||
|
|
|
@ -30,14 +30,16 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/mincore.2,v 1.13.2.2 2000/08/23 00:48:01 jhb Exp %
|
||||
.\"
|
||||
.Dd June 9, 1993
|
||||
.Dt MINCORE 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm mincore
|
||||
.Nd メモリの使用法について助言を得る
|
||||
.Nd メモリの使用状況について報告を得る
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
@ -55,8 +57,8 @@
|
|||
.Fn mincore
|
||||
は値 0 を返し、
|
||||
.Fa vec
|
||||
はページの状態を反映するように更新
|
||||
されます。そうでない場合は -1 が返され、エラーを示すために
|
||||
はページの状態を反映するように更新されます。
|
||||
そうでない場合は -1 を返し、エラーを示すために
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" %FreeBSD: src/lib/libc/sys/minherit.2,v 1.5.2.1 1999/08/29 14:49:12 peter Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/minherit.2,v 1.7.2.2 2000/12/12 09:55:46 ru Exp %
|
||||
.\"
|
||||
.\" Copyright (c) 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
|
@ -33,12 +33,14 @@
|
|||
.\"
|
||||
.\" @(#)minherit.2 8.1 (Berkeley) 6/9/93
|
||||
.\"
|
||||
.Dd Feb 17, 1996
|
||||
.Dd February 17, 1996
|
||||
.Dt MINHERIT 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm minherit
|
||||
.Nd ページの継承を制御する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
@ -49,7 +51,7 @@
|
|||
システムコールは、指定のページが継承の際の特性として
|
||||
.Fa inherit
|
||||
を持つように変更します。
|
||||
すべての場合において、継承の際の特性がページ単位で設定できることが
|
||||
すべての実装において、継承の際の特性がページ単位で設定できることが
|
||||
保証されるているわけではありません。
|
||||
変更の単位はリージョン全体かもしれません。
|
||||
.Sh 戻り値
|
||||
|
@ -68,14 +70,13 @@
|
|||
引数と
|
||||
.Fa len
|
||||
引数によって指定される仮想アドレス範囲が有効ではありません。
|
||||
.It Bq Er EACESS
|
||||
.It Bq Er EACCES
|
||||
.Fa inherit
|
||||
引数によって指定されるフラグが、
|
||||
.Fa addr
|
||||
引数と
|
||||
.Fa len
|
||||
引数によって指定された
|
||||
ページに対して適切ではありませんでした。
|
||||
引数によって指定されたページに対して適切ではありませんでした。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr fork 2 ,
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/mkdir.2,v 1.9.2.2 2000/05/06 13:34:14 phantom Exp %
|
||||
.\"
|
||||
.Dd December 11, 1993
|
||||
.Dt MKDIR 2
|
||||
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm mkdir
|
||||
.Nd ディレクトリファイルを作成する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/stat.h>
|
||||
|
@ -63,36 +65,36 @@
|
|||
.Sh エラー
|
||||
.Fn mkdir
|
||||
は次の場合、処理に失敗してディレクトリは作成されません。
|
||||
.Bl -tag -width ENAMETOOLO
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
パス名の構成要素が 255 文字を越えているか、
|
||||
またはパス名全体が 1023 文字を越えています。
|
||||
.It Bq Er ENOENT
|
||||
前置パス名の構成要素が存在しません。
|
||||
パスの構成要素が存在しません。
|
||||
.It Bq Er EACCES
|
||||
前置パス名の構成要素について検索許可が拒否されています。
|
||||
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||
.It Bq Er ELOOP
|
||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||
.It Bq Er EROFS
|
||||
指定されたファイルは読取り専用ファイルシステム上にあります。
|
||||
.It Bq Er EEXIST
|
||||
指定のファイルが存在します。
|
||||
指定のファイルがすでに存在します。
|
||||
.It Bq Er ENOSPC
|
||||
新しいディレクトリが作成できません。そのディレクトリを作る空間が
|
||||
ファイルシステム上に残っていません。
|
||||
新しいディレクトリが作成できません。
|
||||
そのディレクトリを作る容量がファイルシステムに残っていません。
|
||||
.It Bq Er ENOSPC
|
||||
ディレクトリを作成するファイルシステム上に未使用の
|
||||
inode がありません。
|
||||
i ノードがありません。
|
||||
.It Bq Er EDQUOT
|
||||
新しいディレクトリが作成できません。ディレクトリを作るファイルシステム上の
|
||||
ディスクブロックのユーザのクォータが枯渇しました。
|
||||
.It Bq Er EDQUOT
|
||||
ディレクトリを作成中のファイルシステム上のユーザの inode のクォータが
|
||||
ディレクトリを作成中のファイルシステム上のユーザの i ノードのクォータが
|
||||
枯渇しました。
|
||||
.It Bq Er EIO
|
||||
ディレクトリエントリの作成中、または inode を割当て中に入出力エラーが
|
||||
ディレクトリエントリの作成中、あるいは i ノードを割り当て中に入出力エラーが
|
||||
発生しました。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムに読み書きしている間に入出力エラーが発生しました。
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/mkfifo.2,v 1.9.2.3 2000/12/08 13:49:31 ru Exp %
|
||||
.\"
|
||||
.Dd June 4, 1993
|
||||
.Dt MKFIFO 2
|
||||
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm mkfifo
|
||||
.Nd fifo ファイルを作成する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/stat.h>
|
||||
|
@ -64,8 +66,8 @@ fifo
|
|||
.Sh エラー
|
||||
.Fn mkfifo
|
||||
は、次の場合に処理を失敗し、fifo は作成されません。
|
||||
.Bl -tag -width ENAMETOOLO
|
||||
.It Bq Er ENOTSUPP
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTSUP
|
||||
カーネルが fifo をサポートするように構成されていません。
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
@ -73,33 +75,33 @@ fifo
|
|||
パス名の構成要素が 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 がありません。
|
||||
fifo を作成するファイルシステム上に未使用の i ノードがありません。
|
||||
.It Bq Er EDQUOT
|
||||
新しい fifo 用のエントリを配置するディレクトリが拡張できません。
|
||||
ディレクトリが入っているファイルシステム上のディスクブロックのユーザの
|
||||
クォータが枯渇しました。
|
||||
.It Bq Er EDQUOT
|
||||
fifo を作成中のファイルシステム上のユーザの inode のクォータが
|
||||
fifo を作成中のファイルシステム上のユーザの i ノードのクォータが
|
||||
枯渇しました。
|
||||
.It Bq Er EIO
|
||||
ディレクトリエントリの作成中、または inode を割当て中に
|
||||
ディレクトリエントリの作成中、あるいは i ノードを割り当て中に
|
||||
.Tn I/O
|
||||
(入出力) エラーが発生しました。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムに読み書きしている間に入出力エラーが発生しました。
|
||||
ファイルシステムに読み書きしている間に
|
||||
.Tn I/O
|
||||
(入出力) エラーが発生しました。
|
||||
.It Bq Er EFAULT
|
||||
|
@ -108,7 +110,7 @@ fifo
|
|||
.El
|
||||
.Sh 関連項目
|
||||
.Xr chmod 2 ,
|
||||
.Xr mknod 2 ,
|
||||
.Xr mknod 2 ,
|
||||
.Xr stat 2 ,
|
||||
.Xr umask 2
|
||||
.Sh 規格
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" $FreeBSD: src/lib/libc/sys/mknod.2,v 1.9.2.1 2000/04/22 17:06:59 phantom Exp
|
||||
.\"
|
||||
.Dd June 4, 1993
|
||||
.Dt MKNOD 2
|
||||
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm mknod
|
||||
.Nd 特殊なファイルノードを作成する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -76,32 +78,32 @@
|
|||
パス名の構成要素が 255 文字を越えているか、
|
||||
またはパス名全体が 1023 文字を越えています。
|
||||
.It Bq Er ENOENT
|
||||
前置パス名の構成要素が存在しません。
|
||||
パスの構成要素が存在しません。
|
||||
.It Bq Er EACCES
|
||||
前置パス名の構成要素について検索許可が拒否されています。
|
||||
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||
.It Bq Er ELOOP
|
||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||
.It Bq Er EPERM
|
||||
プロセスの実効ユーザ ID がスーパユーザではありません。
|
||||
.It Bq Er EIO
|
||||
ディレクトリエントリの作成中、または inode を割当て中に
|
||||
ディレクトリエントリの作成中、あるいは i ノードを割り当て中に
|
||||
入出力エラーが発生しました。
|
||||
.It Bq Er ENOSPC
|
||||
新しいノード用のエントリを配置するディレクトリが拡張できません。
|
||||
ディレクトリが入っているファイルシステム上に空間が残っていません。
|
||||
ディレクトリが入っているファイルシステム上に空き容量が残っていません。
|
||||
.It Bq Er ENOSPC
|
||||
ノードを作成するファイルシステム上に未使用の inode がありません。
|
||||
ノードを作成するファイルシステム上に未使用の i ノードがありません。
|
||||
.It Bq Er EDQUOT
|
||||
新しいノードのエントリを配置するディレクトリが拡張できません。
|
||||
ディレクトリが入っているファイルシステム上のディスクブロックのユーザの
|
||||
クォータが枯渇しました。
|
||||
.It Bq Er EDQUOT
|
||||
ノードを作成中のファイルシステム上の inode のユーザのクォータが
|
||||
ノードを作成中のファイルシステム上の i ノードのユーザのクォータが
|
||||
枯渇しました。
|
||||
.It Bq Er EROFS
|
||||
指定されたファイルは読取り専用ファイルシステム上にあります。
|
||||
.It Bq Er EEXIST
|
||||
指定のファイルが存在しています。
|
||||
指定のファイルがすでに存在しています。
|
||||
.It Bq Er EFAULT
|
||||
.Fa path
|
||||
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/mlock.2,v 1.6.2.2 2000/08/23 00:49:04 jhb Exp %
|
||||
.\"
|
||||
.Dd June 2, 1993
|
||||
.Dt MLOCK 2
|
||||
|
@ -39,6 +39,8 @@
|
|||
.Nm mlock ,
|
||||
.Nm munlock
|
||||
.Nd 物理ページをメモリ内でロック (アンロック) する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
@ -67,12 +69,11 @@
|
|||
.Pp
|
||||
.Fn mlock
|
||||
呼び出しの後、指示されたページは、アンロックされるまで
|
||||
非常駐ページフォルともアドレス変換フォルトも起こしません。
|
||||
非常駐ページフォルトもアドレス変換フォルトも起こしません。
|
||||
しかし、TLB の管理をソフトウェアで実装しているアーキテクチャでは、
|
||||
保護違反フォルト
|
||||
または TLB ミスフォルトを起こす可能性はあります。
|
||||
ページに関するすべてのロックされたマッピングが削除
|
||||
されるまで物理ページはメモリに留まります。複数のプロセスが、
|
||||
保護違反フォルト、または TLB ミスフォルトを起こす可能性はあります。
|
||||
ページに関するすべてのロックされたマッピングが削除されるまで
|
||||
物理ページはメモリに留まります。複数のプロセスが、
|
||||
それぞれの仮想アドレスマッピングから同じ物理ページをロックする
|
||||
可能性があります。同様に、1 つのプロセスが
|
||||
同じページに対する異なる複数の仮想マッピングによって、
|
||||
|
@ -102,10 +103,10 @@
|
|||
これらの呼び出しが利用できるのはスーパユーザだけです。
|
||||
.Sh 戻り値
|
||||
戻り値 0 は呼び出しが完了し、範囲内のすべてのページがロック、
|
||||
またはアンロックされてたことを示します。戻り値 -1 はエラーが起きて、
|
||||
またはアンロックされたことを示します。戻り値 -1 はエラーが起きて、
|
||||
そして範囲内のすべてのページのロックされた
|
||||
ステータスが変更されないことを示します。この場合、エラーを示すために
|
||||
グローバル位置
|
||||
グローバル変数
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
|
@ -120,8 +121,8 @@
|
|||
指示された範囲のロックによって、ロックされたメモリについての
|
||||
システム限界またはプロセスごとの限界を超過してしまいます。
|
||||
.It Bq Er ENOMEM
|
||||
指示されたアドレス範囲の一部が割当てられていません。
|
||||
ページのフォルト/マッピングでエラーがありました。
|
||||
指示されたアドレス範囲の一部が割り当てられていません。
|
||||
ページのフォルト / マッピングでエラーがありました。
|
||||
.El
|
||||
.Fn munlock
|
||||
は次の場合に失敗します。
|
||||
|
@ -131,7 +132,7 @@
|
|||
.It Bq Er EINVAL
|
||||
指定されたアドレスがページ境界に整列していないか、または長さが負です。
|
||||
.It Bq Er ENOMEM
|
||||
指示されたアドレス範囲の一部が割当てられていません。
|
||||
指示されたアドレス範囲の一部が割り当てられていません。
|
||||
指示されたアドレス範囲の一部がロックされていません。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
|
@ -150,15 +151,15 @@ Sun
|
|||
.Fn munlock
|
||||
呼び出しが必要です。つまり
|
||||
.Fn mlock
|
||||
のネストです。これは実装上の結果
|
||||
であって仕様ではないと考える必要があります。
|
||||
のネストです。これは実装上の結果であって
|
||||
仕様ではないと考える必要があります。
|
||||
.Pp
|
||||
プロセスごとのリソースの限界はロックされた仮想メモリの量への制限で、
|
||||
システム全体に共通の制限はロックされた物理ページの数についてのものです。
|
||||
このように、2 つの別々のマッピングから同じ物理ページを
|
||||
ロックするとプロセスごとの制限に対しては 2 ページとしてカウントされ、
|
||||
システム制限では 1 ページだけとしてカウントされます。
|
||||
|
||||
.Pp
|
||||
プロセスごとのリソース制限は現時点ではサポートされていません。
|
||||
.Sh 歴史
|
||||
.Fn mlock
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95
|
||||
.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.22.2.5 2000/12/29 14:44:52 ru Exp %
|
||||
.\"
|
||||
.Dd May 11, 1995
|
||||
.Dt MMAP 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm mmap
|
||||
.Nd ファイルまたはデバイスをメモリにマップする
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
@ -57,8 +60,8 @@
|
|||
.Fa len
|
||||
がページサイズの倍数でない場合、
|
||||
マップされた領域は指定の範囲を越えて拡張されるかもしれません。
|
||||
このような拡張によってマップされたオブジェクトの末端を越えた
|
||||
部分は 0 で埋められます。
|
||||
このような拡張によってマップされたオブジェクトの末端を越えた部分は
|
||||
0 で埋められます。
|
||||
.Pp
|
||||
.Fa addr
|
||||
が 0 でない場合、これはシステムへのヒントとして使用されます
|
||||
|
@ -142,8 +145,39 @@ MAP_STACK
|
|||
このオプションは、スタックの
|
||||
先頭を開始点とし下方に伸びる、サイズが最大で
|
||||
.Fa len
|
||||
バイトまで伸びるメモリ領域を作成します。スタックの
|
||||
先頭は、呼び出しから返された開始アドレスに
|
||||
バイトまで伸びるメモリ領域を作成します。
|
||||
.It Dv MAP_NOSYNC
|
||||
はこの VM マップを経由して汚されたデータを、無闇にではなく
|
||||
(通常はページャによって) 必要な時のみ物理的なメディアに
|
||||
フラッシュするようにします。
|
||||
このオプションがないと、汚された VM ページは頻繁 (通常 30-60 秒毎) に
|
||||
ディスクにフラッシュされるかも知れず、そのような動作を必要としない場合
|
||||
(例えば IPC のためにファイルを用いた共有 mmap 領域を用いている場合)
|
||||
パフォーマンスに問題が出ることがあります。
|
||||
MAP_NOSYNC を使っているかにかかわらず、
|
||||
VM/ ファイルシステムの一貫性は保たれることに注意してください。
|
||||
このオプションは UNIX プラットフォーム間で (まだ) 移植性はありませんが、
|
||||
いくつかのプラットフォームではデフォルトで同じ動作をするように
|
||||
実装されているかも知れません。
|
||||
.Pp
|
||||
.Xr fsync2
|
||||
関数はすべての汚染されたデータと、ファイルに関連づけられたメタデータを
|
||||
フラッシュします。NOSYNC の汚れた VM データ物理的媒体にフラッシュします。
|
||||
.Xr sync 8
|
||||
コマンドと
|
||||
.Xr sync2
|
||||
システムコールは、汚染された NOSYNC VM のデータを通常フラッシュしません。
|
||||
.Xr msync 2
|
||||
システムコールは
|
||||
.Bx
|
||||
で整合性のあるファイルシステムのバッファキャッシュが実装されたので
|
||||
廃止されました。しかしながら、汚れた VM ページとファイルシステムを
|
||||
結びつけ、物理的媒体にすぐに(後程ではなく)フラッシュさせる用途に
|
||||
使われることもあります。
|
||||
.It Dv MAP_NOCORE
|
||||
領域はコアファイルには含まれません。
|
||||
.Pp
|
||||
スタックの先頭は、呼び出しから返された開始アドレスに
|
||||
.Fa len
|
||||
バイトを加えたものになります。最も伸びた場合のスタックの下端は、
|
||||
呼び出しによって返される開始アドレスになります。
|
||||
|
@ -175,9 +209,10 @@ MAP_STACK
|
|||
.Dv PROT_READ
|
||||
が
|
||||
.Fa prot
|
||||
パラメータの一部として指定され、
|
||||
パラメータの一部として指定されましたが、
|
||||
.Fa fd
|
||||
が読取り用に開いていませんでした。フラグ
|
||||
が読取り用に開かれていませんでした。
|
||||
フラグ
|
||||
.Dv MAP_SHARED
|
||||
と
|
||||
.Dv PROT_WRITE
|
||||
|
@ -185,9 +220,9 @@ MAP_STACK
|
|||
.Fa flags
|
||||
と
|
||||
.Fa prot
|
||||
パラメータの一部として指定され、
|
||||
パラメータの一部として指定されましたが、
|
||||
.Fa fd
|
||||
は書込み用に開いていませんでした。
|
||||
は書込み用に開かれていませんでした。
|
||||
.It Bq Er EBADF
|
||||
.Fa fd
|
||||
が有効な開かれたファイルの記述子ではありません。
|
||||
|
@ -212,12 +247,13 @@ MAP_STACK
|
|||
が通常のファイルまたはキャラクタ型特殊ファイルを参照していませんでした。
|
||||
.It Bq Er EINVAL
|
||||
.Fa offset
|
||||
がページ境界に整列していませんでした (後述する「バグ」を参照)。
|
||||
がページ境界に整列していませんでした (後述する「バグの章」を参照)。
|
||||
.It Bq Er ENOMEM
|
||||
.Dv MAP_FIXED
|
||||
が指定されて
|
||||
.Fa addr
|
||||
パラメータが与えられませんでした。
|
||||
パラメータが与えられない、もしくは vm.nax_proc_mmap で指定された
|
||||
プロセス毎の mmap に達しました。
|
||||
.Dv MAP_ANON
|
||||
が指定されて利用できるメモリが不充分でした。
|
||||
.Sh 関連項目
|
||||
|
@ -230,24 +266,25 @@ MAP_STACK
|
|||
.Xr munmap 2 ,
|
||||
.Xr getpagesize 3
|
||||
.Sh バグ
|
||||
.Ar len
|
||||
は 2GB に限定されます。2GB をわずかに上回るマッピングは機能しませんが、2GB、
|
||||
4GB、6GB、および 8GB よりわずかに少ないファイルサイズについて
|
||||
.Fa len
|
||||
は 2GB に限定されます。2GB をわずかに上回るマッピングは機能しませんが、
|
||||
2GB, 4GB, 6GB, および 8GB よりわずかに少ないファイルサイズについて
|
||||
(ファイルサイズ % 2GB) のサイズのウィンドウをマップできます。
|
||||
.Pp
|
||||
制約は多彩なな理由から生じています。そのほとんどは、極端に性能が低下するために
|
||||
.Tn FreeBSD
|
||||
の VM システム内で64 ビットのオフセットを使用したくないというものです。
|
||||
制約は多彩な理由から生じています。
|
||||
そのほとんどは、
|
||||
.Fx
|
||||
の VM システム内で 64 ビットのオフセットを使用したくないというものです。
|
||||
したがって
|
||||
.Tn FreeBSD
|
||||
.Fx
|
||||
は 32 ビットのページインデックスを使用しており、これによって
|
||||
.Tn FreeBSD
|
||||
.Fx
|
||||
では最高で 8TB までのファイルサイズを利用できます。実際には
|
||||
ファイルシステムコード内のバグによってさらに制約が課されて、
|
||||
1TB までが利用できます。
|
||||
(ブロック番号計算を行なっているときの桁落ち)。
|
||||
.Pp
|
||||
2GB 制限のもう一つの理由は、ファイルシステムメタデータが負のオフセットに
|
||||
2GB 制限のもうひとつの理由は、ファイルシステムメタデータが負のオフセットに
|
||||
存在できるということです。
|
||||
.Pp
|
||||
現在われわれはページ境界に整列したファイルオフセットのみを処理できます。
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)mount.2 8.3 (Berkeley) 5/24/95
|
||||
.\" $FreeBSD: src/lib/libc/sys/mount.2,v 1.20.2.3 2000/12/08 13:49:32 ru Exp
|
||||
.\"
|
||||
.Dd May 24, 1995
|
||||
.Dt MOUNT 2
|
||||
|
@ -38,6 +39,8 @@
|
|||
.Nm mount ,
|
||||
.Nm unmount
|
||||
.Nd ファイルシステムをマウントまたはマウント解除する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/param.h>
|
||||
.Fd #include <sys/mount.h>
|
||||
|
@ -47,7 +50,7 @@
|
|||
.Fn unmount "const char *dir" "int flags"
|
||||
.Sh 解説
|
||||
.Fn mount
|
||||
関数は、ファイルシステムオブジェクトをシステムファイルツリーのポイント
|
||||
関数は、ファイルシステムオブジェクトをシステムファイルツリーのマウントポイント
|
||||
.Ar dir
|
||||
に付けます。引数
|
||||
.Ar data
|
||||
|
@ -62,7 +65,7 @@
|
|||
.Ar dir
|
||||
を通して利用できるようになります。マウントが成功すると
|
||||
.Ar dir
|
||||
にあるどのファイルも覆い隠された状態になり、
|
||||
にあるすべてのファイルが覆い隠された状態になり、
|
||||
ファイルシステムがマウント解除されるまで利用できなくなります。
|
||||
.Pp
|
||||
次の
|
||||
|
@ -74,7 +77,7 @@
|
|||
ファイルシステムを読取り専用として取り扱います。
|
||||
スーパユーザでさえこれに書込むことはできません。このオプションなしに
|
||||
MNT_UPDATE を指定すると、
|
||||
読取り専用ファイルシステムが読取り/書込みにアップグレードされます。
|
||||
読取り専用ファイルシステムが読取り / 書込みにアップグレードされます。
|
||||
.It Dv MNT_NOEXEC
|
||||
そのファイルシステムからファイルを実行できないようにします。
|
||||
.It Dv MNT_NOSUID
|
||||
|
@ -102,17 +105,16 @@ SUID
|
|||
.Pp
|
||||
フラグ
|
||||
.Dv MNT_UPDATE
|
||||
は、マウントコマンドが既にマウントされたファイルシステムに適用されて
|
||||
いることを示します。これによって、ファイルシステムをマウント解除および
|
||||
再マウントする必要なしに、マウントフラグを
|
||||
は、マウントコマンドがすでにマウントされたファイルシステムに
|
||||
適用されていることを示します。これによって、ファイルシステムを
|
||||
マウント解除および再マウントする必要なしに、マウントフラグを
|
||||
変更できます。ファイルシステムによっては、すべてのフラグの変更を
|
||||
許容しない場合もあります。たとえば
|
||||
多くのファイルシステムが、読み書き可から読取り専用への変更を
|
||||
許容しません。
|
||||
許容しない場合もあります。たとえば多くのファイルシステムが、
|
||||
読み書き可から読取り専用への変更を許容しません。
|
||||
.Pp
|
||||
vfs サブシステムは、フラグ
|
||||
.Dv MNT_RELOAD
|
||||
によって既にマウントされているファイルシステムに
|
||||
によってすでにマウントされているファイルシステムに
|
||||
関係するデータ構造体を更新します。
|
||||
.Pp
|
||||
.Fa type
|
||||
|
@ -127,14 +129,14 @@ vfs
|
|||
ついてのマニュアルページに記載されています。
|
||||
慣習によりファイルシステムのマニュアルページは、
|
||||
.Xr lsvfs 1
|
||||
によって返されたファイルシステム名に ``mount_' 'の接頭辞を付けて
|
||||
によって返されたファイルシステム名に ``mount_'' の接頭辞を付けて
|
||||
命名されます。それゆえ、
|
||||
.Nm NFS
|
||||
ファイルシステムは
|
||||
.Xr mount_nfs 8
|
||||
マニュアルページに記述されています。
|
||||
.Pp
|
||||
.Fn umount
|
||||
.Fn unmount
|
||||
関数呼び出しは、ファイルシステムを指定のマウントポイント
|
||||
.Fa dir
|
||||
から対応付け解除します。
|
||||
|
@ -165,7 +167,7 @@ vfs
|
|||
.Va errno
|
||||
が設定されます。
|
||||
.Pp
|
||||
.Fn umount
|
||||
.Fn unmount
|
||||
関数はマウント解除が正常に完了すると値 0 を返します。
|
||||
そうでない場合は -1 が返され、エラーを示すために変数
|
||||
.Va errno
|
||||
|
@ -173,7 +175,7 @@ vfs
|
|||
.Sh エラー
|
||||
.Fn mount
|
||||
関数は、次のうちの 1 つでも起きたときには処理を失敗します。
|
||||
.Bl -tag -width [ENOTBLK]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出し側がスーパユーザではありません。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
|
@ -201,7 +203,7 @@ vfs
|
|||
次のエラーは、
|
||||
.Em ufs
|
||||
ファイルシステムのマウントについて発生する可能性があります。
|
||||
.Bl -tag -width [ENOTBLK]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENODEV
|
||||
ufs_args の構成要素
|
||||
.Ar fspec
|
||||
|
@ -235,7 +237,7 @@ ufs_args
|
|||
次のエラーは
|
||||
.Em nfs
|
||||
ファイルシステムマウントについて起きる可能性があります。
|
||||
.Bl -tag -width [ENOTBLK]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ETIMEDOUT
|
||||
.Em nfs
|
||||
がサーバと接触しようとして時間切れになりました。
|
||||
|
@ -264,9 +266,9 @@ nfs_args
|
|||
はプロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||
.El
|
||||
.Pp
|
||||
.Fn umount
|
||||
.Fn unmount
|
||||
関数は、次のエラーの 1 つでも起きたときには処理を失敗します。
|
||||
.Bl -tag -width [ENOTBLK]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出し側がスーパユーザではありません。
|
||||
.It Bq Er ENOTDIR
|
||||
|
@ -303,7 +305,7 @@ nfs_args
|
|||
.Sh 歴史
|
||||
.Fn mount
|
||||
関数と
|
||||
.Fn umount
|
||||
.Fn unmount
|
||||
関数は
|
||||
.At v6
|
||||
で登場しました。
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)mprotect.2 8.1 (Berkeley) 6/9/93
|
||||
.\" %FreeBSD: src/lib/libc/sys/msync.2,v 1.16.2.2 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd June 9, 1993
|
||||
.Dt MPROTECT 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm mprotect
|
||||
.Nd ページの保護属性を制御する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)msync.2 8.2 (Berkeley) 6/21/94
|
||||
.\" %FreeBSD: src/lib/libc/sys/msync.2,v 1.16.2.2 2000/12/29 14:44:53 ru Exp%
|
||||
.\"
|
||||
.Dd June 21, 1994
|
||||
.Dt MSYNC 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm msync
|
||||
.Nd マップされた領域を同期化する
|
||||
.Sh 関数
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
@ -59,14 +62,14 @@
|
|||
.Fa flags
|
||||
引数は次のように指定できます。
|
||||
.Bd -literal
|
||||
MS_ASYNC ただちに戻ります (現時点では実装されていません)
|
||||
MS_ASYNC ただちに戻ります
|
||||
MS_SYNC 同期書込みを実行します
|
||||
MS_INVALIDATE キャッシュされたデータをすべて無効にします
|
||||
.Ed
|
||||
.Sh 戻り値
|
||||
エラーが起きた場合 -1 が返され、エラーを示すために
|
||||
errno が設定されます。そうでない場合は
|
||||
値として 0 が返されます。
|
||||
errno が設定されます。
|
||||
そうでないときは 0 が返されます。
|
||||
.Sh エラー
|
||||
.Fn msync
|
||||
は次の場合に失敗します。
|
||||
|
@ -83,6 +86,7 @@ errno
|
|||
これらのフラグは同時に指定することはできません。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムに書込む間に入出力エラーが発生しました。
|
||||
.El.
|
||||
.Sh 関連項目
|
||||
.Xr madvise 2 ,
|
||||
.Xr mincore 2 ,
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)munmap.2 8.3 (Berkeley) 5/27/94
|
||||
.\" %FreeBSD: src/lib/libc/sys/munmap.2,v 1.10.2.2 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd May 27, 1994
|
||||
.Dt MUNMAP 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm munmap
|
||||
.Nd マッピングを除去する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/mman.h>
|
||||
|
@ -44,7 +47,7 @@
|
|||
.Fn munmap "void *addr" "size_t len"
|
||||
.Sh 解説
|
||||
.Fn munmap
|
||||
システムコールは指定アドレス範囲についてマッピングを除去し、
|
||||
システムコールは指定アドレス範囲についてマッピングを除去します。
|
||||
これにより、以降のこのアドレス範囲内への参照は
|
||||
無効なメモリ参照を引き起こすようになります。
|
||||
.Sh 戻り値
|
||||
|
@ -63,8 +66,9 @@
|
|||
パラメータがページ境界に整列していなかったか、
|
||||
.Fa len
|
||||
パラメータが負であったか、
|
||||
またはアンマップする領域の一部がプロセスにとって有効な範囲の外側に
|
||||
あります。
|
||||
またはアンマップする領域の一部が
|
||||
プロセスにとって有効な範囲外にあります。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr madvise 2 ,
|
||||
.Xr mincore 2 ,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
.\" %FreeBSD: src/lib/libc/sys/nanosleep.2,v 1.6.2.2 1999/09/18 16:19:00 phantom Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/nanosleep.2,v 1.8.2.1 2000/04/22 17:07: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 %
|
||||
.\" %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.
|
||||
|
@ -37,10 +38,12 @@
|
|||
.\"
|
||||
.Dd April 17, 1997
|
||||
.Dt NANOSLEEP 2
|
||||
.Os
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm nanosleep
|
||||
.Nd ナノ秒単位の間隔でプロセス実行を中断する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <time.h>
|
||||
.Ft int
|
||||
|
@ -69,7 +72,7 @@ timespec
|
|||
(要求時間から、実際に休眠状態にあった時間を減算したものです)。
|
||||
.Pp
|
||||
次の状態のうちのいずれかが発生した場合、
|
||||
.Fn nanosleep
|
||||
.Fn nanosleep
|
||||
関数は -1 を返して
|
||||
.Va errno
|
||||
を対応する値に設定します。
|
||||
|
@ -85,7 +88,7 @@ timespec
|
|||
はシグナルの配信によって割り込まれました。
|
||||
.It Bq Er EINVAL
|
||||
.Fa rqtp
|
||||
にゼロより小さいか、または 10 億以上のナノ秒値を指定しました。
|
||||
に 0 未満か、10 億ナノ秒以上の値を指定しました。
|
||||
.It Bq Er ENOSYS
|
||||
.Fn nanosleep
|
||||
はこのシステムではサポートされていません。
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/nfssvc.2,v 1.8.2.3 2000/12/08 13:49:32 ru Exp %
|
||||
.\"
|
||||
.\" WORD: principal 主体名
|
||||
.Dd June 9, 1993
|
||||
|
@ -39,6 +39,8 @@
|
|||
.Sh 名称
|
||||
.Nm nfssvc
|
||||
.Nd NFS nfssvc - NFS サービス
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/param.h>
|
||||
.Fd #include <sys/mount.h>
|
||||
|
@ -106,7 +108,10 @@ struct nfsd_cargs {
|
|||
マウントポイントが Kerberos を使用している場合、
|
||||
クライアント側がユーザ用の ``rcmd'' 認証チケットを要求するたびに、
|
||||
.Xr mount_nfs 8
|
||||
デーモンは、errno == ENEEDAUTH で
|
||||
デーモンは、
|
||||
.Va errno
|
||||
==
|
||||
.Er ENEEDAUTH で
|
||||
.Fn nfssvc
|
||||
から戻ります。
|
||||
.Xr mount_nfs 8
|
||||
|
@ -140,16 +145,19 @@ ncd_authlen
|
|||
デーモンとしてカーネルに入ります。
|
||||
.Bd -literal
|
||||
struct nfsd_srvargs {
|
||||
struct nfsd *nsd_nfsd; /* カーネル内の nfsd struct を指すポインタ */
|
||||
struct nfsd *nsd_nfsd; /*
|
||||
* カーネル内の nfsd struct を
|
||||
* 指すポインタ
|
||||
*/
|
||||
uid_t nsd_uid; /* cred にマップされる実効 uid*/
|
||||
u_long nsd_haddr; /* クライアントの IP アドレス */
|
||||
u_int32t nsd_haddr; /* クライアントの IP アドレス */
|
||||
struct ucred nsd_cr; /* Cred. uid のマップ宛先 */
|
||||
int nsd_authlen; /* 認証文字列の長さ (戻り) */
|
||||
u_char *nsd_authstr; /* 認証文字列 (戻り) */
|
||||
int nsd_verflen; /* および検証機能 */
|
||||
u_char *nsd_verfstr;
|
||||
struct timeval nsd_timestamp; /* 検証機能からのタイムスタンプ */
|
||||
u_long nsd_ttl; /* 証書の持続時間 (秒) */
|
||||
u_int32t nsd_ttl; /* 証書の持続時間 (秒) */
|
||||
NFSKERBKEY_T nsd_key; /* セッションキー */
|
||||
};
|
||||
.Ed
|
||||
|
@ -157,7 +165,10 @@ struct nfsd_srvargs {
|
|||
.Xr nfsd 8
|
||||
デーモンは、Kerberos 認証チケットを受信するたびに、
|
||||
.Fn nfssvc
|
||||
から errno == ENEEDAUTH で戻ります。
|
||||
から
|
||||
.Va errno
|
||||
==
|
||||
.Er ENEEDAUTH で戻ります。
|
||||
.Xr nfsd 8
|
||||
は、チケットを認証し、フィールド nsd_uid で指定された
|
||||
``user id'' 用の一連の証書をサーバ上で生成しようとします。
|
||||
|
@ -202,7 +213,7 @@ nsd_cr
|
|||
.Bd -literal
|
||||
struct nfsd_args {
|
||||
int sock; /* サービスを行うソケット */
|
||||
caddr_t name; /* 接続をベースとしたソケットのクライアントアドレス */
|
||||
caddr_t name; /* 接続指向のソケットのクライアントアドレス */
|
||||
int namelen;/* 名前の長さ */
|
||||
};
|
||||
.Ed
|
||||
|
@ -215,7 +226,7 @@ struct nfsd_args {
|
|||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Bl -tag -width [ENEEDAUTH]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENEEDAUTH
|
||||
この特殊なエラー値は、実際には認証サポート用、
|
||||
特に、前述した Kerberos 用に使用されます。
|
||||
|
@ -240,7 +251,7 @@ struct nfsd_args {
|
|||
なっています。
|
||||
本来ならば、認証サポートが必要であることを示す値を返す必要があります。
|
||||
なぜなら、
|
||||
.Dv ENEEDAUTH
|
||||
.Er ENEEDAUTH
|
||||
は本来ならエラーではないからです。
|
||||
引数である構造体のいくつかのフィールドは
|
||||
正当なものであると仮定されており、直前の呼び出しから
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
.Sh 名称
|
||||
.Nm open
|
||||
.Nd 読取りまたは書込み用にファイルを開くかまたは作成する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <fcntl.h>
|
||||
.Ft int
|
||||
|
@ -208,6 +210,10 @@ O_EXLOCK
|
|||
.It Bq Er ENXIO
|
||||
指定のファイルはキャラクタ型特殊ファイルまたはブロック型特殊
|
||||
ファイルであり、この特殊ファイルに対応するデバイスは存在していません。
|
||||
.It Bq Er ENXIO
|
||||
指定されたファイルは FIFO パイプで、どのプロセスからも
|
||||
読取り用にオープンされていないにも関らず、
|
||||
書込み用にオープンしようとしました。
|
||||
.It Bq Er EINTR
|
||||
.Fn open
|
||||
操作がシグナルによって割り込みされました。
|
||||
|
@ -217,6 +223,13 @@ O_EXLOCK
|
|||
.Dv O_EXLOCK
|
||||
が指定されましたが、下層となっているファイルシステムは
|
||||
ロックをサポートしていません。
|
||||
.It Bq Er EWOULDBLOCK
|
||||
.Dv O_NONBLOCK
|
||||
と、
|
||||
.Dv O_SHLOCK
|
||||
か
|
||||
.Dv O_EXLOCK
|
||||
のどちらかが指定されましたが、ファイルはロックされています。
|
||||
.It Bq Er ENOSPC
|
||||
.Dv O_CREAT
|
||||
が指定されていて、ファイルが存在せず、新しいファイル用のエントリを
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Nm pathconf ,
|
||||
.Nm fpathconf
|
||||
.Nd 構成可能なパス名変数を取得する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft long
|
||||
|
@ -69,7 +71,7 @@
|
|||
.Pp
|
||||
利用可能な値は次のとおりです。
|
||||
.Pp
|
||||
.Bl -tag -width "123456"
|
||||
.Bl -tag -width 6n
|
||||
.Pp
|
||||
.It Li _PC_LINK_MAX
|
||||
最大のファイルリンクカウント。
|
||||
|
@ -119,9 +121,10 @@ KERN_NAME_MAX
|
|||
.It Bq Er EINVAL
|
||||
対応するファイルと変数名の対応付けは実装されていません。
|
||||
.El
|
||||
.Pp
|
||||
.Fn pathconf
|
||||
は次の場合に失敗します。
|
||||
.Bl -tag -width ENAMETOOLONGAA
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
|
@ -137,7 +140,7 @@ KERN_NAME_MAX
|
|||
ファイルシステムに読み書きしている間に入出力エラーが発生しました。
|
||||
.El
|
||||
.Pp
|
||||
.Bl -tag -width [EFAULT]
|
||||
.Bl -tag -width Er
|
||||
.Fn fpathconf
|
||||
は次の場合に失敗します。
|
||||
.It Bq Er EBADF
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm pipe
|
||||
.Nd プロセス間通信について記述子のペアを作成する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -86,7 +88,7 @@
|
|||
.Sh エラー
|
||||
.Fn pipe
|
||||
呼び出しは次の場合に失敗します。
|
||||
.Bl -tag -width [EMFILE]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EMFILE
|
||||
アクティブな記述子が多すぎます。
|
||||
.It Bq Er ENFILE
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
.Sh 名称
|
||||
.Nm poll
|
||||
.Nd 同期的な入出力の多重化
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <poll.h>
|
||||
|
@ -64,7 +66,9 @@ struct pollfd {
|
|||
構造体のフィールドは次のとおりです:
|
||||
.Bl -tag -width XXXrevents
|
||||
.It fd
|
||||
ポールするファイル記述子。
|
||||
ポールするファイル記述子。もし fd が -1 なら
|
||||
.Fa revents
|
||||
はクリアされ (0 に設定)、pollfd はチェックされません。
|
||||
.It events
|
||||
ポールするイベント (後述)。
|
||||
.It revents
|
||||
|
|
|
@ -41,10 +41,12 @@
|
|||
.Sh 名称
|
||||
.Nm profil
|
||||
.Nd プロセスのプロファイルを制御する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
.Fn profil "char *samples" "int size" "int offset" "int scale"
|
||||
.Fn profil "char *samples" "size_t size" "vm_offset_t offset" "int scale"
|
||||
.Sh 解説
|
||||
.Fn profil
|
||||
関数は、現在のプロセスのカウンタプロファイルを有効化または無効化します。
|
||||
|
|
|
@ -4,10 +4,12 @@
|
|||
.\" This file is in the public domain.
|
||||
.Dd January 20, 1996
|
||||
.Dt PTRACE 2
|
||||
.Os FreeBSD 2
|
||||
.Os FreeBSD
|
||||
.Sh 名称
|
||||
.Nm ptrace
|
||||
.Nd プロセスのトレースとデバッグ
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/ptrace.h>
|
||||
|
@ -82,7 +84,7 @@ setuid
|
|||
が命令空間から読み取り、
|
||||
.Dv PT_READ_D
|
||||
がデータ空間から読み取ります。現在の
|
||||
.Tn FreeBSD
|
||||
.Fx
|
||||
システムでは、これらの 2 つの要求は完全に同一です。
|
||||
.Fa addr
|
||||
引数が、読み取りが行われる (トレースされたプロセスの仮想アドレス空間内の)
|
||||
|
@ -152,6 +154,12 @@ int
|
|||
.Fa data
|
||||
は、実行を再開するときにトレースされるプロセスに配信されるシグナル番号、
|
||||
またはシグナルが送信されない場合は 0 を提供します。
|
||||
.It Dv PT_STEP
|
||||
トレースされるプロセスは 1 命令ずつステップ実行されます。
|
||||
.Fa addr
|
||||
と
|
||||
.Fa data
|
||||
フィールドは使用されません。
|
||||
.It Dv PT_KILL
|
||||
トレースされるプロセスは、
|
||||
.Dv PT_CONTINUE
|
||||
|
@ -216,6 +224,24 @@ int
|
|||
.Pf ( Aq Pa machine/reg.h
|
||||
内に定義されています)
|
||||
からトレースされたプロセスの浮動小数点レジスタをロードします。
|
||||
.It Dv PT_GETDBREGS
|
||||
この要求はトレースされるプロセスのデバッグレジスタを
|
||||
.Fa addr
|
||||
が指す
|
||||
.Dq Li "struct dbreg"
|
||||
.Pf ( Aq Pa machine/reg.h
|
||||
内に定義されています)
|
||||
に読みとります。
|
||||
.It Dv PT_SETDBREGS
|
||||
この要求は
|
||||
.Dv PT_GETDBREGS
|
||||
の反対です。
|
||||
.Fa addr
|
||||
の指す
|
||||
.Dq Li "struct dbreg"
|
||||
.Pf ( Aq Pa machine/reg.h
|
||||
内に定義されています)
|
||||
からトレースされたプロセスのデバッグレジスタにロードします。
|
||||
.El
|
||||
.Sh 戻り値
|
||||
要求にはエラーでない値として
|
||||
|
@ -229,7 +255,7 @@ int
|
|||
.Sh エラー
|
||||
.Fn ptrace
|
||||
関数は次の場合に処理に失敗することがあります。
|
||||
.Bl -tag -width 4n
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ESRCH
|
||||
.Bl -bullet -compact
|
||||
.It
|
||||
|
@ -262,9 +288,11 @@ int
|
|||
.It
|
||||
.Dv PT_GETREGS ,
|
||||
.Dv PT_SETREGS ,
|
||||
.Dv PT_GETFPREGS
|
||||
.Dv PT_GETFPREGS ,
|
||||
.Dv PT_SETFPREGS ,
|
||||
.Dv PT_GETDBREGS
|
||||
または
|
||||
.Dv PT_SETFPREGS
|
||||
.Dv PT_SETDBREGS
|
||||
が、有効なレジスタを設定せずに
|
||||
プロセスについて試みられました
|
||||
(これは通常、システムプロセスについてだけ真です)。
|
||||
|
@ -295,11 +323,14 @@ int
|
|||
.Dv PT_ATTACH
|
||||
を使おうとしました。
|
||||
.El
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr execve 2 ,
|
||||
.Xr sigaction 2 ,
|
||||
.Xr wait 2 ,
|
||||
.Xr execv 3
|
||||
.Xr execv 3 ,
|
||||
.Xr i386_clr_watch 3 ,
|
||||
.Xr i386_set_watch 3
|
||||
.Sh 歴史
|
||||
.Fn ptrace
|
||||
関数は
|
||||
|
|
|
@ -40,17 +40,19 @@
|
|||
.\" WORD: quota file 割り当て制限を記録したファイル
|
||||
.\" WORD: usage 使用状況
|
||||
.\"
|
||||
.Dd March 10, 1995
|
||||
.Dd March 5, 1999
|
||||
.Dt QUOTACTL 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm quotactl
|
||||
.Nd ファイルシステム割り当て制限を操作する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.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"
|
||||
.Fn quotactl "const char *path" "int cmd" "int id" "void *addr"
|
||||
.Sh 解説
|
||||
.Fn quotactl
|
||||
システムコールは、
|
||||
|
@ -162,7 +164,7 @@ QCMD
|
|||
.Sh エラー
|
||||
.Fn quotactl
|
||||
呼び出しは次の場合に失敗します。
|
||||
.Bl -tag -width ENAMETOOLONGAA
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EOPNOTSUPP
|
||||
カーネルが
|
||||
.Dv QUOTA
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
.Nm readv ,
|
||||
.Nm pread
|
||||
.Nd 入力を読取る
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/uio.h>
|
||||
|
@ -129,15 +131,16 @@ struct iovec {
|
|||
にアセンブルされ、
|
||||
.Fn read
|
||||
は読取り用に
|
||||
.Va d
|
||||
.Fa d
|
||||
をロックしてから
|
||||
.Fn _thread_sys_read
|
||||
を呼び出す関数として実装されています。
|
||||
.Fn _thread_sys_read
|
||||
の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。戻る前に
|
||||
の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。
|
||||
戻る前に
|
||||
.Fn read
|
||||
は
|
||||
.Va d
|
||||
.Fa d
|
||||
をアンロックします。
|
||||
.Pp
|
||||
非スレッドライブラリ
|
||||
|
@ -153,7 +156,7 @@ struct iovec {
|
|||
システムコールにアセンブルされ、
|
||||
.Fn readv
|
||||
は、読取り用に
|
||||
.Va d
|
||||
.Fa d
|
||||
をロックしてから
|
||||
.Fn _thread_sys_readv
|
||||
を呼び出す関数として実装されています。
|
||||
|
@ -162,7 +165,7 @@ struct iovec {
|
|||
戻る前に
|
||||
.Fn readv
|
||||
は
|
||||
.Va d
|
||||
.Fa d
|
||||
をアンロックします。
|
||||
.Sh 戻り値
|
||||
正常に完了すると、実際に読取られたバイト数が返されます。
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm readlink
|
||||
.Nd シンボリックリンクの値を読取る
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -65,7 +67,7 @@
|
|||
.Sh エラー
|
||||
.Fn readlink
|
||||
は次の場合に失敗します。
|
||||
.Bl -tag -width ENAMETOOLONG
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm reboot
|
||||
.Nd システムをリブートするかまたはプロセッサを停止する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Fd #include <sys/reboot.h>
|
||||
|
|
|
@ -40,13 +40,15 @@
|
|||
.Nm recvfrom ,
|
||||
.Nm recvmsg
|
||||
.Nd ソケットからメッセージを受信する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.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"
|
||||
.Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr *from" "socklen_t *fromlen"
|
||||
.Ft ssize_t
|
||||
.Fn recvmsg "int s" "struct msghdr *msg" "int flags"
|
||||
.Sh 解説
|
||||
|
@ -244,7 +246,7 @@ struct cmsgcred {
|
|||
これらの呼出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。
|
||||
.Sh エラー
|
||||
呼び出しは次の場合に失敗します。
|
||||
.Bl -tag -width ENOTCONNAA
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
引数
|
||||
.Fa s
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm rename
|
||||
.Nd ファイル名を変更する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <stdio.h>
|
||||
.Ft int
|
||||
|
@ -101,7 +103,7 @@
|
|||
.Sh エラー
|
||||
.Fn rename
|
||||
は次の場合、処理に失敗し、いずれの引数ファイルも影響を受けません。
|
||||
.Bl -tag -width ENAMETOOLONG
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENAMETOOLONG
|
||||
いずれかのパス名の構成要素が 255 文字を越えているか、またはいずれかの
|
||||
パス名全体の長さが 1023 文字を越えています。
|
||||
|
@ -171,7 +173,7 @@
|
|||
が
|
||||
.Fa to
|
||||
の親ディレクトリであるか、
|
||||
.Ql \&.
|
||||
.Ql .\&
|
||||
または
|
||||
.Ql \&..
|
||||
に名前を変更しようとしました。
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
.Sh 名称
|
||||
.Nm revoke
|
||||
.Nd ファイルアクセスを無効にする
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
|
|
@ -3,24 +3,28 @@
|
|||
.\" describe the actual BSD implementation. Permission for
|
||||
.\" use of this page comes from Rob Pike <rob@plan9.att.com>.
|
||||
.\"
|
||||
.Dd Jan 12, 1996
|
||||
.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.11.2.5 2000/12/12 09:55:46 ru Exp %
|
||||
.\"
|
||||
.Dd January 12, 1996
|
||||
.Dt RFORK 2
|
||||
.Os
|
||||
.Sh 名称
|
||||
.Nm rfork
|
||||
.Nd プロセスリソースの操作
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
.Fn rfork "int flags"
|
||||
.Sh 解説
|
||||
fork, vfork, と rfork が新しいプロセスが作成される唯一の方法です。
|
||||
fork, vfork, rfork は、新しいプロセスが作成される唯一の方法です。
|
||||
.Fn rfork
|
||||
への
|
||||
への引数
|
||||
.Fa flags
|
||||
引数は、起動しているプロセス (親) のどのリソースが、新しいプロセス (子) に
|
||||
は、起動しているプロセス (親) のどのリソースが新しいプロセス (子) に
|
||||
よって共有されるか、またはそれらのデフォルト値に初期化されるかを選択します。
|
||||
リソースにはオープンファイル記述子テーブル (これは、共有されたとき、
|
||||
リソースにはオープンファイル記述子テーブル (これは、共有される場合、
|
||||
プロセスが他のプロセスについてファイルを開閉することを
|
||||
許容します) およびオープンファイルが含まれます。
|
||||
.Fa flags
|
||||
|
@ -29,10 +33,10 @@ fork, vfork,
|
|||
.It RFPROC
|
||||
設定されている場合、新しいプロセスが
|
||||
作成されます。そうでない場合、変更が現在のプロセスに影響を及ぼします。
|
||||
現在のシステムでは、このフラグがいつでも設定されていることが要求されます。
|
||||
現在の実装は、このフラグが必ず設定されていることを要求します。
|
||||
.It RFNOWAIT
|
||||
設定されている場合、子プロセスは親から分離されます。終了時に、子は、
|
||||
親が集めるステータスを残しません。
|
||||
設定されている場合、子プロセスは親プロセスから分離されます。
|
||||
終了時に、子プロセスは、親プロセスが集めるステータスを残しません。
|
||||
.Xr wait 2
|
||||
を参照してください。
|
||||
.It RFFDG
|
||||
|
@ -46,13 +50,23 @@ fork, vfork,
|
|||
.Dv RFFDG
|
||||
とは互いに排他的です。
|
||||
.It RFMEM
|
||||
設定されている場合、カーネルは、アドレス空間全体の共有を強制します。
|
||||
その際、子は、親プロセスが所有しているすべての共有セグメントを継承します。
|
||||
他のセグメントタイプは影響を受けません。親による後続の fork は、
|
||||
子の間で共通データと bss を影響させます。
|
||||
スタックセグメントは常に分割されます。
|
||||
設定されている場合、
|
||||
通常、ハードウェアのページテーブルを直接共有することで、
|
||||
カーネルはアドレス空間全体の共有を強制します。
|
||||
子は、この様な方法で、
|
||||
親プロセスが所有しているすべてのセグメントを、
|
||||
それが普段共有可能であるか否かに関係なく、
|
||||
継承し共有します。
|
||||
スタックセグメントは分割されない
|
||||
(親と子の両方が同じスタック上に復帰する)
|
||||
ので、
|
||||
RFMEM フラグを指定した
|
||||
.Fn rfork
|
||||
を通常、高級言語から直接呼び出すことはできません。
|
||||
例えば、C 言語でこのシステムコールを直接呼び出すことはできません。
|
||||
共に設定可能なフラグは
|
||||
.Dv RFPROC
|
||||
とだけ共に設定することになるでしょう。
|
||||
だけです。
|
||||
.It RFSIGSHARE
|
||||
設定されている場合、カーネルは、親子間で sigacts 構造体を共有することを
|
||||
強制します。
|
||||
|
@ -82,8 +96,8 @@ SIGUSR1
|
|||
.Fn fork
|
||||
は、
|
||||
.Fn rfork "RFFDG | RFPROC"
|
||||
への呼び出しとして実現できますが、後方互換性のためにでは
|
||||
ありません。
|
||||
への呼び出しとして実装可能ですが、後方互換性のために
|
||||
その様には実装していません。
|
||||
.Sh 戻り値
|
||||
正常に完了した場合、
|
||||
.Fn rfork
|
||||
|
@ -96,7 +110,7 @@ SIGUSR1
|
|||
.Sh エラー
|
||||
.Fn rfork
|
||||
は、次の場合に処理を失敗し、子プロセスは作成されません。
|
||||
.Bl -tag -width [EAGAIN]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EAGAIN
|
||||
実行中のプロセスの合計数がシステムの課す制限を超過してしまいます。
|
||||
制限は
|
||||
|
@ -116,7 +130,7 @@ MIB
|
|||
.It Bq Er EAGAIN
|
||||
ユーザがスーパユーザではなく、リソースパラメータ
|
||||
.Dv RLIMIT_NOFILE
|
||||
に対応するソフトリソースの限界を超過してしまいます
|
||||
に対応するソフトリソースの制限を超過してしまいます
|
||||
.Pf ( Xr getrlimit 2
|
||||
を参照)。
|
||||
.It Bq Er EINVAL
|
||||
|
@ -131,6 +145,19 @@ RFFDG
|
|||
.Xr intro 2 ,
|
||||
.Xr minherit 2 ,
|
||||
.Xr vfork 2
|
||||
.Sh BUGS
|
||||
.Fx
|
||||
は native な
|
||||
.Fn clone
|
||||
ライブラリコールを未だ実装していませんし、
|
||||
現在の pthreads 実装は RFMEM を指定した
|
||||
.Fn rfork
|
||||
を利用していません。
|
||||
linux スレッドライブラリの native port である、
|
||||
.Pa /usr/ports/devel/linuxthreads
|
||||
は RFMEM を利用して動作する
|
||||
.Fn clone
|
||||
コールを含んでいます。
|
||||
.Sh 歴史
|
||||
.Fn rfork
|
||||
関数は
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)rmdir.2 8.1 (Berkeley) 6/4/93
|
||||
.\" %FreeBSD: src/lib/libc/sys/rmdir.2,v 1.5.2.3 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd June 4, 1993
|
||||
.Dt RMDIR 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm rmdir
|
||||
.Nd ディレクトリファイルを削除する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -47,7 +50,7 @@
|
|||
.Fa path
|
||||
で指定されるディレクトリファイルを削除します。
|
||||
ディレクトリには
|
||||
.Ql \&.
|
||||
.Ql .\&
|
||||
と
|
||||
.Ql \&..
|
||||
以外のエントリがあってはなりません。
|
||||
|
@ -58,7 +61,7 @@
|
|||
にエラーコードが保存されます。
|
||||
.Sh エラー
|
||||
次の場合を除いて、指定のファイルが削除されます。
|
||||
.Bl -tag -width [ENAMETOOLONG]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
|
@ -70,9 +73,9 @@
|
|||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||
.It Bq Er ENOTEMPTY
|
||||
指定されたディレクトリには
|
||||
.Ql \&.
|
||||
.Ql .\&
|
||||
と
|
||||
.Ql \&..
|
||||
.Ql ..\&
|
||||
以外のファイルが含まれています。
|
||||
.It Bq Er EACCES
|
||||
前置パス名の構成要素について検索許可が拒否されています。
|
||||
|
|
|
@ -27,13 +27,16 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/rtprio.2,v 1.13.2.5 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd July 23, 1994
|
||||
.Dt RTPRIO 2
|
||||
.Os FreeBSD
|
||||
.Sh 名称
|
||||
.Nm rtprio
|
||||
.Nd ユーティリティやプロセスのリアルタイムまたはアイドル優先順位を取得と修正
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/rtprio.h>
|
||||
|
@ -48,7 +51,7 @@
|
|||
で実行する操作を指定します。現在の優先順位を取得するには
|
||||
RTP_LOOKUP、優先順位を設定するには RTP_SET です。
|
||||
.Fa pid
|
||||
は、対象のプロセスを指定します。現在のプロセスについては 0 です。
|
||||
は、対象のプロセスを指定します。現在のプロセスを指定するには 0 を使います。
|
||||
.Pp
|
||||
.Fa *rtp
|
||||
は、優先順位と優先順位のタイプを指定するのに使用する struct rtprio を指す
|
||||
|
@ -67,19 +70,19 @@ struct rtprio {
|
|||
.Nm prio
|
||||
によって指定する優先順位は、0 から
|
||||
.Dv RTP_PRIO_MAX (通常は 31)
|
||||
の範囲になります。0 が可能な最高優先順位です。
|
||||
の範囲になります。0 が指定可能な最高の優先順位です。
|
||||
.Pp
|
||||
リアルタイム優先順位とアイドル優先順位は、
|
||||
fork() と exec() を通じて継承されます。
|
||||
.Pp
|
||||
リアルプロセスは、それ以上優先順位をもつプロセス、
|
||||
リアルタイムプロセスは、それ以上の優先順位をもつプロセス、
|
||||
または割り込みによってだけ優先権を取得できます。
|
||||
アイドル優先順位のプロセスは、
|
||||
他のリアルタイムまたは通常の優先順位プロセスが
|
||||
実行可能でないときにだけ実行されます。
|
||||
優先度の高いリアルまたはアイドルのプロセスは
|
||||
優先度の低いリアルまたはアイドルのプロセスから優先権を取得します。
|
||||
優先度が等しいリアルまたはアイドルの
|
||||
優先順位の高いリアルまたはアイドルのプロセスは
|
||||
優先順位の低いリアルまたはアイドルのプロセスから優先権を取得します。
|
||||
優先順位が等しいリアルまたはアイドルの
|
||||
プロセスはラウンドロビン式で実行されます。
|
||||
.Sh 戻り値
|
||||
.Fn rtprio
|
||||
|
@ -97,11 +100,13 @@ fork()
|
|||
が範囲外でした。
|
||||
.It Bq Er EPERM
|
||||
呼び出しプロセスがリアルタイム優先順位を設定できません。
|
||||
スーパユーザだけがプロセスのリアル優先順位を変更することができます。
|
||||
スーパユーザ以外は現在のプロセスのアイドル優先順位を変更できるだけです。
|
||||
スーパユーザだけが任意のプロセスのリアル優先順位を変更することができます。
|
||||
非スーパユーザは現在のプロセスのアイドル優先順位を変更できるだけです。
|
||||
.It Bq Er ESRCH
|
||||
指定のプロセスが見つかりませんでした。
|
||||
.El
|
||||
.Sh 作者
|
||||
.An -nosplit
|
||||
元の作者は
|
||||
.An Henrik Vestergaard Draboel Aq hvd@terry.ping.dk
|
||||
です。
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" %FreeBSD: src/lib/libc/sys/sched_get_priority_max.2,v 1.2.2.1 1999/08/29 14:49:19 peter Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/sched_get_priority_max.2,v 1.3.2.5 2000/12/12 09:55:46 ru Exp %
|
||||
.\" Copyright (c) 1998 HD Associates, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
|
@ -23,7 +23,7 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd Mar 12, 1998
|
||||
.Dd March 12, 1998
|
||||
.Dt SCHED_GET_PRIORITY_MAX 2
|
||||
.Os BSD 4
|
||||
.Sh 名称
|
||||
|
@ -31,6 +31,8 @@
|
|||
.Nm sched_get_priority_min ,
|
||||
.Nm sched_rr_get_interval
|
||||
.Nd スケジュールパラメータ制限を取得する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sched.h>
|
||||
.Ft int
|
||||
|
@ -43,7 +45,10 @@
|
|||
.Fn sched_get_priority_max
|
||||
関数と
|
||||
.Fn sched_get_priority_min
|
||||
関数は、指定された方針についてそれぞれ該当する最大と最小を返します。
|
||||
関数は、
|
||||
.Fa policy
|
||||
で指定されたスケジューリング方針について、
|
||||
それぞれ該当する最大と最小を返します。
|
||||
.Fn sched_rr_get_interval
|
||||
関数は、
|
||||
.Fa interval
|
||||
|
@ -51,10 +56,10 @@
|
|||
.Fa timespec
|
||||
構造体を、
|
||||
.Fa pid
|
||||
によって指定されるプロセスについて
|
||||
で指定されるプロセスについて
|
||||
現在の実行時間制限 (すなわち、時間量) が含まれるように更新します。
|
||||
.Fa pid
|
||||
がゼロの場合、呼び出しプロセスに関する現在の実行時間制限が返されます。
|
||||
が 0 の場合、呼び出し元プロセスに関する現在の実行時間制限が返されます。
|
||||
.Pp
|
||||
.Fa policy
|
||||
の値は
|
||||
|
@ -66,30 +71,30 @@
|
|||
.It Bq Er SCHED_OTHER
|
||||
標準のタイムシェアリングスケジューラ。
|
||||
.It Bq Er SCHED_RR
|
||||
同じ優先順位でのラウンドロビンスケジューリング。
|
||||
同じ優先順位のプロセス間でのラウンドロビンスケジューリング。
|
||||
.El
|
||||
.Sh 戻り値
|
||||
正常に完了すると、
|
||||
.Fn sched_get_priority_max
|
||||
関数と
|
||||
.Fn sched_get_priority_min
|
||||
関数はそれぞれ該当する最大値または最小値を返します。
|
||||
正常に完了しない場合、戻り値 -1 が返され、
|
||||
エラーを示すように
|
||||
関数は、それぞれ該当する最大値または最小値を返します。
|
||||
正常に完了しない場合、どちらの関数も -1 を返し、
|
||||
エラーを示す様に
|
||||
.Fa errno
|
||||
が設定されます。
|
||||
を設定します。
|
||||
.Pp
|
||||
正常に完了した場合、
|
||||
.Fn sched_rr_get_interval
|
||||
関数は 0 を返します。そうでない場合、
|
||||
値 -1 が返され、エラーを示すために
|
||||
値 -1 を返し、エラーを示すために
|
||||
.Fa errno
|
||||
が設定されます。
|
||||
を設定します。
|
||||
.Sh エラー
|
||||
処理を失敗すると、
|
||||
.Va errno
|
||||
は対応する値に設定されます。
|
||||
.Bl -tag -width [EFAULT]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa policy
|
||||
パラメータの値が定義されているスケジュール方針ではありません。
|
||||
|
@ -100,10 +105,10 @@
|
|||
関数、
|
||||
および
|
||||
.Fn sched_rr_get_interval
|
||||
関数は、このシステムでサポートされていません。
|
||||
関数は、この実装ではサポートされていません。
|
||||
.It Bq Er ESRCH
|
||||
.Fa pid
|
||||
によって指定されるプロセスに対応するプロセスが見つかりません。
|
||||
で指定されるプロセスに対応するプロセスが見つかりません。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr sched_get_scheduler 2 ,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" %FreeBSD: src/lib/libc/sys/sched_setparam.2,v 1.3.2.1 1999/08/29 14:49:20 peter Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/sched_setparam.2,v 1.4.2.4 2000/12/12 09:55:46 ru Exp %
|
||||
.\" Copyright (c) 1998 HD Associates, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
|
@ -23,13 +23,15 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd Mar 12, 1998
|
||||
.Dd March 12, 1998
|
||||
.Dt SCHED_SETPARAM 2
|
||||
.Os BSD 4
|
||||
.Sh 名称
|
||||
.Nm sched_setparam ,
|
||||
.Nm sched_getparam
|
||||
.Nd スケジュールパラメータの設定/取得
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sched.h>
|
||||
.Ft int
|
||||
|
@ -52,7 +54,7 @@
|
|||
メンバの値は、
|
||||
.Fa pid
|
||||
で指定するプロセスの現在のスケジュール方針用の
|
||||
優先度範囲内 (両端含む) の整数である必要があります。
|
||||
優先順位範囲内 (両端含む) の整数である必要があります。
|
||||
優先順位の数値が高いほど優先順位が高いことを表します。
|
||||
.Pp
|
||||
この実装では、
|
||||
|
@ -76,7 +78,7 @@
|
|||
に指定されているものです。
|
||||
.Pp
|
||||
ターゲットプロセスは、実行中にせよ実行中でないにせよ、
|
||||
優先順位が等しいかまたはより高い
|
||||
優先順位が等しいかまたはより高い、
|
||||
他のすべての実行可能なプロセスが実行されるようにスケジュールされた後で、
|
||||
実行を再開します。
|
||||
.Pp
|
||||
|
@ -143,7 +145,7 @@ SCHED_RR
|
|||
処理に失敗すると、
|
||||
.Va errno
|
||||
を対応する値に設定します。
|
||||
.Bl -tag -width [EFAULT]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOSYS
|
||||
システムはこの機能をサポートするように構成されていません。
|
||||
.It Bq Er EPERM
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" %FreeBSD: src/lib/libc/sys/sched_setscheduler.2,v 1.2.2.1 1999/08/29 14:49:21 peter Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/sched_setscheduler.2,v 1.3.2.5 2000/12/12 09:55:46 ru Exp %
|
||||
.\" Copyright (c) 1998 HD Associates, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
|
@ -23,13 +23,15 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd Mar 12, 1998
|
||||
.Dd March 12, 1998
|
||||
.Dt SCHED_SETSCHEDULER 2
|
||||
.Os BSD 4
|
||||
.Sh 名称
|
||||
.Nm sched_setscheduler ,
|
||||
.Nm sched_getscheduler
|
||||
.Nd スケジュール方針とスケジューラパラメータの設定/取得
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sched.h>
|
||||
.Ft int
|
||||
|
@ -93,7 +95,7 @@
|
|||
構造体は
|
||||
.Fa <sched.h>
|
||||
に定義されています。
|
||||
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
struct sched_param {
|
||||
int sched_priority; /* スケジュール優先順位 */
|
||||
|
@ -133,7 +135,7 @@ struct sched_param {
|
|||
処理に失敗すると、
|
||||
.Va errno
|
||||
を対応する値に設定します。
|
||||
.Bl -tag -width [EFAULT]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOSYS
|
||||
システムは、この機能をサポートするように構成されていません。
|
||||
.It Bq Er EPERM
|
||||
|
@ -148,8 +150,8 @@ struct sched_param {
|
|||
パラメータの値が無効であるか、または
|
||||
.Fa param
|
||||
に含まれている
|
||||
1 つまたは複数のパラメータが
|
||||
指定のスケジュール方針で有効な範囲の外にあります。
|
||||
1 つまたは複数のパラメータが、
|
||||
指定されたスケジュール方針で有効な範囲の外にあります。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr sched_get_priority_max 2 ,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.\" %FreeBSD: src/lib/libc/sys/sched_yield.2,v 1.1.2.1 1999/08/29 14:49:21 peter Exp %
|
||||
.\" %FreeBSD: src/lib/libc/sys/sched_yield.2,v 1.2.2.5 2000/12/29 14:44:53 ru Exp %
|
||||
.\" Copyright (c) 1998 HD Associates, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
|
@ -23,12 +23,14 @@
|
|||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd Mar 12, 1998
|
||||
.Dd March 12, 1998
|
||||
.Dt SCHED_YIELD 2
|
||||
.Os BSD 4
|
||||
.Sh 名称
|
||||
.Nm sched_yield
|
||||
.Nd プロセッサを明け渡す
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sched.h>
|
||||
.Ft int
|
||||
|
@ -48,9 +50,10 @@
|
|||
処理に失敗すると、
|
||||
.Va errno
|
||||
に対応する値を設定します。
|
||||
.Bl -tag -width [EFAULT]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOSYS
|
||||
システムがこの機能をサポートするように構成されていません。
|
||||
.El
|
||||
.Sh 規格
|
||||
.Fn sched_yield
|
||||
関数は
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)select.2 8.2 (Berkeley) 3/25/94
|
||||
.\" %FreeBSD: src/lib/libc/sys/select.2,v 1.14.2.1 2000/04/22 17:07:04 phantom Exp %
|
||||
.\"
|
||||
.Dd March 25, 1994
|
||||
.Dt SELECT 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm select
|
||||
.Nd 同期的な入出力の多重化
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/time.h>
|
||||
|
@ -57,7 +60,7 @@
|
|||
でアドレスを渡された入出力記述子集合を調べ、
|
||||
それらの記述子のいくつかがそれぞれ、読取り準備完了であるか、
|
||||
書込み準備完了であるか、または保留されている例外条件があるかを調べます。
|
||||
検出できる唯一の例外条件はソケット上に受信した帯外のデータです。
|
||||
検出可能な唯一の例外条件は、ソケット上に受信した帯外のデータです。
|
||||
最初の
|
||||
.Fa nfds
|
||||
個の記述子が各集合内でチェックされます。すなわち、記述子集合中の
|
||||
|
@ -102,14 +105,18 @@
|
|||
.Pp
|
||||
.Fa timeout
|
||||
が、非 nil
|
||||
のポインタである場合、それはセレクションが完了するのを
|
||||
待機する最大インターバルを指定します。
|
||||
のポインタである場合、それはセレクションの完了を
|
||||
待つ最大インターバルを指定します。
|
||||
システムの活動性が、このインターバルを不定時間延長する
|
||||
ことがあります。
|
||||
.Pp
|
||||
.Fa timeout
|
||||
が
|
||||
nil
|
||||
ポインタの場合、
|
||||
.Fn select
|
||||
は無限にブロックします。
|
||||
.Pp
|
||||
ポーリングのためには、
|
||||
.Fa timeout
|
||||
引数が非
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" (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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/semctl.2,v 1.9.2.2 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd September 12, 1995
|
||||
.Dt SEMCTL 2
|
||||
|
@ -31,6 +31,8 @@
|
|||
.Sh 名称
|
||||
.Nm semctl
|
||||
.Nd セマフォ集合に対する操作を制御する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/ipc.h>
|
||||
|
@ -40,10 +42,10 @@
|
|||
.Sh 解説
|
||||
.Fn semctl
|
||||
は、
|
||||
.Fa semid
|
||||
で示されるセマフォ集合に対して
|
||||
.Fa cmd
|
||||
が示す操作を実行します。
|
||||
が示す操作を
|
||||
.Fa semid
|
||||
で示されるセマフォ集合に対して実行します。
|
||||
ある値の
|
||||
.Fa cmd
|
||||
に対しては、4 番目の引数
|
||||
|
@ -75,7 +77,7 @@ union semun {
|
|||
.Fa "struct semid_ds"
|
||||
を取得し、
|
||||
.Fa arg.buf
|
||||
が指すメモリ内に保存します。
|
||||
が指すメモリに保存します。
|
||||
.It Dv IPC_SET
|
||||
セマフォ集合の
|
||||
.Fa "struct semid_ds"
|
||||
|
@ -95,7 +97,7 @@ union semun {
|
|||
またはスーパユーザ特権を持っている必要があります。
|
||||
.It IPC_RMID
|
||||
セマフォ集合をただちにシステムから削除します。
|
||||
呼び出し元プロセスの実効ユーザ ID はセマフォ集合の
|
||||
呼び出し元プロセスの実効ユーザ ID がセマフォ集合の
|
||||
.Fa sem_perm.uid
|
||||
または
|
||||
.Fa sem_perm.cuid
|
||||
|
@ -122,8 +124,7 @@ union semun {
|
|||
.It Dv GETZCNT
|
||||
セマフォ番号
|
||||
.Fa semnum
|
||||
の値が
|
||||
0 になるのを待機しているプロセスの数を返します。
|
||||
の値が 0 になるのを待っているプロセスの数を返します。
|
||||
.It Dv GETALL
|
||||
集合内のすべてのセマフォの値を
|
||||
.Fa arg.array
|
||||
|
@ -180,6 +181,7 @@ struct semid_ds {
|
|||
.It Bq Er EACCES
|
||||
操作とセマフォ集合のモードの間に不一致があったために
|
||||
パーミッションが拒否されました。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr semget 2 ,
|
||||
.Xr semop 2
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" (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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/semget.2,v 1.7.2.2 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd September 12, 1995
|
||||
.Dt SEMGET 2
|
||||
|
@ -31,6 +31,8 @@
|
|||
.Sh 名称
|
||||
.Nm semget
|
||||
.Nd セマフォ ID を取得する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/ipc.h>
|
||||
|
@ -134,8 +136,8 @@ IPC_EXCL
|
|||
.Fa key
|
||||
に対応するセマフォ集合が既に存在します。
|
||||
.It Bq Er EINVAL
|
||||
システムが課している集合単位の最大値を、要求されたセマフォの数が
|
||||
超過しています。
|
||||
要求されたセマフォの数が、
|
||||
システムが集合単位で課している最大値を超過しています。
|
||||
.It Bq Er ENOSPC
|
||||
利用可能なセマフォが不足しています。
|
||||
.It Bq Er ENOSPC
|
||||
|
@ -147,6 +149,7 @@ IPC_EXCL
|
|||
に対応するセマフォ集合が見つからず、その際に
|
||||
IPC_CREAT
|
||||
が指定されていませんでした。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr semctl 2 ,
|
||||
.Xr semop 2 ,
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" (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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/semop.2,v 1.7.2.3 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.\" WORD: atomic 不可分な [POSIX]
|
||||
.\" WORD: adjust on exit 終了時調整
|
||||
|
@ -33,6 +33,8 @@
|
|||
.Sh 名称
|
||||
.Nm semop
|
||||
.Nd セマフォ集合に対する不可分な操作の配列
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/ipc.h>
|
||||
|
@ -130,7 +132,7 @@ IPC_NOWAIT
|
|||
を指定した場合、
|
||||
.Fn semop
|
||||
は戻り値
|
||||
EAGAIN
|
||||
.Er EAGAIN
|
||||
でただちに復帰します。
|
||||
.It
|
||||
.Fn semctl
|
||||
|
@ -139,7 +141,7 @@ IPC_RMID
|
|||
オプションを用いて、他のプロセスがセマフォを削除してしまった場合、
|
||||
.Fn semop
|
||||
は戻り値
|
||||
EINVAL
|
||||
.Er EINVAL
|
||||
でただちに復帰します。
|
||||
.It
|
||||
それ以外の場合、セマフォの値が
|
||||
|
@ -208,6 +210,7 @@ IPC_NOWAIT
|
|||
.\"
|
||||
.Fa sem_num
|
||||
が集合に対する有効なセマフォの範囲内にありませんでした。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr semctl 2 ,
|
||||
.Xr semget 2
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/send.2,v 1.10.2.1 2000/04/22 17:07:05 phantom Exp %
|
||||
.\"
|
||||
.Dd February 15, 1995
|
||||
.Dt SEND 2
|
||||
|
@ -40,13 +40,15 @@
|
|||
.Nm sendto ,
|
||||
.Nm sendmsg
|
||||
.Nd ソケットからメッセージを送信する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.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"
|
||||
.Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen"
|
||||
.Ft ssize_t
|
||||
.Fn sendmsg "int s" "const struct msghdr *msg" "int flags"
|
||||
.Sh 解説
|
||||
|
@ -94,7 +96,7 @@
|
|||
.Bd -literal
|
||||
#define MSG_OOB 0x1 /* 帯域外データを処理する */
|
||||
#define MSG_PEEK 0x2 /* 着信メッセージを覗く */
|
||||
#define MSG_DONTROUTE 0x4 /* ルーティングをバイパス、インタフェースを直接使用する */
|
||||
#define MSG_DONTROUTE 0x4 /* ルーティングをバイパスし、インタフェースを直接使用する */
|
||||
#define MSG_EOR 0x8 /* このデータでレコードを終了する */
|
||||
#define MSG_EOF 0x100 /* このデータでトランザクションを終了する */
|
||||
.Ed
|
||||
|
@ -197,6 +199,6 @@
|
|||
.Xr write 2
|
||||
.Sh 歴史
|
||||
.Fn send
|
||||
関数呼出しは
|
||||
関数呼び出しは
|
||||
.Bx 4.2
|
||||
で登場しました。
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/sendfile.2,v 1.6.2.3 2000/12/08 13:49:32 ru Exp %
|
||||
.\"
|
||||
.Dd November 5, 1998
|
||||
.Dt SENDFILE 2
|
||||
|
@ -31,6 +31,8 @@
|
|||
.Sh 名称
|
||||
.Nm sendfile
|
||||
.Nd ファイルをソケットに送信
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/socket.h>
|
||||
|
@ -49,7 +51,7 @@
|
|||
引数はファイルのどこから開始すべきかを指定します。
|
||||
.Fa nbytes
|
||||
引数は、ファイルの何バイトを送信する必要があるかを指定します。 0 は、
|
||||
ファイル終了に到達するまで送信という特殊な意味を持ちます。
|
||||
ファイルの終わりに到達するまで送信という特殊な意味を持ちます。
|
||||
.Pp
|
||||
オプションのヘッダまたはトレーラ、またはその両方は、構造体 sf_hdtr を
|
||||
指すポインタを指定することによってファイルの前と後で送信できます。
|
||||
|
@ -70,7 +72,8 @@ struct sf_hdtr {
|
|||
ポインタは、 NULL でない場合に構造体 iovec 構造の配列を
|
||||
指します。 iovec 構造体の詳細については、
|
||||
.Fn writev
|
||||
システムコールを参照してください。これらの配列内の iovecs の数は、
|
||||
システムコールを参照してください。
|
||||
これらの配列内の iovecs の数は、
|
||||
.Fa hdr_cnt
|
||||
と
|
||||
.Fa trl_cnt
|
||||
|
@ -85,17 +88,47 @@ NULL
|
|||
.Pp
|
||||
非ブロッキング入出力用に指定されたソケットを使用するときに、
|
||||
.Fn sendfile
|
||||
は要求されたよりも少ないバイトを送信することがあります。この場合、正常に
|
||||
書込まれたバイト数が
|
||||
は要求されたよりも少ないバイトを送信することがあります。
|
||||
この場合、正常に書込まれたバイト数が
|
||||
.Fa *sbytes
|
||||
(指定されている場合) に返され、エラー
|
||||
.Er EAGAIN
|
||||
が返されます。
|
||||
.Sh 実装上の注釈
|
||||
.Pp
|
||||
.Fn sendfile
|
||||
の FreeBSD での実装は「0 コピー」です。すなわち、ファイルデータのコピー
|
||||
の
|
||||
.Fx
|
||||
での実装は「0 コピー」です。すなわち、ファイルデータのコピー
|
||||
が回避されるように最適化されています。
|
||||
.Pp
|
||||
非スレッドライブラリでは、
|
||||
.Fn sendfile
|
||||
は
|
||||
.Va sendfile
|
||||
システムコールとして実装されています。
|
||||
.Pp
|
||||
スレッドライブラリでは、
|
||||
.Va sendfile
|
||||
システムコールは
|
||||
.Fn _thread_sys_sendfile
|
||||
にアセンブルされ、
|
||||
.Fn sendfile
|
||||
は読取り用に
|
||||
.Fa fd
|
||||
、書込み用に
|
||||
.Fa s
|
||||
をロックしてから
|
||||
.Fn _thread_sys_sendfile
|
||||
を呼び出す関数として実装されています。
|
||||
.Fn _thread_sys_sendfile
|
||||
の呼び出しがブロックする場合は、コンテキストスイッチが実行されます。
|
||||
戻る前に、
|
||||
.Fn sendfile
|
||||
は
|
||||
.Fa fd
|
||||
と
|
||||
.Fa s
|
||||
をアンロックします。
|
||||
.Sh 戻り値
|
||||
正常に完了すると、
|
||||
.Fn sendfile
|
||||
|
|
|
@ -30,13 +30,16 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)setgroups.2 8.2 (Berkeley) 4/16/94
|
||||
.\" %FreeBSD: src/lib/libc/sys/setgroups.2,v 1.4.2.1 2000/04/22 17:07:05 phantom Exp %
|
||||
.\"
|
||||
.Dd April 16, 1994
|
||||
.Dt SETGROUPS 2
|
||||
.Os BSD 4.2
|
||||
.Sh 名称
|
||||
.Nm setgroups
|
||||
.Nd グループ アクセス リストを設定する
|
||||
.Nd グループアクセスリストを設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/param.h>
|
||||
.Fd #include <unistd.h>
|
||||
|
@ -66,7 +69,7 @@
|
|||
呼び出しは次の場合に処理に失敗します。
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出し側がスーパユーザではありません。
|
||||
スーパユーザ以外のユーザによって呼び出されました。
|
||||
.It Bq Er EFAULT
|
||||
.Fa gidset
|
||||
に指定されたアドレスは、
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)setpgid.2 8.1 (Berkeley) 6/4/93
|
||||
.\" %FreeBSD: src/lib/libc/sys/setpgid.2,v 1.5.2.3 2000/08/23 00:45:19 jhb Exp %
|
||||
.\"
|
||||
.Dd June 4, 1993
|
||||
.Dt SETPGID 2
|
||||
|
@ -37,7 +38,9 @@
|
|||
.Sh 名称
|
||||
.Nm setpgid ,
|
||||
.Nm setpgrp
|
||||
.Nd プロセス グループを設定する
|
||||
.Nd プロセスグループを設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -46,16 +49,16 @@
|
|||
.Fn setpgrp "pid_t pid" "pid_t pgrp"
|
||||
.Sh 解説
|
||||
.Fn setpgid
|
||||
は、指定された
|
||||
.Ar pid
|
||||
プロセスのプロセスグループを指定された
|
||||
は、指定されたプロセス
|
||||
.Fa pid
|
||||
のプロセスグループを指定された
|
||||
.Ar pgrp
|
||||
に設定します。
|
||||
.Ar pid
|
||||
.Fa pid
|
||||
が 0 の場合、呼び出しは現在のプロセスに適用されます。
|
||||
.Pp
|
||||
起動側がスーパユーザでない場合、影響を受けるプロセスは、起動側と同じ
|
||||
実効ユーザ ID を持っているか、または起動プロセスの子孫である必要が
|
||||
呼び出し側がスーパユーザでない場合、影響を受けるプロセスは、呼び出し側と同じ
|
||||
実効ユーザ ID を持っているか、または呼び出し側プロセスの子孫である必要が
|
||||
あります。
|
||||
.Sh 戻り値
|
||||
.Fn setpgid
|
||||
|
@ -66,7 +69,7 @@
|
|||
.Sh エラー
|
||||
.Fn setpgid
|
||||
は、次の場合に処理を失敗し、プロセスグループは変更されません。
|
||||
.Bl -tag -width indent
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ESRCH
|
||||
要求されたプロセスが存在しません。
|
||||
.It Bq Er EPERM
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)setregid.2 8.2 (Berkeley) 4/16/94
|
||||
.\" %FreeBSD: src/lib/libc/sys/setregid.2,v 1.6.2.2 2000/05/06 13:34:14 phantom Exp %
|
||||
.\"
|
||||
.Dd April 16, 1994
|
||||
.Dt SETREGID 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm setregid
|
||||
.Nd 実グループ ID と実効グループ ID を設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -44,21 +47,21 @@
|
|||
.Sh 解説
|
||||
現在のプロセスの実グループ ID と実効グループ ID を引数で
|
||||
指定されたように設定します。
|
||||
特権のないユーザは、実グループ ID を実効グループ ID に、そして
|
||||
実効グループ ID を実グループ ID に変更できます。スーパユーザだけが
|
||||
他の変更を行えます。
|
||||
特権のないユーザは、実グループ ID をその実効グループ ID に、または
|
||||
実効グループ ID をその実グループ ID に変更できます。スーパユーザだけが
|
||||
その他の変更を行えます。
|
||||
.Pp
|
||||
実グループ ID と実効グループ ID のどちらかに値 -1 を指定す
|
||||
ると、システムは -1 パラメータの代わりに現在の ID で置き換えます。
|
||||
.Pp
|
||||
.Fn setregid
|
||||
関数は、 set-group-ID プログラム内の実グループ ID と実効グループ ID を
|
||||
スワップし、 set-group-ID 値を一時的に放棄できるように作られました。
|
||||
この関数は正しく機能せず、その目的のためには今では
|
||||
スワップし、 set-group-ID 値を一時的に放棄できるようにするために作られました。
|
||||
この関数は正しく機能せず、その目的は、今では
|
||||
.Fn setegid
|
||||
関数 (
|
||||
.Xr setuid 2
|
||||
を参照 ) の使用によってより良く達成できます。
|
||||
を参照 ) を使用するとより良く達成できます。
|
||||
.Pp
|
||||
実グループ ID と実効グループ ID を同じ値に設定するときは、
|
||||
標準の
|
||||
|
@ -70,9 +73,9 @@
|
|||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Bl -tag -width [EPERM]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
現在のプロセスがスーパユーザでなく、実効グループ ID を実グループ ID に
|
||||
現在のプロセスがスーパユーザでなく、その実効グループ ID をその実グループ ID に
|
||||
変更する以外の変更が指定されました。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)setreuid.2 8.2 (Berkeley) 4/16/94
|
||||
.\" %FreeBSD: src/lib/libc/sys/setreuid.2,v 1.6.2.2 2000/05/06 13:34:14 phantom Exp %
|
||||
.\"
|
||||
.Dd April 16, 1994
|
||||
.Dt SETREUID 2
|
||||
|
@ -37,27 +38,30 @@
|
|||
.Sh 名称
|
||||
.Nm setreuid
|
||||
.Nd 実ユーザ ID と実効ユーザ ID を設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
.Fn setreuid "uid_t ruid" "uid_t euid"
|
||||
.Sh 解説
|
||||
現在のプロセスの実ユーザ ID と実効ユーザ ID が引数に従って設定されます。
|
||||
現在のプロセスの実ユーザ ID と実効ユーザ ID が引数に従って設定
|
||||
されます。
|
||||
.Fa ruid
|
||||
または
|
||||
.Fa euid
|
||||
が -1 の場合、現在の uid がシステムによって入れられます。特権のない
|
||||
ユーザは、実ユーザ ID を実効ユーザ ID に、および実効ユーザ ID を
|
||||
実ユーザ ID に変更できます。スーパユーザだけが他の変更を行えます。
|
||||
が -1 の場合、現在の uid が指定されたことになります。特権のない
|
||||
ユーザは、実ユーザ ID をその実効ユーザ ID に、または実効ユーザ ID を
|
||||
その実ユーザ ID に変更できます。スーパユーザだけがその他の変更を行えます。
|
||||
.Pp
|
||||
.Fn setreuid
|
||||
関数は set-user-ID プログラム内で実ユーザ ID と実効ユーザ ID を
|
||||
スワップし、 set-user-ID の値を一時的に放棄するように使われてきました。
|
||||
スワップし、 set-user-ID の値を一時的に放棄するために使われてきました。
|
||||
この目的は、現在では
|
||||
.Fn seteuid
|
||||
関数 (
|
||||
.Xr setuid 2
|
||||
を参照 ) の使用によってより良く達成できます。
|
||||
を参照 ) を使用するとより良く達成できます。
|
||||
.Pp
|
||||
実ユーザ ID と実効ユーザ ID を同じ値に設定するときは、標準の
|
||||
.Fn setuid
|
||||
|
@ -68,7 +72,7 @@
|
|||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Bl -tag -width [EPERM]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
現在のプロセスがスーパユーザでなく、実効ユーザ ID を実ユーザ ID に
|
||||
変更する以外の変更が指定されました。
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)setsid.2 8.1 (Berkeley) 6/4/93
|
||||
.\" %FreeBSD: src/lib/libc/sys/setsid.2,v 1.10.2.1 2000/04/22 17:07:06 phantom Exp %
|
||||
.\"
|
||||
.Dd June 4, 1993
|
||||
.Dt SETSID 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm setsid
|
||||
.Nd セッションを作成しプロセスグループ ID を設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft pid_t
|
||||
|
@ -63,7 +66,7 @@
|
|||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出しプロセスが既にプロセスグループリーダであるか、
|
||||
または呼び出しプロセス以外のプロセスグループ ID が
|
||||
または呼び出しプロセス以外のプロセスのプロセスグループ ID が
|
||||
呼び出しプロセスのプロセス ID と一致します。
|
||||
.Sh 関連項目
|
||||
.Xr setpgid 2 ,
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/setuid.2,v 1.13.2.1 2000/04/22 17:07:06 phantom Exp %
|
||||
.\"
|
||||
.Dd June 4, 1993
|
||||
.Dt SETUID 2
|
||||
|
@ -41,6 +41,8 @@
|
|||
.Nm setgid ,
|
||||
.Nm setegid ,
|
||||
.Nd ユーザ ID とグループ ID を設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <unistd.h>
|
||||
|
@ -55,7 +57,7 @@
|
|||
.Sh 解説
|
||||
.Fn setuid
|
||||
関数は、現在のプロセスの実ユーザ ID と実効ユーザ ID と
|
||||
現在のプロセスの保存された set-user-ID を指定した値に設定します。
|
||||
退避グループ ID を指定した値に設定します。
|
||||
.\" Comment out next block for !_POSIX_SAVED_IDS
|
||||
.\" The real user ID and the saved set-user-ID are changed only if the
|
||||
.\" effective user ID is that of the super user.
|
||||
|
@ -68,14 +70,14 @@
|
|||
.Fn setuid
|
||||
関数が許容されるのは、指定の ID がプロセスの実ユーザ 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 を指定した値に設定します。
|
||||
退避グループ 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.
|
||||
|
@ -88,7 +90,7 @@
|
|||
.Fn setgid
|
||||
関数が許容されるのは、指定の ID がプロセスの実グループ 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.
|
||||
|
@ -96,24 +98,24 @@
|
|||
.Fn seteuid
|
||||
関数
|
||||
.Pq Fn setegid
|
||||
は、現在のプロセスの実効ユーザ ( グループ ID ) を設定します。
|
||||
は、現在のプロセスの実効ユーザ (グループ ID) を設定します。
|
||||
実効ユーザ ID は実ユーザ ID
|
||||
または現在のプロセスの保存された set-user-ID (
|
||||
または退避ユーザ ID (
|
||||
.Xr intro 2
|
||||
と
|
||||
.Xr execve 2
|
||||
を参照 ) の値に設定できます。これを利用し、
|
||||
set-user-ID 実行可能ファイルの実効ユーザ ID を、実ユーザ ID に切り替え、
|
||||
次に set-user-ID 値に戻ることによって再有効化して切り替えることできます。
|
||||
set-user-ID 実行可能ファイルの実効ユーザ ID を実ユーザ ID に切り替えた後に、
|
||||
set-user-ID 値に戻ることで、元の権限を得ることができます。
|
||||
同じように、実効グループ ID は、
|
||||
実グループ ID または保存された set-user-ID の値に設定できます。
|
||||
実グループ ID または退避ユーザ ID の値に設定できます。
|
||||
.Pp
|
||||
.Sh 戻り値
|
||||
正常に完了すると、これらの関数は 0 を返します。
|
||||
そうでない場合は、-1 が返されます。
|
||||
.Pp
|
||||
ユーザがスーパユーザでない場合、または指定された uid が実 ID 、
|
||||
実効 ID 、または保存された ID でない場合、これらの関数は -1 を返します。
|
||||
ユーザがスーパユーザでない場合、または指定された uid がその実 ID 、
|
||||
実効 ID 、または退避 ID でない場合、これらの関数は -1 を返します。
|
||||
.Sh 関連項目
|
||||
.Xr getgid 2 ,
|
||||
.Xr getuid 2 ,
|
||||
|
@ -137,7 +139,8 @@ set-user-ID
|
|||
.Li _POSIX_SAVED_IDS
|
||||
の
|
||||
.Tn POSIX
|
||||
コンセプトを基礎にして拡張してあり、規格の将来の改定用に提案されています。
|
||||
コンセプトを基礎にして拡張してあり、規格の将来の改定用に提案されて
|
||||
います。
|
||||
.Sh 歴史
|
||||
.Fn setuid
|
||||
関数呼び出しと
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" (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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/shmat.2,v 1.8.2.2 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd August 2, 1995
|
||||
.Dt SHMAT 2
|
||||
|
@ -32,6 +32,8 @@
|
|||
.Nm shmat ,
|
||||
.Nm shmdt
|
||||
.Nd 共有メモリをアタッチまたはデタッチする
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <machine/param.h>
|
||||
.Fd #include <sys/types.h>
|
||||
|
@ -45,8 +47,9 @@
|
|||
.Fn shmat
|
||||
は、
|
||||
.Fa shmid
|
||||
によって識別された共有メモリセグメントを呼び出しプロセスのアドレス空間に
|
||||
アタッチします。セグメントがアタッチされるアドレスは次のように決定されます。
|
||||
によって識別された共有メモリセグメントを呼び出しプロセスの
|
||||
アドレス空間にアタッチします。セグメントがアタッチされる
|
||||
アドレスは次のように決定されます。
|
||||
.\"
|
||||
.\" These are cribbed almost exactly from Stevens, _Advanced Programming in
|
||||
.\" the UNIX Environment_.
|
||||
|
@ -103,6 +106,7 @@
|
|||
.It Bq Er EINVAL
|
||||
.Fa addr
|
||||
は共有メモリセグメントを指していません。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr shmctl 2 ,
|
||||
.Xr shmget 2
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" (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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/shmctl.2,v 1.9.2.2 2000/12/29 14:44:53 ru Exp %
|
||||
.\"
|
||||
.Dd July 17, 1995
|
||||
.Dt SHMCTL 2
|
||||
|
@ -31,6 +31,8 @@
|
|||
.Sh 名称
|
||||
.Nm shmctl
|
||||
.Nd 共有メモリ制御
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <machine/param.h>
|
||||
.Fd #include <sys/types.h>
|
||||
|
@ -61,22 +63,23 @@
|
|||
.Fa shm_perm.mode
|
||||
の各メンバを
|
||||
.Fa buf
|
||||
に指された構造体のメンバに変更します。
|
||||
で指された構造体のメンバに変更します。
|
||||
呼び出しプロセスの実効ユーザ ID は、
|
||||
.Fa shm_perm.uid
|
||||
または
|
||||
.Fa shm_perm.cuid
|
||||
のどちらかと一致、またはスーパユーザ特権を持っている必要があります。
|
||||
のどちらかと一致するか、またはスーパユーザ特権を持っている
|
||||
必要があります。
|
||||
.It Dv IPC_RMID
|
||||
システムからセグメントを除去します。セグメントにアタッチしたすべての
|
||||
プロセスが終了するまで、除去は有効になりません。しかし、いったん
|
||||
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.
|
||||
|
@ -93,7 +96,7 @@ IPC_RMID
|
|||
.\"
|
||||
.Bd -literal
|
||||
struct shmid_ds {
|
||||
struct ipc_perm shm_perm; /* 操作パーミッション構造 */
|
||||
struct ipc_perm shm_perm; /* 操作パーミッション構造体 */
|
||||
int shm_segsz; /* セグメントのサイズ (バイト単位) */
|
||||
pid_t shm_lpid; /* 最後の共有メモリ操作のプロセス ID */
|
||||
pid_t shm_cpid; /* 作成者のプロセス ID */
|
||||
|
@ -101,7 +104,7 @@ struct shmid_ds {
|
|||
time_t shm_atime; /* 最後の shmat() の時刻 */
|
||||
time_t shm_dtime; /* 最後の shmdt() の時刻 */
|
||||
time_t shm_ctime; /* shmctl() による最後の変更の時刻 */
|
||||
void *shm_internal; /* システムのミス */
|
||||
void *shm_internal; /* SystemV の愚行 */
|
||||
};
|
||||
.Ed
|
||||
.Sh 戻り値
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
.\" (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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/shmget.2,v 1.8.2.2 2000/12/29 14:44:54 ru Exp %
|
||||
.\"
|
||||
.Dd July 3, 1995
|
||||
.Dt SHMGET 2
|
||||
|
@ -31,6 +31,8 @@
|
|||
.Sh 名称
|
||||
.Nm shmget
|
||||
.Nd 共有メモリの識別子の取得
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <machine/param.h>
|
||||
.Fd #include <sys/types.h>
|
||||
|
@ -44,7 +46,7 @@
|
|||
.Fa key
|
||||
と
|
||||
.Fa flag
|
||||
の値に従って、新しく作成した、
|
||||
の値に従って、新しく作成した共有メモリセグメント
|
||||
または既存の共有メモリセグメントの識別子を戻します。
|
||||
.\"
|
||||
.\" The following bit about keys and modes also applies to semaphores
|
||||
|
@ -72,7 +74,7 @@ IPC_PRIVATE
|
|||
新しく作成された IPC オブジェクトのモードは、
|
||||
.Fa flag
|
||||
パラメータに渡す以下の定数の論理和で決まります。
|
||||
.Bl -tag -width XSHMLWXX6XXX
|
||||
.Bl -tag -width XSHM_WXX6XXX
|
||||
.It Dv SHM_R
|
||||
ユーザの読取りアクセス
|
||||
.It SHM_W
|
||||
|
@ -96,8 +98,8 @@ IPC_PRIVATE
|
|||
新しい共有メモリセグメントを作成する場合、
|
||||
.Fa size
|
||||
は、新しいセグメントのバイト単位のサイズを表わします。
|
||||
セグメントのサイズは、カーネルに便利なように倍数に
|
||||
切り上げられることがあります (ページサイズなど)。
|
||||
セグメントのサイズは、カーネルに便利なようにある倍数に
|
||||
切り上げられることがあります (すなわちページサイズ)。
|
||||
.Sh 戻り値
|
||||
処理が正常に完了すると、
|
||||
.Fn shmget
|
||||
|
@ -125,7 +127,7 @@ IPC_PRIVATE
|
|||
IPC_CREAT と IPC_EXCL が指定され、
|
||||
.Fa key
|
||||
に対応する共有メモリセグメントがすでに存在します。
|
||||
.Pp
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr shmat 2 ,
|
||||
.Xr shmctl 2 ,
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)shutdown.2 8.1 (Berkeley) 6/4/93
|
||||
.\" %FreeBSD: src/lib/libc/sys/shutdown.2,v 1.7.2.3 2000/08/23 00:56:03 jhb Exp %
|
||||
.\"
|
||||
.Dd June 4, 1993
|
||||
.Dt SHUTDOWN 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm shutdown
|
||||
.Nd 全二重接続の一部をシャットダウン
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/socket.h>
|
||||
|
@ -63,8 +66,8 @@
|
|||
呼び出しが成功すると 0 が返されます。
|
||||
エラーが発生した場合は -1 が返されます。
|
||||
.Sh エラー
|
||||
以下の場合、呼び出しはエラーになります。
|
||||
.Bl -tag -width ENOTCONNAA
|
||||
次の場合、呼び出しはエラーになります。
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa s
|
||||
が有効な記述子ではありません。
|
||||
|
@ -86,7 +89,7 @@
|
|||
.Fn shutdown
|
||||
関数呼び出しは、
|
||||
.Bx 4.2
|
||||
に追加されました。
|
||||
で追加されました。
|
||||
.Dv SHUT_
|
||||
定数は、
|
||||
.St -p1003.1g
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/sigaction.2,v 1.22.2.5 2000/12/29 14:44:54 ru Exp %
|
||||
.\"
|
||||
.\" 2001/01/01 horikawa@jp.FreeBSD.org
|
||||
.\" sigvec.2 を更新する場合は、共通部分の多い sigaction.2 も同時に更新
|
||||
|
@ -42,13 +42,23 @@
|
|||
.Sh 名称
|
||||
.Nm sigaction
|
||||
.Nd ソフトウェアシグナル機能
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <signal.h>
|
||||
.Bd -literal
|
||||
struct sigaction {
|
||||
void (*sa_handler)(); /* シグナルハンドラ */
|
||||
sigset_t sa_mask; /* 適用するシグナルマスク */
|
||||
int sa_flags; /* 後述のシグナルオプションを参照 */
|
||||
/*
|
||||
* SA_SIGINFO フラグが使用されていない場合の
|
||||
* SIG_DFL および SIG_IGN 用のシグナルハンドラ関数
|
||||
*/
|
||||
void (*sa_handler)(int);
|
||||
|
||||
/* SA_SIGINFO フラグを使用する場合のシグナルハンドラ関数 */
|
||||
void (*sa_sigaction)(int, siginfo_t *, void *);
|
||||
|
||||
sigset_t sa_mask; /* 適用するシグナルマスク */
|
||||
int sa_flags; /* 後述のシグナルオプション参照 */
|
||||
};
|
||||
.Ed
|
||||
.Ft int
|
||||
|
@ -75,10 +85,10 @@ struct sigaction {
|
|||
されるまで延期されます。
|
||||
配信時に取るアクションは、配信時に決まります。通常の場合は、
|
||||
シグナルハンドラが、プロセスの現行スタックで動作します。
|
||||
これはハンドラによって変更可能であり、
|
||||
これはハンドラごとに変更可能であり、
|
||||
変更すれば、シグナルは特殊な
|
||||
.Em シグナルスタック
|
||||
でハンドル可能です。
|
||||
で実行可能です。
|
||||
.Pp
|
||||
通常の場合、シグナルルーチンは、呼び出しの原因となったシグナルが
|
||||
ブロックされた状態で動作しますが、その他のシグナルが発生する可能性は
|
||||
|
@ -91,14 +101,14 @@ struct sigaction {
|
|||
が呼び出された場合、またはシグナルがプロセスに配信された場合に、
|
||||
シグナルマスクは変更されます。
|
||||
.Pp
|
||||
シグナル条件がプロセスで発生すると、シグナルが、プロセスで保留に
|
||||
なっているシグナルの集合に追加されます。
|
||||
あるシグナルの生起条件がプロセスで発生すると、そのシグナルが、
|
||||
プロセスで保留中のシグナルの集合に追加されます。
|
||||
そのシグナルがプロセスで
|
||||
現在
|
||||
.Em ブロック
|
||||
されていない場合は、プロセスに配信されます。
|
||||
シグナルは、
|
||||
プロセスがオペレーティングシステムに入ったときに (システム呼び出し、
|
||||
プロセスがオペレーティングシステムに入っている間に (システム呼び出し、
|
||||
ページエラーやトラップ、クロック割込み中などに) 配信されます。
|
||||
複数のシグナルの配信準備が同時に整った場合は、トラップで生じたシグナルが
|
||||
先に配信されます。
|
||||
|
@ -107,17 +117,17 @@ struct sigaction {
|
|||
保留になっているシグナルの集合は、
|
||||
.Xr sigpending 2
|
||||
関数で返されます。
|
||||
補足されたシグナルが配信されると、プロセスの現在の
|
||||
捕捉されたシグナルが配信されると、プロセスの現在の
|
||||
状態が保存され、新しいシグナルマスクが以下で説明するように算出されて、
|
||||
シグナルハンドラが呼び出されます。
|
||||
ハンドラの呼び出しは、
|
||||
シグナル処理ルーチンが正常に戻った場合に、プロセスがシグナル配信前の
|
||||
コンテキストで実行を再開するように編成されます。
|
||||
コンテキストで実行を再開するように設定されます。
|
||||
プロセスが別のコンテキストでの再開を望む場合は、
|
||||
前のコンテキストそのものを回復するように編成する必要があります。
|
||||
前のコンテキストそのものを自分自身で回復するように設定する必要があります。
|
||||
.Pp
|
||||
シグナルがプロセスに配信されると、プロセスの
|
||||
シグナルハンドラが続く間 (または
|
||||
シグナルハンドラの実行が続く間 (または
|
||||
.Fn sigprocmask
|
||||
が呼び出されるまで)、新しいシグナルマスクが設置されます。
|
||||
このマスクは、現在のシグナルマスク集合、配信されるシグナル、
|
||||
|
@ -134,33 +144,34 @@ struct sigaction {
|
|||
かハンドラルーチン)、および指定されたシグナルの配信時に
|
||||
使用するマスクが指定されます。
|
||||
.Fa oact
|
||||
が 0 でない場合は、シグナルの前の処理情報がユーザに返されます。
|
||||
が 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
|
||||
|
@ -178,20 +189,21 @@ struct sigaction {
|
|||
シグナルで
|
||||
.Fn sigaction
|
||||
を呼び出す場合にこのビットを設定すると、システムは、呼び出し側プロセスの
|
||||
子が終了したときにゾンビプロセスを作成しなくなります。呼び出し側プロセスが
|
||||
子プロセスが終了したときにゾンビプロセスを作成しなくなります。
|
||||
そのあと、呼び出し側プロセスが
|
||||
.Xr wait 2
|
||||
かそれに相当するものを続けて発行すると、呼び出し側プロセスのすべて
|
||||
かそれに相当する関数を実行すると、呼び出し側プロセスのすべて
|
||||
の子プロセスが終了するまでブロックし、次に
|
||||
.Va errno
|
||||
を
|
||||
.Dv ECHILD
|
||||
.Er ECHILD
|
||||
に設定して -1 を返します。
|
||||
.It Dv SA_ONSTACK
|
||||
このビットを設定すると、システムは、
|
||||
.Xr sigaltstack 2
|
||||
で指定された
|
||||
.Em シグナルスタック
|
||||
で、プロセスにシグナルを配信します。
|
||||
の上で、プロセスにシグナルを配信します。
|
||||
.It Dv SA_NODEFER
|
||||
このビットを設定すると、配信済みシグナルのさらなる発生が、
|
||||
ハンドラの実行中にマスクされなくなります。
|
||||
|
@ -199,12 +211,23 @@ struct sigaction {
|
|||
このビットを設定すると、シグナルが配信された瞬間に、ハンドラが
|
||||
.Dv SIG_DFL
|
||||
にリセットされます。
|
||||
.\" Still missing:
|
||||
.\" .It Dv SA_SIGINFO
|
||||
.It Dv SA_SIGINFO
|
||||
このビットが設定されている場合、ハンドラ関数は、
|
||||
sigaction 構造体の sa_sigaction メンバが指すものと
|
||||
見なします。ハンドラ関数は、先に示したプロトタイプもしくは後で示す
|
||||
.Sx 使用例
|
||||
に一致しなくてはなりません。
|
||||
このビットは、
|
||||
.Dv SIG_DFL
|
||||
もしくは
|
||||
.Dv SIG_IGN
|
||||
を割り当てる時には設定してはいけません。
|
||||
.El
|
||||
.Pp
|
||||
以下のリストのシステムコール中にシグナルが補足されると、呼び出しは、エラー
|
||||
.Dv EINTR
|
||||
次に挙げるシステムコールの実行中にシグナルが捕捉されると、
|
||||
そのシステムコールの呼び出しは、
|
||||
エラー
|
||||
.Er EINTR
|
||||
で強制終了されるか、要求より短いデータ転送で戻るか、
|
||||
または再開されます。
|
||||
保留中のシステムコールの再開は、
|
||||
|
@ -213,7 +236,7 @@ struct sigaction {
|
|||
.Dv SA_RESTART
|
||||
ビットを設定することで要求できます。
|
||||
影響を受けるシステムコールは、
|
||||
通信チャネルか遅いデバイス (端末など。通常ファイルではない) に対する
|
||||
通信チャネルか遅いデバイス (端末など、通常ファイルではないもの) に対する
|
||||
.Xr open 2 ,
|
||||
.Xr read 2 ,
|
||||
.Xr write 2 ,
|
||||
|
@ -224,52 +247,53 @@ struct sigaction {
|
|||
と
|
||||
.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 Sy "名称 デフォルトアクション 説明"
|
||||
.It Dv SIGHUP No " プロセスの終了" " 端末ラインのハングアップ"
|
||||
.It Dv SIGINT No " プロセスの終了" " プログラムの割込み"
|
||||
.It Dv SIGQUIT No " コアイメージの作成" " プログラムの終了"
|
||||
.It Dv SIGQUIT No " コアイメージの作成" " プログラムの中断終了"
|
||||
.It Dv SIGILL No " コアイメージの作成" " 不正な命令"
|
||||
.It Dv SIGTRAP No " コアイメージの作成" " トラップの追跡"
|
||||
.It Dv SIGABRT No " コアイメージの作成" Xr abort 3 の呼び出し (以前の
|
||||
.It Dv SIGTRAP No " コアイメージの作成" " トラップのトレース"
|
||||
.It Dv SIGABRT No " コアイメージの作成" Ta Xr abort 3
|
||||
の呼び出し (以前の
|
||||
.Dv SIGIOT )
|
||||
.It Dv SIGEMT No " コアイメージの作成" " 実行された命令のエミュレート"
|
||||
.It Dv SIGEMT No " コアイメージの作成" " 命令実行のエミュレート"
|
||||
.It Dv SIGFPE No " コアイメージの作成" " 浮動小数例外"
|
||||
.It Dv SIGKILL 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 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 " シグナルの放棄" " 記述子に "
|
||||
.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
|
||||
|
@ -287,8 +311,8 @@ struct sigaction {
|
|||
.It Dv SIGPROF No " プロセスの終了" " プロファイリングタイマアラーム (
|
||||
.Xr setitimer 2
|
||||
参照)
|
||||
.It Dv SIGWINCH No " シグナルの放棄" " ウィンドウサイズの変化"
|
||||
.It Dv SIGINFO No " シグナルの放棄" " キーボードからのステータス要求"
|
||||
.It Dv SIGWINCH No " シグナルの破棄" " ウィンドウサイズの変化"
|
||||
.It Dv SIGINFO No " シグナルの破棄" " キーボードからのステータス要求"
|
||||
.It Dv SIGUSR1 No " プロセスの終了" " ユーザ定義シグナル 1"
|
||||
.It Dv SIGUSR2 No " プロセスの終了" " ユーザ定義シグナル 2"
|
||||
.El
|
||||
|
@ -402,7 +426,8 @@ struct sigaction {
|
|||
.Pp
|
||||
上のリストに記載されていないすべての関数は、シグナルに関して安全でない
|
||||
と考えられます。
|
||||
つまり、そのような関数の動きは、シグナルハンドラから呼び出されると不定です。
|
||||
つまり、そのような関数がシグナルハンドラから呼び出されるときの動作は、
|
||||
未定義です。
|
||||
.Pp
|
||||
.Sh 戻り値
|
||||
0 は、呼び出しに問題がなかったことを表わします。
|
||||
|
@ -411,23 +436,77 @@ struct sigaction {
|
|||
がエラーの理由を示すように設定されていることを表わします。
|
||||
.Pp
|
||||
.Sh 使用例
|
||||
ハンドラルーチンは、以下のように宣言できます。
|
||||
.Bd -literal -offset indent
|
||||
void handler(sig, code, scp)
|
||||
int sig, code;
|
||||
struct sigcontext *scp;
|
||||
.Ed
|
||||
ハンドラが一致する可能性のあるプロトタイプは 3 つあります。
|
||||
.Bl -tag -offset indent -width short
|
||||
.It ANSI C:
|
||||
.Ft void
|
||||
.Fn handler int ;
|
||||
.It 伝統的な BSD スタイル:
|
||||
.Ft void
|
||||
.Fn handler int "int code" "struct sigcontext *scp" ;
|
||||
.It POSIX の SA_SIGINFO:
|
||||
.Ft void
|
||||
.Fn handler int "siginfo_t *info" "void *context" ;
|
||||
.El
|
||||
.Pp
|
||||
フラグ中で SA_SIGINFO ビットが設定されている場合、
|
||||
ハンドラ関数は SA_SIGINFO プロトタイプに一致しなくてはなりません。
|
||||
その場合、
|
||||
.Dv sigaction
|
||||
構造体の
|
||||
.Dv sa_sigaction
|
||||
メンバがハンドラ関数を指していなければなりません。
|
||||
この方法で SIG_DFL あるいは SIG_IGN を割り当ててはいけないことに
|
||||
注意してください。
|
||||
.Pp
|
||||
SA_SIGINFO フラグが設定されていない場合、ハンドラ関数は
|
||||
ANSI C もしくは伝統的な BSD プロトタイプのどちらかに
|
||||
一致しなくてはならず、
|
||||
.Dv sigaction
|
||||
構造体の
|
||||
.Dv sa_handler
|
||||
メンバがハンドラ関数をさしていなければなりません。
|
||||
実際には、
|
||||
.Fx
|
||||
は常に後者である BSD プロトタイプの 3 つの引数を送りますし、
|
||||
ANSI C プロトタイプはそのサブセットになっていますので、
|
||||
どちらでも動作します。
|
||||
.Fx
|
||||
インクルードファイルの
|
||||
.Dv sa_handler
|
||||
メンバ宣言は、(POSIX の要求に従い) ANSI C のものです。
|
||||
そのため、BSD スタイルの関数のポインタの場合、
|
||||
警告メッセージを無くしてコンパイルするには
|
||||
キャストする必要があります。
|
||||
伝統的な BSD スタイルは移植性がなく、その機能性も
|
||||
SA_SIGINFO ハンドラの完全な部分集合になっていますので、
|
||||
BSD スタイルを使うことは推奨されていません。
|
||||
.Pp
|
||||
.Fa sig
|
||||
は、ハードウェアエラーとトラップがマップされているシグナル番号です。
|
||||
引数はシグナル番号で、<signal.h> の
|
||||
.Dv SIG...
|
||||
値のうちの 1 つです。
|
||||
BSD スタイルのハンドラの
|
||||
.Fa code
|
||||
は、ハードウェアが提供する定数かコードであるパラメータです。
|
||||
引数および SA_SIGINFO ハンドラへの
|
||||
.Dv info
|
||||
引数の
|
||||
.Dv si_code
|
||||
メンバには、シグナルの発生理由を説明した数値コードが
|
||||
含まれています。通常、この数値コードは
|
||||
<sys/signal.h> にある
|
||||
.Dv SI_...
|
||||
値の 1 つであるか、もしくはシグナルに特化したコード、すなわち
|
||||
SIGFPE に対する
|
||||
.Dv FPE_...
|
||||
値です。
|
||||
BSD スタイルのハンドラの
|
||||
.Fa scp
|
||||
は、
|
||||
.Fa sigcontext
|
||||
構造体のポインタ (
|
||||
.Aq Pa signal.h
|
||||
で定義されています) で、シグナル前のコンテキストを回復するために使用されます。
|
||||
引数は sigcontext 構造体のインスタンスを指しています。
|
||||
.Pp
|
||||
POSIX SA_SIGINFO ハンドラの
|
||||
.Fa context
|
||||
引数は、ucontext_t のインスタンスを指しています。
|
||||
.Sh エラー
|
||||
以下のうち 1 つが発生すると、
|
||||
.Fn sigaction
|
||||
|
@ -455,7 +534,7 @@ struct sigcontext *scp;
|
|||
.Dv SA_ONSTACK
|
||||
フラグと
|
||||
.Dv SA_RESTART
|
||||
フラグは、
|
||||
フラグは、Berkeley の拡張機能です。
|
||||
.Dv SIGTRAP ,
|
||||
.Dv SIGEMT ,
|
||||
.Dv SIGBUS ,
|
||||
|
@ -468,10 +547,9 @@ struct sigcontext *scp;
|
|||
.Dv SIGPROF ,
|
||||
.Dv SIGWINCH ,
|
||||
.Dv SIGINFO
|
||||
シグナルと同じように、
|
||||
Berkeley の拡張機能です。これらのシグナルは、
|
||||
シグナルも同様です。これらのシグナルは、
|
||||
.Tn BSD
|
||||
から派生した、ほとんどのシステムで使用できます。
|
||||
から派生したシステムのほとんどで使用できます。
|
||||
.Dv SA_NODEFER
|
||||
フラグと
|
||||
.Dv SA_RESETHAND
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
.\" 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 %
|
||||
.\" %FreeBSD: src/lib/libc/sys/sigaltstack.2,v 1.11.2.3 2000/12/08 13:49:32 ru Exp %
|
||||
.\"
|
||||
.Dd May 1, 1995
|
||||
.Dt SIGALTSTACK 2
|
||||
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm sigaltstack
|
||||
.Nd シグナルスタックコンテキストの設定や入手
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <signal.h>
|
||||
.Bd -literal
|
||||
|
@ -79,11 +81,12 @@ struct sigaltstack {
|
|||
は -1 を戻し
|
||||
.Va errno
|
||||
を
|
||||
.Dv EINVAL
|
||||
.Er EINVAL
|
||||
に設定します。スタックが無効になると、すべてのシグナルは通常の
|
||||
ユーザスタックで動作するようになります。スタックが後で有効にると、
|
||||
代替スタックで処理するように指定されたすべてのシグナルは、
|
||||
その指定どおりに再開されます。
|
||||
.Pp
|
||||
.Fa oss
|
||||
を 0 以外にすると、現在のシグナルスタックの状態が戻されます。
|
||||
.Fa ss_flags
|
||||
|
@ -130,7 +133,7 @@ if (sigaltstack(&sigstk,0) < 0)
|
|||
以下のうち 1 つが発生すると、
|
||||
.Fn sigaltstack
|
||||
は処理を失敗し、シグナルスタックコンテキストは変更されずに残ります。
|
||||
.Bl -tag -width [ENOMEM]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
.Fa ss
|
||||
か
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)sigblock.2 8.1 (Berkeley) 6/2/93
|
||||
.\" %FreeBSD: src/lib/libc/compat-43/sigblock.2,v 1.5.2.1 2000/04/22 16:46:18 phantom Exp %
|
||||
.\"
|
||||
.Dd June 2, 1993
|
||||
.Dt SIGBLOCK 2
|
||||
|
@ -37,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm sigblock
|
||||
.Nd シグナルをブロックする
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <signal.h>
|
||||
.Ft int
|
||||
|
@ -47,11 +50,11 @@
|
|||
.Bf -symbolic
|
||||
このインタフェースは、
|
||||
.Xr sigprocmask 2
|
||||
に更新されました。
|
||||
によって旧式のものとなっています。
|
||||
.Ef
|
||||
.Pp
|
||||
.Fn sigblock
|
||||
は、現在、配信をブロックされているシグナルのセットに、
|
||||
は、現在、配信をブロックされているシグナルの集合に、
|
||||
.Fa mask
|
||||
で指定したシグナルを追加します。
|
||||
.Fa mask
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" Copyright (c) 1983, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
|
@ -11,8 +11,8 @@
|
|||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
|
@ -29,8 +29,9 @@
|
|||
.\" 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 %
|
||||
.\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93
|
||||
.\" $FreeBSD: src/lib/libc/sys/socket.2,v 1.12.2.4 2000/12/29 14:44:54 ru Exp
|
||||
$
|
||||
.\"
|
||||
.Dd November 24, 1997
|
||||
.Dt SOCKET 2
|
||||
|
@ -38,6 +39,8 @@
|
|||
.Sh 名称
|
||||
.Nm socket
|
||||
.Nd 通信のエンドポイントの作成
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/socket.h>
|
||||
|
@ -57,12 +60,42 @@
|
|||
るフォーマットは以下のとおりです。
|
||||
.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).
|
||||
PF_LOCAL PF_UNIX と呼ばれていた、ホスト内プロトコル
|
||||
PF_UNIX ホスト内プロトコル、使用は奨励されない。
|
||||
PF_LOCAL を使用のこと
|
||||
PF_INET IPv4 プロトコル
|
||||
PF_IMPLINK ARPAnet IMP アドレス
|
||||
PF_PUP BSP のような PUP プロトコル
|
||||
PF_CHAOS MIT CHAOS プロトコル
|
||||
PF_NS XNS (Xerox Network Systems) プロトコル
|
||||
PF_ISO ISO プロトコル
|
||||
PF_OSI 開放型システム間相互接続プロトコル
|
||||
(Open System Interconnection)
|
||||
PF_ECMA ヨーロッパ電子計算機工業会
|
||||
(European Computer Manufacturers)
|
||||
PF_DATAKIT データキット(Datakit)プロトコル
|
||||
PF_CCITT X.25 のような ITU-T プロトコル
|
||||
PF_SNA IBM SNA
|
||||
PF_DECnet DECnet
|
||||
PF_DLI DEC Direct / DLI (Data Link Interface) プロトコル
|
||||
PF_LAT LAT プロトコル
|
||||
PF_HYLINK NSC ハイパーチャネル
|
||||
PF_APPLETALK AppleTalk プロトコル
|
||||
PF_ROUTE 内部ルーティングプロトコル
|
||||
PF_LINK リンク層インタフェース
|
||||
PF_XTP XTP プロトコル (Xpress Transfer Protocol)
|
||||
PF_COIP コネクションオリエンテッド IP, 別名 ST II
|
||||
PF_CNT Computer Network Technology 社のプロトコル
|
||||
PF_SIP SIP プロトコル (Simple Internet Protocol)
|
||||
PF_IPX Novell 社 IPX (Intenet Packet eXchange) プロトコル
|
||||
PF_RTIP RTIP パケットの識別に使用
|
||||
PF_PIP PIP パケットの識別に使用
|
||||
PF_ISDN 統合ディジタル通信サービス網(ISDN)
|
||||
PF_KEY 内部鍵管理機能
|
||||
PF_INET6 IPv6 プロトコル
|
||||
PF_NATM ATM に直接アクセス
|
||||
PF_ATM ATM
|
||||
PF_NETGRAPH Netgraph ソケット
|
||||
.Ed
|
||||
.Pp
|
||||
ソケットには、通信の種類を指定する
|
||||
|
@ -70,12 +103,19 @@ PF_NS (Xerox Network Systems
|
|||
があります。現在、定義されているタイプは以下のとおりです。
|
||||
.Pp
|
||||
.Bd -literal -offset indent -compact
|
||||
SOCK_STREAM
|
||||
SOCK_DGRAM
|
||||
SOCK_RAW
|
||||
SOCK_SEQPACKET
|
||||
SOCK_RDM
|
||||
SOCK_STREAM ストリーム型ソケット
|
||||
SOCK_DGRAM データグラム型ソケット
|
||||
SOCK_RAW 低レベルプロトコルインタフェース
|
||||
SOCK_RDM 伝達が信頼できるパケット
|
||||
SOCK_SEQPACKET 順序付きパケットストリーム
|
||||
.Ed
|
||||
.\" 原文は
|
||||
.\" SOCK_RDM Sequenced packet stream,
|
||||
.\" SOCK_SEQPACKET Reliably-delivered packet
|
||||
.\" となっていたが、
|
||||
.\" SOCK_RDM Reliably-delivered packet
|
||||
.\" SOCK_SEQPACKET Sequenced packet stream,
|
||||
.\" に変更 。send-pr済み (docs/25797) yuko@veltec.co.jp
|
||||
.Pp
|
||||
.Dv SOCK_STREAM
|
||||
タイプは、連続した、信頼性のある、双方向接続ベースの
|
||||
|
@ -83,20 +123,21 @@ SOCK_RDM
|
|||
サポートされることもあります。
|
||||
.Dv SOCK_DGRAM
|
||||
ソケットでは、データグラム
|
||||
(コネクションレスで信頼性のない、固定最大長 (一般的には小さい) メッセージ)
|
||||
(コネクションレスで信頼性のない、最大長が固定の (一般的には小さい)
|
||||
メッセージ)
|
||||
がサポートされます。
|
||||
.Dv SOCK_SEQPACKET
|
||||
ソケットは、連続した、信頼性のある、双方向接続ベースの
|
||||
最大長のデータグラムの転送を提供します。
|
||||
最大長が固定のデータグラムの転送を提供します。
|
||||
各読取りシステムコールでパケット全体を読み取る必要があるかもしれません。
|
||||
この機能はプロトコル固有のもので、現在のところ
|
||||
.Dv PF_NS
|
||||
でしか実現されていません。
|
||||
でしか実装されていません。
|
||||
.Dv SOCK_RAW
|
||||
ソケットでは、内部ネットワークプロトコ
|
||||
ルとインタフェースにアクセスできます。スーパユーザしか使用できない
|
||||
.Dv SOCK_RAW
|
||||
タイプ、および計画されているがまだ実現されていない
|
||||
タイプ、および計画されているがまだ実装されていない
|
||||
.Dv SOCK_RDM
|
||||
については、ここでは説明しません。
|
||||
.Pp
|
||||
|
@ -106,7 +147,9 @@ SOCK_RDM
|
|||
特定ソケットタイプをサポートします。しかし、複数のプロトコルが
|
||||
存在することも可能です。この場合は、特定プロトコルをこの方法で
|
||||
指定する必要があります。使用するプロトコル番号は、
|
||||
通信を行なう通信ドメインに固有です。
|
||||
通信を行う
|
||||
.Dq 通信ドメイン
|
||||
に固有です。
|
||||
.Xr protocols 5
|
||||
を参照してください。
|
||||
.Pp
|
||||
|
@ -132,22 +175,22 @@ SOCK_RDM
|
|||
を呼び出し、接続オペレーションに乗せてデータを送信できます。)
|
||||
セッションが終了したら、
|
||||
.Xr close 2
|
||||
が実行されることがあります。帯域外データは、
|
||||
を実行しても構いません。帯域外データは、
|
||||
.Xr send 2
|
||||
で説明されているように送信し、
|
||||
.Xr recv 2
|
||||
で説明されているように受信できます。
|
||||
.Pp
|
||||
.Dv SOCK_STREAM
|
||||
の実現に使用する通信プロトコルでは、データの喪失や重複がないことが
|
||||
の実装に使用する通信プロトコルでは、データの喪失や重複がないことが
|
||||
保証されます。ピアプロトコルにバッファ空間があるデータの一部を
|
||||
合理的な時間内に問題なく転送できない場合は、
|
||||
接続が破損したとみなされて呼び出しがエラーとなり、
|
||||
-1 が戻されてグローバル変数
|
||||
.Va errno
|
||||
に
|
||||
.Dv ETIMEDOUT
|
||||
が設定されます。その他のアクティビティがない場合、
|
||||
.Er ETIMEDOUT
|
||||
が設定されます。その他の動作がない場合、
|
||||
プロトコルは約 1 分ごとに転送を強制し、ソケットの
|
||||
.Dq 接続
|
||||
を任意に維持します。一定期間 (例、5 分間)
|
||||
|
@ -158,7 +201,7 @@ SOCK_RDM
|
|||
この場合、シグナルを処理しないプロセスは終了します。
|
||||
.Pp
|
||||
.Dv SOCK_SEQPACKET
|
||||
ソケットでは、
|
||||
ソケットは、
|
||||
.Dv SOCK_STREAM
|
||||
ソケットとほぼ同じシステムコールです。
|
||||
.Xr read 2
|
||||
|
@ -170,16 +213,17 @@ SOCK_RDM
|
|||
.Dv SOCK_RAW
|
||||
ソケットでは、
|
||||
.Xr send 2
|
||||
の呼出しで指定された通信相手にデータグラムを送信できます。一般的に
|
||||
データグラムは、次のデータグラムのアドレスを戻す
|
||||
の呼び出しで指定された通信相手にデータグラムを送信できます。
|
||||
一般的にデータグラムは、次のデータグラムのアドレスを戻す
|
||||
.Xr recvfrom 2
|
||||
で受信されます。
|
||||
.Pp
|
||||
.Xr fcntl 2
|
||||
を呼び出すと、帯域外データを受信した場合の
|
||||
.Dv SIGURG
|
||||
シグナルを受信するプロセスグループを指定できます。非ブロック I/O、
|
||||
および I/O イベントの非同期通知も、
|
||||
シグナルを受信するプロセスグループを指定できます。
|
||||
非ブロッキング入出力、
|
||||
および入出力イベントの非同期通知も、
|
||||
.Dv SIGIO
|
||||
で有効にできます。
|
||||
.Pp
|
||||
|
@ -199,7 +243,7 @@ SOCK_RDM
|
|||
以下のような場合、
|
||||
.Fn socket
|
||||
の呼び出しはエラーになります。
|
||||
.Bl -tag -width EPROTONOPSUPPORTA
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPROTONOSUPPORT
|
||||
プロトコルタイプか指定されたプロトコルがドメインでサポートされていません。
|
||||
.It Bq Er EMFILE
|
||||
|
@ -222,12 +266,14 @@ SOCK_RDM
|
|||
.Xr ioctl 2 ,
|
||||
.Xr listen 2 ,
|
||||
.Xr read 2 ,
|
||||
.Xr recv 2 ,
|
||||
.Xr select 2 ,
|
||||
.Xr send 2 ,
|
||||
.Xr shutdown 2 ,
|
||||
.Xr socketpair 2 ,
|
||||
.Xr write 2 ,
|
||||
.Xr getprotoent 3 ,
|
||||
.Xr netgraph 4 ,
|
||||
.Xr protocols 5
|
||||
.Re
|
||||
.Rs
|
||||
|
@ -245,3 +291,4 @@ SOCK_RDM
|
|||
関数呼び出しは
|
||||
.Bx 4.2
|
||||
で登場しました。
|
||||
|
||||
|
|
|
@ -36,7 +36,9 @@
|
|||
.Os BSD 4
|
||||
.Sh 名称
|
||||
.Nm sync
|
||||
.Nd ディスク上のディスクブロックをメモリ上の状態と同期化する
|
||||
.Nd ファイルシステムの更新をスケジュールする
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft void
|
||||
|
@ -45,10 +47,10 @@
|
|||
.Fn sync
|
||||
関数は、ブロックバッファキャッシュの修正済み
|
||||
バッファをディスクに強制的に書き出します。カーネルは
|
||||
この情報をコアに維持し、システムが要求するディスク I/O
|
||||
この情報をメモリ上に維持し、システムが要求するディスク I/O
|
||||
転送の数を減らします。システムのクラッシュ後に
|
||||
キャッシュの情報が失われると、ユーザプロセス
|
||||
.Xr update 4
|
||||
.Xr syncer 4
|
||||
が
|
||||
.Fn sync
|
||||
を頻繁に呼び出します
|
||||
|
@ -59,7 +61,7 @@
|
|||
を使用します。
|
||||
.Sh 関連項目
|
||||
.Xr fsync 2 ,
|
||||
.Xr update 4 ,
|
||||
.Xr syncer 4 ,
|
||||
.Xr sync 8
|
||||
.Sh バグ
|
||||
.Fn sync
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
.Sh 名称
|
||||
.Nm sysarch
|
||||
.Nd アーキテクチャ依存型システムコール
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <machine/sysarch.h>
|
||||
.Ft int
|
||||
|
@ -73,4 +75,4 @@
|
|||
.Sh 歴史
|
||||
このマニュアルページは、
|
||||
.Nx
|
||||
から取られました。
|
||||
から取得されました。
|
|
@ -38,6 +38,8 @@
|
|||
.Nm syscall ,
|
||||
.Nm __syscall
|
||||
.Nd 間接的なシステムコール
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/syscall.h>
|
||||
.Fd #include <unistd.h>
|
||||
|
@ -49,7 +51,8 @@
|
|||
.Fn syscall
|
||||
は、指定した
|
||||
.Fa number
|
||||
がアセンブリ言語インタフェースにあるシステムコールを、
|
||||
を持つアセンブリ言語インタフェース
|
||||
のシステムコールを、
|
||||
指定した引数で実行します。システムコールのシンボリック定数は、
|
||||
ヘッダファイル
|
||||
.Ao Pa sys/syscall.h Ac
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Nm truncate ,
|
||||
.Nm ftruncate
|
||||
.Nd 指定した長さにファイルを切り捨てたり拡張したりする
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -46,16 +48,16 @@
|
|||
.Fn ftruncate "int fd" "off_t length"
|
||||
.Sh 解説
|
||||
.Fn truncate
|
||||
では、
|
||||
は、
|
||||
.Fa path
|
||||
で指定されるファイルか
|
||||
.Fa fd
|
||||
で参照
|
||||
されるファイルのサイズが、
|
||||
.Fa length
|
||||
バイトになるように切り捨てられたり拡張されたりします。
|
||||
バイトになるように切り捨てたり拡張します。
|
||||
ファイルがこのサイズより大きい場合は、余分なデータが失われます。
|
||||
ファイルがこのサイズより小さい場合は、0 を書き込んで拡張されます。
|
||||
ファイルがこのサイズより小さい場合は、0 が書き込まれたように拡張されます。
|
||||
.Fn ftruncate
|
||||
では、ファイルが書込み用に開いている必要があります。
|
||||
.Sh 戻り値
|
||||
|
@ -66,7 +68,7 @@
|
|||
.Sh エラー
|
||||
.Fn truncate
|
||||
は、以下のような場合に処理を失敗します。
|
||||
.Bl -tag -width [ENOTDIR]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
|
@ -85,7 +87,7 @@
|
|||
.It Bq Er EROFS
|
||||
指定されたファイルは読取り専用ファイルシステム上にあります。
|
||||
.It Bq Er ETXTBSY
|
||||
ファイルが、実行中のピュアプロシージャ (共有テキスト) ファイルになっている。
|
||||
ファイルが、実行中のピュアプロシージャ (共有テキスト) ファイルです。
|
||||
.It Bq Er EIO
|
||||
inode の更新をしている間に入出力エラーが発生しました。
|
||||
.It Bq Er EFAULT
|
||||
|
@ -95,7 +97,7 @@ inode
|
|||
.Pp
|
||||
.Fn ftruncate
|
||||
は、以下のような場合に処理を失敗します。
|
||||
.Bl -tag -width [ENOTDIR]
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa fd
|
||||
が有効な記述子ではありません。
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm umask
|
||||
.Nd ファイルモード生成マスクの設定
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/stat.h>
|
||||
.Ft mode_t
|
||||
|
@ -53,18 +55,18 @@
|
|||
.Xr mkdir 2 ,
|
||||
.Xr mkfifo 2
|
||||
などのシステムコールが使用し、ファイルモードで要求される
|
||||
対応するビットをオフに切り替えます (
|
||||
対応するビットをオフにします (
|
||||
.Xr chmod 2
|
||||
を参照) 。
|
||||
このようにビットをクリアにすると、各ユーザはファイルへの
|
||||
デフォルトアクセスを禁止できるようになります。
|
||||
ビットをクリアにすることで、各ユーザはそのファイルへの
|
||||
デフォルトアクセスを制限することができます。
|
||||
.Pp
|
||||
デフォルトのマスク値は、S_IWGRP | S_IWOTH
|
||||
(022、所有者のみの書込みアクセス) です。
|
||||
子プロセスは、呼び出しプロセスのマスクを継承します。
|
||||
.Pp
|
||||
.Sh 戻り値
|
||||
ファイルモードマスクの前の値が、呼び出しによって返されます。
|
||||
呼び出しによって、以前のファイルモードマスクの値が返されます。
|
||||
.Pp
|
||||
.Sh エラー
|
||||
.Fn umask
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm undelete
|
||||
.Nd 削除したファイルの回復
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -53,7 +55,7 @@
|
|||
ユニオンスタックの下層にあるオブジェクトが表示されるようにします。
|
||||
.Pp
|
||||
最終的に
|
||||
.Nm undelete
|
||||
.Fn undelete
|
||||
機能は、その他のログ構造ファイルシステムのような削除済みファイルを
|
||||
回復できるファイルシステムに拡張されるでしょう。
|
||||
.Sh 戻り値
|
||||
|
@ -64,7 +66,7 @@
|
|||
.Sh エラー
|
||||
.Fn undelete
|
||||
は、以下の場合にエラーとなります。
|
||||
.Bl -tag -width ENAMETOOLONGAA
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
|
@ -95,7 +97,5 @@
|
|||
.Xr unlink 2 ,
|
||||
.Xr mount_union 8
|
||||
.Sh 歴史
|
||||
.Nm undelete
|
||||
関数呼び出しは、
|
||||
.Bx 4.4-Lite
|
||||
ではじめて登場しました。
|
||||
.Fn undelete
|
||||
関数呼び出しは、4.4BSD-Lite ではじめて登場しました。
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm unlink
|
||||
.Nd ディレクトリエントリの削除
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -49,7 +51,7 @@
|
|||
で指定されたリンクをディレクトリから削除し、
|
||||
そのリンクで参照されていたファイルのリンク数を減らします。
|
||||
ファイルのリンク数が 0 になり、ファイルを開いているプロセスがなくなると、
|
||||
ファイルに関連するすべてのリソースが再生されます。
|
||||
ファイルに関連するすべてのリソースが再利用されます。
|
||||
最後のリンクが削除されたときに、ファイルを開いているプロセスが
|
||||
1 つ以上あると、リンクは削除されますが、ファイルの削除は、
|
||||
そのファイルへのすべての参照が閉じられるまで延期されます。
|
||||
|
@ -63,7 +65,7 @@
|
|||
.Sh エラー
|
||||
.Fn unlink
|
||||
は、以下の場合に処理を失敗します。
|
||||
.Bl -tag -width ENAMETOOLONGAA
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
|
|
|
@ -42,6 +42,8 @@
|
|||
.Nm lutimes ,
|
||||
.Nm futimes
|
||||
.Nd ファイルアクセス時刻と更新時刻の設定
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/time.h>
|
||||
.Ft int
|
||||
|
@ -97,7 +99,7 @@
|
|||
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||
あるいは
|
||||
.Fa times
|
||||
引数がヌルで、プロセスの実効ユーザ ID がファイルの所有者と一致せず、
|
||||
引数が NULL で、プロセスの実効ユーザ ID がファイルの所有者と一致せず、
|
||||
しかもスーパユーザでもなく、書込みアクセスが拒否されました。
|
||||
.It Bq Er EFAULT
|
||||
.Fa path
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
.Sh 名称
|
||||
.Nm vfork
|
||||
.Nd 効率的な方法で仮想メモリに新しいプロセスを生成
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <unistd.h>
|
||||
.Ft int
|
||||
|
@ -46,12 +48,12 @@
|
|||
.Fn vfork
|
||||
では、古いプロセスのアドレス空間を完全にコピーせずに、
|
||||
新しいプロセスを作成できます。
|
||||
ページされた環境では、古いプロセスのアドレス空間を完全にコピーすることは、
|
||||
ページングする環境では、古いプロセスのアドレス空間を完全にコピーすることは、
|
||||
非常に非効率的です。
|
||||
.Xr fork 2
|
||||
での目的が、
|
||||
する目的が、
|
||||
.Xr execve 2
|
||||
の新しいシステムコンテキストの作成である場合に有効です。
|
||||
のための新しいシステムコンテキストの作成である場合に有効です。
|
||||
.Fn vfork
|
||||
は、
|
||||
.Xr execve 2
|
||||
|
@ -102,7 +104,7 @@
|
|||
.Xr fork 2
|
||||
と同じです。
|
||||
.Sh バグ
|
||||
このシステム呼び出しは、適切なシステム共有メカニズム
|
||||
このシステムコールは、適切なシステム共有メカニズム
|
||||
が実現したときに削除されます。削除された場合は、
|
||||
.Xr fork 2
|
||||
と同義になるので、
|
||||
|
@ -117,9 +119,9 @@
|
|||
.Dv SIGTTIN
|
||||
シグナルが送信されません。その代わりに出力、または、
|
||||
.Xr ioctl 2
|
||||
呼び出しが許可され、EOF によって終端を示された結果を入力します。
|
||||
呼び出しが許可され、入力しようとすると EOF となります。
|
||||
.Sh 歴史
|
||||
.Fn vfork
|
||||
関数呼び出しは、
|
||||
.Bx 3.0
|
||||
.Bx 2.9
|
||||
で登場しました。
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
.Nm wait4 ,
|
||||
.Nm wait3
|
||||
.Nd プロセスの終了待機
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/wait.h>
|
||||
|
@ -65,7 +67,7 @@
|
|||
領域には下の定義のように終了したプロセスの終了情報が入ります。
|
||||
.Pp
|
||||
.Fn wait4
|
||||
呼出しは、特定の子プロセスを待機する必要があり、
|
||||
呼出しは、特定の子プロセスを待つ必要があり、
|
||||
子プロセスが蓄積したリソース利用統計あるいは
|
||||
オプションを必要とするプログラムのために、
|
||||
より一般的なインタフェースを提供します。
|
||||
|
@ -74,20 +76,20 @@
|
|||
を使用して実装されています。
|
||||
.Pp
|
||||
.Fa wpid
|
||||
パラメータは待機する子プロセスの集合を指定します。
|
||||
パラメータは待つべき子プロセスの集合を指定します。
|
||||
.Fa wpid
|
||||
が -1 である場合、この呼出しはすべての子プロセスを待機します。
|
||||
が -1 である場合、この呼出しはすべての子プロセスを待ちます。
|
||||
.Fa wpid
|
||||
が 0 である場合、この呼出しは、呼出し側のプロセスグループの
|
||||
すべての子プロセスを待機します。
|
||||
すべての子プロセスを待ちます。
|
||||
.Fa wpid
|
||||
が 0 より大きい場合、この呼出しは プロセス ID が
|
||||
.Fa wpid
|
||||
であるプロセスを待機します。
|
||||
であるプロセスを待ちます。
|
||||
.Fa wpid
|
||||
が -1 より小さい場合、呼出しは、プロセスグループ ID が
|
||||
.Fa wpid
|
||||
の絶対値に等しいプロセスを待機します。
|
||||
の絶対値に等しいプロセスを待ちます。
|
||||
.Pp
|
||||
.Fa status
|
||||
パラメータは、以下のように定義されています。
|
||||
|
@ -195,10 +197,10 @@
|
|||
.Fn wait3 ,
|
||||
.Fn waitpid
|
||||
が戻った場合は、子のプロセス ID が呼出し側プロセスに戻されます。
|
||||
以前に待機した子がない場合は、-1 が戻されて
|
||||
まだ wait されていない子プロセスが存在しない場合は、-1 が戻されて
|
||||
.Va errno
|
||||
が
|
||||
.Bq Er ECHILD
|
||||
.Er ECHILD
|
||||
に設定されます。
|
||||
.Dv WNOHANG
|
||||
が指定され、停止した子または終了した子がない場合は 0 が戻されます。
|
||||
|
@ -211,7 +213,7 @@
|
|||
は以下の場合にエラーとなり、ただちに戻ります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ECHILD
|
||||
呼出し側プロセスに、待機していない子プロセスが存在しません。
|
||||
呼出し側プロセスは、wait されていない子プロセスを持ちません。
|
||||
.It Bq Er EFAULT
|
||||
.Fa status
|
||||
引数か
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
.Nm writev ,
|
||||
.Nm pwrite
|
||||
.Nd 出力の書込み
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <sys/uio.h>
|
||||
|
@ -59,7 +61,7 @@
|
|||
.Fa nbytes
|
||||
のデータを書込もうとします。
|
||||
.Fn writev
|
||||
は同じアクションを実行しますが、iov[0], iov[1], ..., iov[iovcnt-1] という
|
||||
は同様の動作をしますが、iov[0], iov[1], ..., iov[iovcnt-1] という
|
||||
.Fa iov
|
||||
配列のメンバが指定する
|
||||
.Fa iovcnt
|
||||
|
@ -75,14 +77,14 @@
|
|||
.Pp
|
||||
.Bd -literal -offset indent -compact
|
||||
struct iovec {
|
||||
char *iov_base; /* Base address. */
|
||||
size_t iov_len; /* Length. */
|
||||
char *iov_base; /* ベースアドレス */
|
||||
size_t iov_len; /* 長さ */
|
||||
};
|
||||
.Ed
|
||||
.Pp
|
||||
各
|
||||
.Fa iovec
|
||||
エントリは、データを書込むメモリのベースアドレスと領域の長さを指定します。
|
||||
エントリは、書込むデータがあるメモリのベースアドレスと領域の長さを指定します。
|
||||
.Fn writev
|
||||
は、常に領域全体を書込んでから次に進みます。
|
||||
.Pp
|
||||
|
@ -225,6 +227,8 @@ struct iovec {
|
|||
配列
|
||||
.Fa iov_len
|
||||
値の合計が、32 ビット整数をオーバフローしました。
|
||||
.It Bq Er ENOBUFS
|
||||
ソケットに書き出している時に mbuf のプールを使い尽くしました。
|
||||
.El
|
||||
.Pp
|
||||
.Fn pwrite
|
||||
|
|
Loading…
Reference in a new issue