Revise Japanese wording.
Submitted by: SUZUKI Koichi <metal@gc5.so-net.ne.jp>
This commit is contained in:
parent
39a6e677fb
commit
128993012e
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=15393
145 changed files with 1498 additions and 1523 deletions
|
|
@ -47,7 +47,7 @@
|
|||
.Fn _exit "int status"
|
||||
.Sh 解説
|
||||
.Fn _exit
|
||||
関数はプロセスを終了させ、以降のような結果をもたらします。:
|
||||
関数はプロセスを終了させ、以降のような結果をもたらします:
|
||||
.Bl -bullet
|
||||
.It
|
||||
呼び出し元プロセス内のすべての記述子が閉じられます。
|
||||
|
|
@ -78,7 +78,7 @@
|
|||
(通常はグループのメンバ全員に対する親が終了したため。
|
||||
.Xr intro 2
|
||||
の
|
||||
.Dq 孤児になったプロセスグループ (Orphaned Process Group)
|
||||
.Dq 親のないプロセスグループ (Orphaned Process Group)
|
||||
を参照)、そして親のないグループのメンバのいずれかが停止されている場合、
|
||||
その新たな親のないプロセスグループのすべてのメンバに
|
||||
.Dv SIGHUP
|
||||
|
|
@ -96,7 +96,8 @@
|
|||
.Pp
|
||||
ほとんどの C プログラムはライブラリルーチン
|
||||
.Xr exit 3
|
||||
を呼び出します。これはバッファをフラッシュし、ストリームを閉じ、
|
||||
を呼び出します。
|
||||
これはバッファをフラッシュし、ストリームを閉じ、
|
||||
一時ファイルをアンリンクするなどした後に
|
||||
.Fn _exit
|
||||
を呼び出します。
|
||||
|
|
@ -112,7 +113,7 @@
|
|||
.Fn _exit
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn _exit
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@
|
|||
は結果パラメータで、
|
||||
通信レイヤに既知の接続エンティティのアドレスで埋められます。
|
||||
.Fa addr
|
||||
パラメータの正確な形式は通信が行なわれるドメインで決まります。
|
||||
パラメータの正確な形式は通信が行われるドメインで決まります。
|
||||
.Fa addrlen
|
||||
は、「値 - 結果」パラメータです。
|
||||
これは最初は
|
||||
|
|
@ -104,7 +104,8 @@
|
|||
のような明瞭な確認が必要な特定のプロトコルでは、
|
||||
.Fn accept
|
||||
は単に次の接続要求を待ち行列から除くだけで、
|
||||
確認は行わないと考えられます。確認は、新しいファイル記述子についての
|
||||
確認は行わないと考えられます。
|
||||
確認は、新しいファイル記述子についての
|
||||
通常の読取りまたは書込みによって行うことができ、
|
||||
拒絶は新しいソケットを閉じる事によって実現できます。
|
||||
.Pp
|
||||
|
|
|
|||
|
|
@ -85,7 +85,8 @@
|
|||
プロセスの実ユーザもしくは実効ユーザに適切な特権があり、
|
||||
.Dv X_OK
|
||||
について成功を示していても、実際にはファイルの実行許可ビットが
|
||||
設定されていないことがあります。同じことが、
|
||||
設定されていないことがあります。
|
||||
同じことが、
|
||||
.Dv R_OK
|
||||
および
|
||||
.Dv W_OK
|
||||
|
|
@ -93,7 +94,7 @@
|
|||
.Sh 戻り値
|
||||
.Rv -std
|
||||
.Sh エラー
|
||||
ファイルへのアクセスは次の場合に拒絶されます。
|
||||
ファイルへのアクセスは次の場合に拒絶されます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -139,7 +140,7 @@
|
|||
.Fn access
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn access
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
呼び出しは、システムアカウンティングレコードの収集を有効または無効にします。
|
||||
引数
|
||||
.Fa file
|
||||
がヌルポインタである場合、アカウンティングは無効にされます。
|
||||
が NULL ポインタである場合、アカウンティングは無効にされます。
|
||||
.Fa file
|
||||
が
|
||||
.Em 既存
|
||||
|
|
@ -76,11 +76,11 @@
|
|||
少なくなると、アカウンティングは自動的に無効になります。
|
||||
空き容量が増えて再び利用できるようになると有効になります。
|
||||
.Sh 戻り値
|
||||
エラーの場合は -1 が返されます。ファイルは存在している必要があり、
|
||||
呼び出しはスーパユーザだけができます。
|
||||
エラーの場合は -1 が返されます。
|
||||
ファイルは存在している必要があり、呼び出しはスーパユーザだけができます。
|
||||
.Sh エラー
|
||||
.Fn acct
|
||||
関数は次の場合に処理を失敗します。
|
||||
関数は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
スーパユーザ以外のユーザによって呼び出されました。
|
||||
|
|
|
|||
|
|
@ -60,7 +60,8 @@
|
|||
.Fa delta
|
||||
が正の場合は通常より大きな増分を使用します。
|
||||
訂正を実行するために使用されるずれは、
|
||||
一般には 1 パーセントの割合です。これにより、時刻は常に単調増加関数となります。
|
||||
一般には 1 パーセントの割合です。
|
||||
これにより、時刻は常に単調増加関数となります。
|
||||
以前の
|
||||
.Fn adjtime
|
||||
呼び出しによる時刻訂正が、再び
|
||||
|
|
@ -82,7 +83,7 @@
|
|||
.Rv -std adjtime
|
||||
.Sh エラー
|
||||
.Fn adjtime
|
||||
関数は次の場合に処理を失敗します。
|
||||
関数は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
引数は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@
|
|||
.Fa iocb
|
||||
が指定された場合、指定された非同期入出力要求だけをキャンセルします。
|
||||
.Pp
|
||||
通常の非同期通知がキャンセルされた要求に対して発生します。要求は
|
||||
通常の非同期通知がキャンセルされた要求に対して発生します。
|
||||
要求は
|
||||
.Er ECANCELED
|
||||
のエラー結果となって完了します。
|
||||
.Sh 制限
|
||||
|
|
@ -87,12 +88,13 @@
|
|||
.Fn aio_cancel
|
||||
は
|
||||
.St -p1003.2
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn aio_cancel
|
||||
関数は
|
||||
.Fx 3.0
|
||||
ではじめて登場しました。機能する
|
||||
ではじめて登場しました。
|
||||
機能する
|
||||
.Fn aio_cancel
|
||||
の実装は
|
||||
.Fx 4.0
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
.Os
|
||||
.Sh 名称
|
||||
.Nm aio_error
|
||||
.Nd 非同期入出力操作のエラーステータスを取り出す (REALTIME)
|
||||
.Nd 非同期入出力操作のエラー状態を取り出す (REALTIME)
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -52,8 +52,8 @@
|
|||
要求が失敗した上で完了している場合、
|
||||
.Xr read 2 ,
|
||||
.Xr write 2 ,
|
||||
.Xr fsync 2 ,
|
||||
に記述されているようなエラーステータスが返されます。
|
||||
.Xr fsync 2
|
||||
に記述されているようなエラー状態が返されます。
|
||||
処理が失敗した場合に
|
||||
.Fn aio_error
|
||||
は
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
.Fn aio_error
|
||||
関数は
|
||||
.St -p1003.2
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Nm
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
を、
|
||||
.Fa iocb->aio_buf
|
||||
が指すバッファに
|
||||
読取れるようにします。
|
||||
読み取れるようにします。
|
||||
呼び出しは、読取り要求が記述子に待ち行列として入れられ
|
||||
るとただちに戻ります。
|
||||
呼び出しが戻った時点で読取りは完了していることもありますし、
|
||||
|
|
@ -60,7 +60,7 @@ _POSIX_PRIORITIZED_IO
|
|||
しかも記述子がこれをサポートしている場合に
|
||||
待ち行列に入れられている操作は、呼び出しプロセスの優先順位から
|
||||
.Fa iocb->aio_reqprio
|
||||
を減じたものに等しい優先順位でサブミットされます。
|
||||
を減じたものに等しい優先順位で発行されます。
|
||||
.Pp
|
||||
.Fa iocb->aio_lio_opcode
|
||||
は
|
||||
|
|
@ -68,8 +68,8 @@ _POSIX_PRIORITIZED_IO
|
|||
呼び出しによって無視されます。
|
||||
.Pp
|
||||
.Fa iocb
|
||||
ポインタは、進行中に待ち行列に入れられた戻りステータスまたは
|
||||
エラーステータスを判定するために、
|
||||
ポインタは、進行中に待ち行列に入れられた戻り状態または
|
||||
エラー状態を判定するために、
|
||||
.Fn aio_return
|
||||
と
|
||||
.Fn aio_error
|
||||
|
|
@ -110,7 +110,7 @@ _POSIX_PRIORITIZED_IO
|
|||
なし。
|
||||
.Sh エラー
|
||||
.Fn aio_read
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EAGAIN
|
||||
システムリソースの限界のために要求は待ち行列に入れられませんでした。
|
||||
|
|
@ -121,7 +121,7 @@ _POSIX_PRIORITIZED_IO
|
|||
.Pp
|
||||
以降の条件は、
|
||||
.Fn aio_read
|
||||
呼び出しが行なわれたときに同期的に検出されることもありますし、
|
||||
呼び出しが行われたときに同期的に検出されることもありますし、
|
||||
その後いつでも非同期的に検出されることもあります。
|
||||
これらが呼び出し時に検出された場合、
|
||||
.Fn aio_read
|
||||
|
|
@ -194,7 +194,7 @@ _POSIX_PRIORITIZED_IO
|
|||
.Fn aio_read
|
||||
呼び出しは
|
||||
.St -p1003.2
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Nm
|
||||
は
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
.Os
|
||||
.Sh 名称
|
||||
.Nm aio_return
|
||||
.Nd 非同期入出力操作の戻りステータスを取り出す (REALTIME)
|
||||
.Nd 非同期入出力操作の戻り状態を取り出す (REALTIME)
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -41,22 +41,22 @@
|
|||
.Fn aio_return
|
||||
関数は
|
||||
.Fa iocb
|
||||
が指す構造体に対応する非同期入出力要求の最終ステータスを返します。
|
||||
が指す構造体に対応する非同期入出力要求の最終状態を返します。
|
||||
.Pp
|
||||
.Xr aio_error 2
|
||||
が
|
||||
.Er EINPROGRESS
|
||||
以外の何かを返した時の非同期入出力操作の最終ステータスを得るためには
|
||||
以外の何かを返した時の非同期入出力操作の最終状態を得るためには
|
||||
.Fn aio_return
|
||||
を 1 回だけしか呼び出してはいけません。
|
||||
.Sh 戻り値
|
||||
非同期入出力要求が完了すると
|
||||
.Xr read 2 ,
|
||||
.Xr write 2 ,
|
||||
.Xr write 2
|
||||
または
|
||||
.Xr fsync 2
|
||||
で説明したようなステータスが
|
||||
返されます。処理を失敗した場合に
|
||||
で説明したような状態が返されます。
|
||||
処理を失敗した場合に
|
||||
.Fn aio_return
|
||||
は
|
||||
.Dv -1
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
を設定します。
|
||||
.Sh エラー
|
||||
.Fn aio_return
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa iocb
|
||||
|
|
@ -85,7 +85,7 @@
|
|||
.Fn aio_return
|
||||
は
|
||||
.St -p1003.2
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Nm
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -51,9 +51,10 @@
|
|||
NULL が入っている配列メンバはそのまま無視されます。
|
||||
.Pp
|
||||
.Fa timeout
|
||||
がヌルポインタでない場合、それは延期する時間の最大インターバルを指定します。
|
||||
が NULL ポインタでない場合、それは延期する時間の最大間隔を指定します。
|
||||
.Fa timeout
|
||||
がヌルポインタの場合、無期限に延期します。ポーリングするためには
|
||||
が NULL ポインタの場合、無期限に延期します。
|
||||
ポーリングするためには
|
||||
.Fa timeout
|
||||
は値 0 の timespec 構造体を指しているべきです。
|
||||
.Sh 戻り値
|
||||
|
|
@ -65,7 +66,7 @@ NULL
|
|||
がエラー状態を示すためにセットされます。
|
||||
.Sh エラー
|
||||
.Fn aio_suspend
|
||||
関数は次の場合に失敗します。
|
||||
関数は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EAGAIN
|
||||
入出力要求がどれも完了しないうちに
|
||||
|
|
@ -91,7 +92,7 @@ NULL
|
|||
.Fn aio_suspend
|
||||
は
|
||||
.St -p1003.2
|
||||
標準に準拠しています。
|
||||
標準に適合しています。
|
||||
.Sh 歴史
|
||||
.Nm
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -39,52 +39,55 @@
|
|||
.Fn aio_waitcomplete "struct aiocb **iocbp" "struct timespec *timeout"
|
||||
.Sh 解説
|
||||
.Fn aio_waitcomplete
|
||||
関数は非同期入出力の完了まで待ちます。完了次第、
|
||||
関数は非同期入出力の完了まで待ちます。
|
||||
完了次第、
|
||||
.Fn aio_waitcomplete
|
||||
はその関数の結果を返し、
|
||||
元の要求に関連する構造体へのポインタを
|
||||
.Fa iocbp
|
||||
にセットします。もし、
|
||||
に設定します。
|
||||
もし、
|
||||
.Fn aio_waitcomplete
|
||||
関数が呼び出される前に非同期入出力要求が完了していた場合には、
|
||||
完了した要求の結果を即座に返します。
|
||||
.Pp
|
||||
.Fa timeout
|
||||
がヌルポインタでない場合、それは非同期入出力要求が完了するまで
|
||||
が NULL ポインタでない場合、それは非同期入出力要求が完了するまで
|
||||
待機する最大時間を指定します。
|
||||
.Fa timeout
|
||||
がヌルポインタの場合は、
|
||||
が NULL ポインタの場合は、
|
||||
.Fn aio_waitcomplete
|
||||
は無期限に待機します。
|
||||
ポーリングする場合は、
|
||||
引数
|
||||
.Fa timeout
|
||||
はヌルではなく、0 の値を持つ timeval 構造体を指すようにするべきです。
|
||||
は NULL ではなく、0 の値を持つ timeval 構造体を指すようにするべきです。
|
||||
.Pp
|
||||
.Fn aio_waitcomplete
|
||||
関数は
|
||||
.Fn aio_return
|
||||
の役割もします。従って、
|
||||
コントロールブロックは
|
||||
の役割もします。
|
||||
従って、制御ブロックは
|
||||
.Fa iocbp
|
||||
で返されているので、
|
||||
.Fn aio_return
|
||||
を呼び出すべきではありません。
|
||||
.Sh 戻り値
|
||||
非同期入出力リクエストが完了した場合、
|
||||
非同期入出力要求が完了した場合、
|
||||
.Fa iocbp
|
||||
に元のリクエストから渡されたコントロールブロックを指すポインタを設定し、
|
||||
に元の要求から渡された制御ブロックを指すポインタを設定し、
|
||||
.Xr read 2 ,
|
||||
.Xr write 2 ,
|
||||
.Xr fsync 2
|
||||
で述べられているのと同様のステータスを返します。
|
||||
で述べられているのと同様の状態を返します。
|
||||
失敗した場合、
|
||||
.Fn aio_waitcomplete
|
||||
は
|
||||
.Dv -1
|
||||
を返し、iocbp に
|
||||
.Dv NULL
|
||||
を設定します。そして、
|
||||
を設定します。
|
||||
そして、
|
||||
.Va errno
|
||||
にエラーの状況を設定します。
|
||||
.Sh エラー
|
||||
|
|
@ -101,10 +104,10 @@
|
|||
を呼び出していません。
|
||||
.It Bq Er EINTR
|
||||
タイムアウトする前で、かつ
|
||||
非同期入出力リクエストが完了する前にシグナルが届きました。
|
||||
非同期入出力要求が完了する前にシグナルが届きました。
|
||||
.It Bq Er EWOULDBLOCK
|
||||
.It Bq Er EINPROGRESS
|
||||
非同期入出力リクエストが完了する前に、指定された制限時間に達しました。
|
||||
非同期入出力要求が完了する前に、指定された制限時間に達しました。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr aio_cancel 2 ,
|
||||
|
|
|
|||
|
|
@ -45,11 +45,12 @@
|
|||
.Fa iocb->aio_fildes
|
||||
に
|
||||
.Fa iocb->aio_nbytes
|
||||
を書き込めます。書込み要求が記述子への待ち行列に入れられてしまうと
|
||||
を書き込めます。
|
||||
書込み要求が記述子への待ち行列に入れられてしまうと、
|
||||
ただちに呼び出しは戻ります。
|
||||
呼び出しが戻った時点で書込みは完了している可能性も完了していない
|
||||
可能性もあります。無効な引数のためなどにより
|
||||
要求を待ち行列に入れられない場合は、
|
||||
可能性もあります。
|
||||
無効な引数のためなどにより要求を待ち行列に入れられない場合は、
|
||||
呼び出しは要求を待ち行列に入れずに戻ります。
|
||||
.Pp
|
||||
.Fa iocb->aio_fildes
|
||||
|
|
@ -57,7 +58,7 @@
|
|||
.Dv O_APPEND
|
||||
が設定されている場合、
|
||||
.Fn aio_write
|
||||
操作は呼び出しが行なわれたのと同じ順序で
|
||||
操作は呼び出しが行われたのと同じ順序で
|
||||
ファイルの末尾に追加されます。
|
||||
.Dv O_APPEND
|
||||
がファイル記述子用に設定されていない場合、書込み操作はファイルの先頭に
|
||||
|
|
@ -121,7 +122,7 @@
|
|||
.Pp
|
||||
次の状態は
|
||||
.Fn aio_write
|
||||
呼び出しが行なわれたときに同期的に検出でき、
|
||||
呼び出しが行われたときに同期的に検出でき、
|
||||
その後いつでも非同期的に検出できます。
|
||||
これらが呼び出し時に検出された場合に
|
||||
.Fn aio_write
|
||||
|
|
@ -185,7 +186,7 @@
|
|||
.Fn aio_write
|
||||
は
|
||||
.St -p1003.2
|
||||
標準に準拠しています。
|
||||
標準に適合しています。
|
||||
.Sh 歴史
|
||||
.Nm
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
.Os
|
||||
.Sh 名称
|
||||
.Nm bind
|
||||
.Nd assign a local protocol address to a socket
|
||||
.Nd ローカルプロトコルアドレスをソケットに割り当てる
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -76,7 +76,7 @@ UNIX
|
|||
.Rv -std bind
|
||||
.Sh エラー
|
||||
.Fn bind
|
||||
呼び出しは次の場合に失敗します。
|
||||
呼び出しは次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EAGAIN
|
||||
要求を満たすためのカーネルリソースが一時的に利用できません。
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
.Fn brk
|
||||
関数と
|
||||
.Fn sbrk
|
||||
関数は、プロセスのデータセグメントに割当てられた
|
||||
関数は、プロセスのデータセグメントに割り当てられた
|
||||
メモリ量を変更するために使用されます。
|
||||
これは、
|
||||
.Dq ブレーク
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
.Fa incr
|
||||
バイトだけ増し、結果として少なくとも
|
||||
.Fa incr
|
||||
バイトの新規メモリをデータセグメントに割当てます。
|
||||
バイトの新規メモリをデータセグメントに割り当てます。
|
||||
.Fa incr
|
||||
が負の場合、ブレークは
|
||||
.Fa incr
|
||||
|
|
@ -124,16 +124,15 @@
|
|||
.Fn brk
|
||||
または
|
||||
.Fn sbrk
|
||||
は、以降のうちの 1 つが真の場合に処理に失敗します:
|
||||
は、次の場合に処理に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
要求されたブレーク値がデータセグメントの先頭を越えていた。
|
||||
要求されたブレーク値がデータセグメントの先頭を越えています。
|
||||
.It Bq Er ENOMEM
|
||||
.Xr setrlimit 2
|
||||
が設定した
|
||||
データセグメントサイズの限界を越えた。
|
||||
が設定したデータセグメントサイズの限界を越えています。
|
||||
.It Bq Er ENOMEM
|
||||
データセグメントの拡張に必要なスワップ領域内の空間が不充分。
|
||||
データセグメントの拡張に必要なスワップ領域内の空間が不充分です。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr execve 2 ,
|
||||
|
|
@ -149,12 +148,13 @@
|
|||
と、
|
||||
.Xr malloc 3 ,
|
||||
.Xr free 3
|
||||
やこれに類する関数を混在させると、移植不可能なプログラム動作となります。
|
||||
やこれに類する関数を混在させると、移植性のないプログラム動作となります。
|
||||
.Pp
|
||||
ブレークの設定は、スワップ空間の一時的な不足のために処理が失敗する
|
||||
可能性があります。これは
|
||||
可能性があります。
|
||||
これは
|
||||
.Xr getrlimit 2
|
||||
を使用せずには、データセグメントの最大サイズを越えたことに起因する
|
||||
を使用しないと、データセグメントの最大サイズを越えたことに起因する
|
||||
失敗と区別することはできません。
|
||||
.Sh 歴史
|
||||
.Fn brk
|
||||
|
|
|
|||
|
|
@ -71,9 +71,9 @@
|
|||
.Sh 戻り値
|
||||
.Rv -std
|
||||
.Sh エラー
|
||||
次の 1 つまたは複数が真の場合、
|
||||
次のうち 1 つ以上が真の場合、
|
||||
.Fn chdir
|
||||
関数の処理は失敗し、現在の作業ディレクトリは変更されません。
|
||||
関数の処理は失敗し、現在の作業ディレクトリは変更されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -93,9 +93,9 @@
|
|||
ファイルシステムに読み書きしている間に入出力エラーが発生しました。
|
||||
.El
|
||||
.Pp
|
||||
次の 1 つまたは複数が真の場合、
|
||||
次のうち 1 つ以上が真の場合、
|
||||
.Fn fchdir
|
||||
関数の処理は失敗し、現在の作業ディレクトリは変更されません。
|
||||
関数の処理は失敗し、現在の作業ディレクトリは変更されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EACCES
|
||||
ファイル記述子が参照するディレクトリで検索が許可されていません。
|
||||
|
|
@ -112,7 +112,7 @@
|
|||
.Fn chdir
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn chdir
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -108,7 +108,8 @@
|
|||
フラグは、スーパユーザだけが設定または設定解除できます。
|
||||
スーパユーザのみが設定できるフラグを
|
||||
スーパユーザでないものが設定しようとしても
|
||||
警告なしで無視されます。これらのフラグはいつでも設定できますが、
|
||||
警告なしで無視されます。
|
||||
これらのフラグはいつでも設定できますが、
|
||||
通常は、システムがシングルユーザモードにあるときにだけ
|
||||
設定解除するのが普通です (詳細については
|
||||
.Xr init 8
|
||||
|
|
@ -117,7 +118,7 @@
|
|||
.Rv -std
|
||||
.Sh エラー
|
||||
.Fn chflags
|
||||
関数の処理は以下の場合に失敗します。
|
||||
関数の処理は以下の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -145,7 +146,7 @@
|
|||
.El
|
||||
.Pp
|
||||
.Fn fchflags
|
||||
関数の処理は以下の場合に失敗します。
|
||||
関数の処理は以下の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
記述子が有効ではありません。
|
||||
|
|
@ -157,7 +158,7 @@
|
|||
実効ユーザ ID がファイルの所有者と一致せず、
|
||||
実効ユーザ ID がスーパユーザではありません。
|
||||
.It Bq Er EROFS
|
||||
ファイルが読み取り専用システム上に存在しています。
|
||||
ファイルが読取り専用システム上に存在しています。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムに読み書きしている間に入出力エラーが発生しました。
|
||||
.It Bq Er EOPNOTSUPP
|
||||
|
|
|
|||
|
|
@ -123,14 +123,14 @@ UFS
|
|||
.Xr sticky 8
|
||||
を参照してください。
|
||||
.Pp
|
||||
あるディレクトリに ISUID (set-user-id ビット) が設定されており、
|
||||
あるディレクトリに ISUID (ユーザ ID 設定ビット) が設定されており、
|
||||
かつファイルシステムをマウントする際に MNT_SUIDDIR オプションが
|
||||
指定されていた場合、
|
||||
このディレクトリ内に作成される新しいファイルとサブディレクトリの所有者は、
|
||||
ディレクトリの所有者に設定されます。
|
||||
この機能が有効であるとき、新しいディレクトリは親から
|
||||
ISUID ビットを継承します。実行ビットはファイルから取り除かれ、
|
||||
ファイルは root の所有とはなりません。
|
||||
ISUID ビットを継承します。
|
||||
実行ビットはファイルから取り除かれ、ファイルは root の所有とはなりません。
|
||||
この機能は、ファイルへの書込みがユーザに許可される条件を変更しません。
|
||||
ファイルが作成された後の最終的な所有者の決定に影響するのみです。
|
||||
グループは継承されません。
|
||||
|
|
@ -147,17 +147,17 @@ suiddir
|
|||
を参照してください。
|
||||
.Pp
|
||||
スーパユーザ以外のユーザによる、
|
||||
ファイルの書込みまたはファイルの所有者の変更によって set-user-id
|
||||
ビットと set-group-id ビットはオフに切り替えられます。
|
||||
ファイルの書込みまたはファイルの所有者の変更によってユーザ ID 設定ビットと
|
||||
グループ ID 設定ビットはオフに切り替えられます。
|
||||
互換性は犠牲になりますが、
|
||||
set-user-id (set-group-id) ビットを残したまま
|
||||
ユーザ ID 設定 (グループ ID 設定) ビットを残したまま
|
||||
ファイルが変更されるのを防ぐことで、
|
||||
システムはいくらか安全になります。
|
||||
.Sh 戻り値
|
||||
.Rv -std
|
||||
.Sh エラー
|
||||
.Fn chmod
|
||||
関数は、次の場合に処理に失敗しファイルモードは変更されません。
|
||||
関数は、次の場合に処理に失敗しファイルモードは変更されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -185,7 +185,7 @@ set-user-id (set-group-id)
|
|||
.El
|
||||
.Pp
|
||||
.Fn fchmod
|
||||
関数は、次の場合に処理を失敗します。
|
||||
関数は、次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
記述子が有効ではありません。
|
||||
|
|
@ -211,7 +211,7 @@ set-user-id (set-group-id)
|
|||
.Dv S_ISTXT
|
||||
の使用法を除けば
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn chmod
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -60,16 +60,18 @@
|
|||
.Fa owner
|
||||
および
|
||||
.Fa group
|
||||
に変更します。ファイルの所有者は、
|
||||
に変更します。
|
||||
ファイルの所有者は、
|
||||
.Fa group
|
||||
に自分が所属している任意のグループを指定できます。しかし、
|
||||
に自分が所属している任意のグループを指定できます。
|
||||
しかし、
|
||||
.Fa owner
|
||||
を変更することができるのはスーパユーザのみです。
|
||||
.Pp
|
||||
.Fn chown
|
||||
関数は、スーパユーザによって実行される場合をのぞいて、
|
||||
ファイル上の set-user-id ビットと set-group-id ビットをクリアします。
|
||||
これは、set-user-id あるいは set-group-id されたプログラムが
|
||||
ファイル上のユーザ ID 設定ビットとグループ ID 設定ビットをクリアします。
|
||||
これは、ユーザ ID 設定あるいはグループ ID 設定されたプログラムが
|
||||
偶然、またはいたずらで作成されるのを防止するためです。
|
||||
.Fn chown
|
||||
は、シンボリックリンクをたどり、
|
||||
|
|
@ -93,7 +95,7 @@
|
|||
.Fn chown
|
||||
と
|
||||
.Fn lchown
|
||||
は、次の場合に処理を失敗して、ファイルは変更されません。
|
||||
は、次の場合に処理を失敗して、ファイルは変更されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -118,7 +120,7 @@
|
|||
.El
|
||||
.Pp
|
||||
.Fn Fchown
|
||||
関数は、次の場合に失敗します。
|
||||
関数は、次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa fd
|
||||
|
|
@ -142,7 +144,7 @@
|
|||
.Fn chown
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn chown
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -78,29 +78,29 @@
|
|||
で失敗します。
|
||||
.Pp
|
||||
.Ql kern.chroot_allow_open_directories
|
||||
が 1 にセットされている場合 (デフォルト)、
|
||||
が 1 に設定されている場合 (デフォルト)、
|
||||
ディレクトリがオープンされていて、そのプロセスが
|
||||
.Fn chroot
|
||||
呼び出しの影響を受ける場合、
|
||||
呼び出しの影響を受ける時、
|
||||
.Er EPERM
|
||||
で失敗します。
|
||||
.Pp
|
||||
.Ql kern.chroot_allow_open_directories
|
||||
が他の値の場合、オープンディレクトリのチェックはされません。
|
||||
.Pp
|
||||
正常に完了すると、値 0 が返されます。そうでない場合は、値 -1 が返され、
|
||||
エラーを示すために
|
||||
正常に完了すると、値 0 が返されます。
|
||||
そうでない場合は、値 -1 が返され、エラーを示すために
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn chroot
|
||||
関数は、次の場合処理に失敗し、ルートディレクトリは変更されません。
|
||||
関数は、次の場合処理に失敗し、ルートディレクトリは変更されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er EPERM
|
||||
実効ユーザ ID がスーパユーザではありません。またはディレクトリが
|
||||
1 つ以上のファイル記述子によってオープンされています。
|
||||
実効ユーザ ID がスーパユーザではありません。
|
||||
またはディレクトリが 1 つ以上のファイル記述子によってオープンされています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
パス名の構成要素が 255 文字を越えているか、
|
||||
またはパス名全体が 1023 文字を越えています。
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
.Nm clock_gettime ,
|
||||
.Nm clock_settime ,
|
||||
.Nm clock_getres
|
||||
.Nd 日付と時刻の取得/設定/精度の取得をする
|
||||
.Nd 日付と時刻の取得 / 設定 / 精度の取得をする
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -102,7 +102,7 @@ struct timespec {
|
|||
.Sh エラー
|
||||
次のエラーコードが
|
||||
.Va errno
|
||||
に設定されます。
|
||||
に設定されます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa clock_id
|
||||
|
|
@ -122,4 +122,4 @@ etc.\&
|
|||
.Fn clock_gettime
|
||||
等の関数は
|
||||
.St -p1003.1b-93
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@
|
|||
.Fn close
|
||||
はプロセスのオブジェクト参照テーブルから記述子を削除します。
|
||||
これがそのオブジェクトへの最後の参照だった場合、
|
||||
オブジェクトはアクティブでなくなります。たとえば、
|
||||
ファイルに対する最後のクローズで、そのファイルに結び付けられた現在の
|
||||
オブジェクトはアクティブでなくなります。
|
||||
たとえば、ファイルに対する最後のクローズで、そのファイルに結び付けられた現在の
|
||||
.Em seek
|
||||
ポインタは失われます。
|
||||
.Xr socket 2
|
||||
|
|
@ -60,7 +60,8 @@
|
|||
ファイルに対する最後のクローズで、ロックは解放されます
|
||||
(詳細は
|
||||
.Xr flock 2
|
||||
を参照)。しかし、System V と
|
||||
を参照)。
|
||||
しかし、System V と
|
||||
.St -p1003.1-88
|
||||
では、あるプロセスがファイルに対して保持しているすべての
|
||||
.Xr fcntl 2
|
||||
|
|
@ -69,8 +70,8 @@
|
|||
がそのプロセスによって閉じられるときに削除される、と規定しています。
|
||||
.Pp
|
||||
プロセスが終了するとき、プロセスに結び付けられた
|
||||
ファイル記述子はすべて解放されます。しかし、
|
||||
アクティブな記述子の個数にはプロセスごとに制限があるので、
|
||||
ファイル記述子はすべて解放されます。
|
||||
しかし、アクティブな記述子の個数にはプロセスごとに制限があるので、
|
||||
大量のファイル記述子を処理するときは、
|
||||
.Fn close
|
||||
関数呼び出しが便利です。
|
||||
|
|
@ -79,7 +80,8 @@
|
|||
.Pf ( Xr fork 2
|
||||
参照)、新しい子プロセスの記述子はすべて、
|
||||
フォークの前に親プロセスの記述子が参照していたのと同じオブジェクトを
|
||||
参照します。次に、新しいプロセスが
|
||||
参照します。
|
||||
次に、新しいプロセスが
|
||||
.Xr execve 2
|
||||
で実行される場合、そのプロセスは通常これらの記述子を継承します。
|
||||
ほとんどの記述子は
|
||||
|
|
@ -88,16 +90,16 @@
|
|||
.Xr dup2 2
|
||||
で再配置されるか、
|
||||
.Fn close
|
||||
で削除されます。もし execve が失敗した場合にこれらの記述子が
|
||||
必要になるのであれば、execve が成功した場合にのみ、
|
||||
それらをクローズするようにする必要があります。
|
||||
で削除されます。
|
||||
もし execve が失敗した場合にこれらの記述子が必要になるのであれば、
|
||||
execve が成功した場合にのみ、それらをクローズするようにする必要があります。
|
||||
このために、
|
||||
.Dq Li fcntl(d, F_SETFD, FD_CLOEXEC)
|
||||
呼び出しが準備されています。これは execve が成功した後で、
|
||||
記述子を閉じるように指示します。
|
||||
呼び出しが準備されています。
|
||||
これは execve が成功した後で、記述子を閉じるように指示します。
|
||||
.Dq Li fcntl(d, F_SETFD, 0)
|
||||
呼び出しはこれをデフォルトに戻します。デフォルトでは、
|
||||
記述子はクローズされません。
|
||||
呼び出しはこれをデフォルトに戻します。
|
||||
デフォルトでは、記述子はクローズされません。
|
||||
.Sh 戻り値
|
||||
.Rv -std close
|
||||
.Sh エラー
|
||||
|
|
@ -123,7 +125,7 @@
|
|||
.Fn close
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn close
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -49,31 +49,38 @@
|
|||
.Sh 解説
|
||||
パラメータ
|
||||
.Fa s
|
||||
はソケットです。このタイプが
|
||||
はソケットです。
|
||||
このタイプが
|
||||
.Dv SOCK_DGRAM
|
||||
の場合、この呼び出しはソケットが結び付けられる
|
||||
通信相手を指定します。このアドレスは送信データグラムの送信先であり、
|
||||
受信データグラムの送信元となる唯一のアドレスです。ソケットのタイプが
|
||||
通信相手を指定します。
|
||||
このアドレスは送信データグラムの送信先であり、
|
||||
受信データグラムの送信元となる唯一のアドレスです。
|
||||
ソケットのタイプが
|
||||
.Dv SOCK_STREAM
|
||||
の場合、この呼び出しは通信相手のソケットに接続を確立
|
||||
しようとします。通信相手のソケットは
|
||||
しようとします。
|
||||
通信相手のソケットは
|
||||
.Fa name
|
||||
で指定されます。
|
||||
.Fa name
|
||||
はソケット通信空間内のアドレスです。各通信空間は
|
||||
はソケット通信空間内のアドレスです。
|
||||
各通信空間は
|
||||
.Fa name
|
||||
パラメータを独自の方法で解釈します。一般に、ストリームソケットが正常に
|
||||
パラメータを独自の方法で解釈します。
|
||||
一般に、ストリームソケットが正常に
|
||||
.Fn connect
|
||||
できるのは 1 回だけです。データグラムソケットは
|
||||
できるのは 1 回だけです。
|
||||
データグラムソケットは
|
||||
.Fn connect
|
||||
を複数回使用してその結び付けを変更できます。データグラム
|
||||
ソケットは、NULL アドレスのような無効なアドレスに接続することによって
|
||||
結び付けを解除できます。
|
||||
を複数回使用してその結び付けを変更できます。
|
||||
データグラムソケットは、NULL アドレスのような無効なアドレスに
|
||||
接続することによって結び付けを解除できます。
|
||||
.Sh 戻り値
|
||||
.Rv -std connect
|
||||
.Sh エラー
|
||||
.Fn connect
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa s
|
||||
|
|
|
|||
|
|
@ -69,7 +69,8 @@
|
|||
.Fa oldd
|
||||
と
|
||||
.Fa newd
|
||||
をまったく区別しません。したがって
|
||||
をまったく区別しません。
|
||||
したがって
|
||||
.Fa newd
|
||||
と
|
||||
.Fa oldd
|
||||
|
|
@ -84,13 +85,14 @@
|
|||
一つのファイルへの別々のポインタが必要な場合は、追加の
|
||||
.Xr open 2
|
||||
を呼び出し、ファイルへの異なるオブジェクト参照を
|
||||
得る必要があります。このとき、新しいファイル記述子の
|
||||
close-on-exec フラグは設定解除されています。
|
||||
得る必要があります。
|
||||
このとき、新しいファイル記述子の close-on-exec フラグは設定解除されています。
|
||||
.Pp
|
||||
.Fn dup2
|
||||
には新しい記述子
|
||||
.Fa newd
|
||||
の値を指定します。この記述子が既に使用されていた場合、
|
||||
の値を指定します。
|
||||
この記述子が既に使用されていた場合、
|
||||
.Fa oldd
|
||||
\*(Ne
|
||||
.Fa newd
|
||||
|
|
@ -118,7 +120,7 @@ close-on-exec
|
|||
.Fn dup
|
||||
関数と
|
||||
.Fn dup2
|
||||
関数は、次の場合に処理に失敗します。
|
||||
関数は、次の場合に処理に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa oldd
|
||||
|
|
@ -143,7 +145,7 @@ close-on-exec
|
|||
.Fn dup2
|
||||
関数は、
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn dup
|
||||
関数と
|
||||
|
|
|
|||
|
|
@ -50,13 +50,15 @@
|
|||
関数は、呼び出しプロセスを新しいプロセスに変換します。
|
||||
新しいプロセスは
|
||||
.Em new process file
|
||||
と呼ばれる通常のファイルに基いて構成されます。このファイルの名前は
|
||||
と呼ばれる通常のファイルに基づいて構成されます。
|
||||
このファイルの名前は
|
||||
.Fa path
|
||||
によって指定されます。
|
||||
このファイルは実行可能オブジェクトファイル、またはインタプリタ用の
|
||||
データのファイルです。実行可能オブジェクトファイルは、識別ヘッダに
|
||||
データのページが続いたもので構成されます。このデータは
|
||||
初期プログラム (テキスト) と初期値ありデータのページを表します。
|
||||
データのファイルです。
|
||||
実行可能オブジェクトファイルは、識別ヘッダに
|
||||
データのページが続いたもので構成されます。
|
||||
このデータは、初期プログラム (テキスト) と初期値ありデータのページを表します。
|
||||
追加のページはヘッダの指定によって 0 データで初期化される場合があります。
|
||||
.Xr elf 5
|
||||
および
|
||||
|
|
@ -77,25 +79,27 @@
|
|||
.Em interpreter
|
||||
を
|
||||
.Sy execve
|
||||
します。オプションの
|
||||
します。
|
||||
オプションの
|
||||
.Em arg
|
||||
が指定されている場合、それは
|
||||
.Em interpreter
|
||||
の 1番目の引数に
|
||||
なり、元々の
|
||||
の 1番目の引数になり、元々の
|
||||
.Sy execve
|
||||
で指定されたファイルの名前は 2 番目の引数になります。それ以外では
|
||||
で指定されたファイルの名前は 2 番目の引数になります。
|
||||
それ以外では
|
||||
.Sy execve
|
||||
で指定されたファイルの名前が 1番目の引数になります。
|
||||
元々の引数はシフトされて後続の引数に
|
||||
なります。0 番目の引数は指定された
|
||||
なります。
|
||||
0 番目の引数は指定された
|
||||
.Em interpreter
|
||||
に設定されます。
|
||||
.Pp
|
||||
引数
|
||||
.Fa argv
|
||||
は、ヌルで終了する文字ポインタの配列を指すポインタです。
|
||||
各文字ポインタはヌル文字で終了する文字列を指します。
|
||||
は、ヌル文字で終わる文字ポインタの配列を指すポインタです。
|
||||
各文字ポインタはヌル文字で終わる文字列を指します。
|
||||
これらの文字列は、新しいプロセスから参照できる引数リストを構成します。
|
||||
少なくとも 1 つの引数が配列内に存在している必要があります。
|
||||
慣習では、最初の要素が実行されたプログラムの名前になるはずです (たとえば、
|
||||
|
|
@ -104,11 +108,12 @@
|
|||
.Pp
|
||||
引数
|
||||
.Fa envp
|
||||
も、ヌルで終了する文字ポインタの配列を指すポインタです。
|
||||
各文字ポインタはヌル文字で終了する文字列を指します。
|
||||
も、ヌル文字で終わる文字ポインタの配列を指すポインタです。
|
||||
各文字ポインタはヌル文字で終わる文字列を指します。
|
||||
この配列を指すポインタは、通常、グローバル変数
|
||||
.Va environ
|
||||
に保存されます。これらの文字列は、引数としてコマンドへ直接
|
||||
に保存されます。
|
||||
これらの文字列は、引数としてコマンドへ直接
|
||||
渡されない情報を新しいプロセスに渡します
|
||||
.Pf ( Xr environ 7
|
||||
を参照)。
|
||||
|
|
@ -125,8 +130,8 @@
|
|||
の影響を受けません。
|
||||
.Pp
|
||||
.Fn execve
|
||||
が呼び出された時に標準の記述子 (0, 1 そして/または 2) がクローズされ、
|
||||
set-id の結果、そのプロセスが特権を得た場合には、
|
||||
が呼び出された時に標準の記述子 (0, 1 そして / または 2) がクローズされ、
|
||||
ID 設定の結果、そのプロセスが特権を得た場合には、
|
||||
それらの記述子は自動的にオープンされます。
|
||||
特権を持っているかどうかに関わらず、どのプログラムも
|
||||
.Fn execve
|
||||
|
|
@ -137,26 +142,27 @@ set-id
|
|||
新しいプロセス内でも無視されるように設定されます。
|
||||
呼び出しプロセスイメージ内で捕捉されるように設定されたシグナルは、
|
||||
新しいプロセスイメージ内でデフォルトのアクションに
|
||||
設定されます。ブロックされたシグナルは、
|
||||
設定されます。
|
||||
ブロックされたシグナルは、
|
||||
シグナルアクションの変化とは無関係にブロックされたままになります。
|
||||
シグナルスタックは未定義にリセットされます (詳細については
|
||||
.Xr sigaction 2
|
||||
を参照してください)。
|
||||
.Pp
|
||||
新しいプロセスイメージファイルに set-user-ID モードビット
|
||||
新しいプロセスイメージファイルにユーザ ID 設定モードビット
|
||||
が設定されている場合
|
||||
.Pf ( Xr chmod 2
|
||||
を参照)、新しいプロセスイメージの実効ユーザ ID は、
|
||||
新しいプロセスイメージファイルの所有者 ID に設定されます。
|
||||
新しいプロセスイメージファイルに set-group-ID モードビットが
|
||||
新しいプロセスイメージファイルにグループ ID 設定モードビットが
|
||||
設定されている場合、新しいプロセスイメージの実効グループ ID は新しい
|
||||
プロセスイメージファイルのグループ ID に設定されます
|
||||
(実効グループ ID はグループリストの最初の要素です)。
|
||||
新しいプロセスの実ユーザ ID、実グループ ID、およびその他の
|
||||
グループ ID は、呼び出しプロセスイメージと同じになります。
|
||||
set-user-ID および set-group-ID 処理の後、実効ユーザ ID は
|
||||
saved set-user-ID として記録され、実効グループ ID は
|
||||
saved set-group-ID として記録されます。
|
||||
ユーザ ID 設定およびグループ ID 設定処理の後、実効ユーザ ID は
|
||||
退避ユーザ ID として記録され、実効グループ ID は
|
||||
退避グループ IDとして記録されます。
|
||||
これらの値は、後で実効 ID を変更するのに使用できます
|
||||
.Pf ( Xr setuid 2
|
||||
を参照)。
|
||||
|
|
@ -164,7 +170,7 @@ saved set-group-ID
|
|||
該当するファイルシステムで
|
||||
.Ar nosuid
|
||||
オプションが有効な場合、または新しいプロセスファイルがインタプリタ
|
||||
ファイルの場合、set-ID ビットは意味を持ちません。
|
||||
ファイルの場合、ID 設定ビットは意味を持ちません。
|
||||
実効 ID が変更された場合、システムコールのトレースは
|
||||
無効になります。
|
||||
.Pp
|
||||
|
|
@ -207,14 +213,14 @@ char **argv, **envp;
|
|||
処理が成功した呼び出しには戻るプロセスがありません。
|
||||
.Fn execve
|
||||
が呼び出しプロセスに返ってくる場合は
|
||||
エラーが起きています。戻り値は -1 で、
|
||||
エラーを示すためにグローバル変数
|
||||
エラーが起きています。
|
||||
戻り値は -1 で、エラーを示すためにグローバル変数
|
||||
.Va errno
|
||||
が設定されます
|
||||
.Sh エラー
|
||||
次の場合、
|
||||
.Fn execve
|
||||
関数は処理に失敗し、呼び出しプロセスに戻ります。
|
||||
関数は処理に失敗し、呼び出しプロセスに戻ります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -248,7 +254,8 @@ char **argv, **envp;
|
|||
以上の仮想メモリを必要とします。
|
||||
.It Bq Er E2BIG
|
||||
新しいプロセスの引数リストのバイト数がシステムの課した上限を
|
||||
越えています。この上限は、
|
||||
越えています。
|
||||
この上限は、
|
||||
.Xr sysctl 3
|
||||
の MIB 変数
|
||||
.Dv KERN_ARGMAX
|
||||
|
|
@ -263,7 +270,7 @@ char **argv, **envp;
|
|||
.Fa envp
|
||||
が正しくないアドレスを指しています。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムから読取る間に入出力エラーが発生しました。
|
||||
ファイルシステムから読み取る間に入出力エラーが発生しました。
|
||||
.El
|
||||
.Sh 警告
|
||||
スーパユーザでないものに対して
|
||||
|
|
@ -285,7 +292,7 @@ char **argv, **envp;
|
|||
.Xr mount 8
|
||||
.Sh 規格
|
||||
.Fn execve
|
||||
関数は、特定の状況において記述子 0, 1 そして/または 2 を
|
||||
関数は、特定の状況において記述子 0, 1 そして / または 2 を
|
||||
再度オープンする他は、
|
||||
.St -p1003.1-2001
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@
|
|||
を取ることができます。
|
||||
.Bl -tag -width F_GETOWNX
|
||||
.It Dv F_DUPFD
|
||||
次のような新しい記述子を返します。
|
||||
次のような新しい記述子を返します:
|
||||
.Pp
|
||||
.Bl -bullet -compact -offset 4n
|
||||
.It
|
||||
|
|
@ -75,9 +75,8 @@
|
|||
.It
|
||||
同じアクセスモード (読取り、書込み、または読取りと書込み)
|
||||
.It
|
||||
同じファイルステータスフラグ (すなわち、
|
||||
両方のファイル記述子が同じファイルステータス
|
||||
フラグを共有)
|
||||
同じファイル状態フラグ (すなわち、
|
||||
両方のファイル記述子が同じファイル状態フラグを共有)
|
||||
.It
|
||||
close-on-exec フラグは、
|
||||
.Xr execve 2
|
||||
|
|
@ -97,7 +96,7 @@ close-on-exec
|
|||
を実行してもオープンされたままになります。
|
||||
そうでない場合、ファイルは
|
||||
.Fn exec
|
||||
の実行でクローズされます。
|
||||
の実行でクローズされます
|
||||
.Fa ( arg
|
||||
は無視されます)。
|
||||
.It Dv F_SETFD
|
||||
|
|
@ -110,11 +109,11 @@ close-on-exec
|
|||
.Dv FD_CLOEXEC
|
||||
です。
|
||||
.It Dv F_GETFL
|
||||
後述するように記述子のステータスフラグを取得します
|
||||
後述するように記述子の状態フラグを取得します
|
||||
.Fa ( arg
|
||||
は無視されます)。
|
||||
.It Dv F_SETFL
|
||||
記述子ステータスフラグを
|
||||
記述子状態フラグを
|
||||
.Fa arg
|
||||
で指定される値に設定します。
|
||||
.It Dv F_GETOWN
|
||||
|
|
@ -123,7 +122,8 @@ close-on-exec
|
|||
シグナルと
|
||||
.Dv SIGURG
|
||||
シグナルを受信しているプロセス ID またはプロセスグループを取得
|
||||
します。プロセスグループは負の値として返されます
|
||||
します。
|
||||
プロセスグループは負の値として返されます
|
||||
.Fa ( arg
|
||||
は無視されます)。
|
||||
.It Dv F_SETOWN
|
||||
|
|
@ -134,7 +134,8 @@ close-on-exec
|
|||
シグナルを受信するように設定します。
|
||||
プロセスグループは
|
||||
.Fa arg
|
||||
を負数にして与えることによって指定されます。そうでない場合、
|
||||
を負数にして与えることによって指定されます。
|
||||
そうでない場合、
|
||||
.Fa arg
|
||||
はプロセス ID として解釈されます。
|
||||
.El
|
||||
|
|
@ -142,7 +143,7 @@ close-on-exec
|
|||
.Dv F_GETFL
|
||||
および
|
||||
.Dv F_SETFL
|
||||
用のフラグは次のとおりです。
|
||||
用のフラグは次のとおりです:
|
||||
.Bl -tag -width O_NONBLOCKX
|
||||
.It Dv O_NONBLOCK
|
||||
非ブロッキング入出力。
|
||||
|
|
@ -171,19 +172,19 @@ close-on-exec
|
|||
シグナルがプロセスグループに送信されるようにします。
|
||||
.El
|
||||
.Pp
|
||||
問合せ型ファイルロックを行なうためにいくつかのコマンドが利用できます。
|
||||
これらのコマンドはすべて次の構造体で操作します。
|
||||
問合せ型ファイルロックを行うためにいくつかのコマンドが利用できます。
|
||||
これらのコマンドはすべて次の構造体で操作します:
|
||||
.ne 7v
|
||||
.Bd -literal
|
||||
struct flock {
|
||||
off_t l_start; /* 開始位置のオフセット */
|
||||
off_t l_len; /* len = 0 はファイル末尾までという意味 */
|
||||
pid_t l_pid; /* ロック所有者 */
|
||||
short l_type; /* ロックタイプ: 読取り/書込みなど */
|
||||
short l_type; /* ロックタイプ: 読取り / 書込みなど */
|
||||
short l_whence; /* l_start のタイプ */
|
||||
};
|
||||
.Ed
|
||||
問合せ型レコードロックに利用できるコマンドは次のとおりです。
|
||||
問合せ型レコードロックに利用できるコマンドは次のとおりです:
|
||||
.Bl -tag -width F_SETLKWX
|
||||
.It Dv F_GETLK
|
||||
3 番めの引数
|
||||
|
|
@ -191,7 +192,8 @@ struct flock {
|
|||
を
|
||||
.Fa "struct flock"
|
||||
(前記を参照) へのポインタと解釈して、それによって指定される
|
||||
ロック記述をブロックする最初のロックを取得します。取り出された情報は、
|
||||
ロック記述をブロックする最初のロックを取得します。
|
||||
取り出された情報は、
|
||||
.Fn fcntl
|
||||
に渡された
|
||||
.Fa flock
|
||||
|
|
@ -240,8 +242,9 @@ struct flock {
|
|||
.Pp
|
||||
共有ロックがファイルのあるセグメントに設定されている場合、
|
||||
他のプロセスはそのセグメントまたはその
|
||||
一部に共有ロックを設定できます。共有ロックは、保護している
|
||||
どの領域にも、他のプロセスが排他的ロックを設定するのを防止します。
|
||||
一部に共有ロックを設定できます。
|
||||
共有ロックは、保護しているどの領域にも、
|
||||
他のプロセスが排他的ロックを設定するのを防止します。
|
||||
ファイル記述子が読取りアクセスで開かれていない場合、
|
||||
共有ロックの要求は処理を失敗します。
|
||||
.Pp
|
||||
|
|
@ -253,7 +256,7 @@ struct flock {
|
|||
.Fa l_whence
|
||||
の値は
|
||||
.Dv SEEK_SET ,
|
||||
.Dv SEEK_CUR ,
|
||||
.Dv SEEK_CUR
|
||||
または
|
||||
.Dv SEEK_END
|
||||
で、これらは相対オフセット
|
||||
|
|
@ -303,8 +306,8 @@ struct flock {
|
|||
要求で指定した領域内に既存のロックを保持しているとき、
|
||||
要求から正常に戻る前に、
|
||||
指定の領域内の各バイトについて以前の
|
||||
ロックタイプが新しいロックタイプで置き換えられます。共有ロックと
|
||||
排他的ロックのところで前述したように、
|
||||
ロックタイプが新しいロックタイプで置き換えられます。
|
||||
共有ロックと 排他的ロックのところで前述したように、
|
||||
別のプロセスが指定の領域内にロックを保持しており、しかもそれらのロック
|
||||
のタイプが要求で指定されたタイプと競合するとき、
|
||||
.Dv F_SETLK
|
||||
|
|
@ -322,10 +325,9 @@ struct flock {
|
|||
がそのプロセスによって
|
||||
クローズされたときに解除されます。
|
||||
これは、サブルーチンライブラリがアクセスする可能性のあるファイル全てを
|
||||
アプリケーションが認識している必要がある
|
||||
ことを意味します。たとえば、パスワードファイルを更新する
|
||||
アプリケーションが、更新を行なうために
|
||||
パスワードファイルデータベースをロックし、
|
||||
アプリケーションが認識している必要があることを意味します。
|
||||
たとえば、パスワードファイルを更新するアプリケーションが、
|
||||
更新を行うためにパスワードファイルデータベースをロックし、
|
||||
レコードを取り出すために
|
||||
.Xr getpwnam 3
|
||||
を呼び出したとしましょう。
|
||||
|
|
@ -378,7 +380,7 @@ struct flock {
|
|||
.Sh 戻り値
|
||||
処理が正常に完了した場合、返される値は
|
||||
.Fa cmd
|
||||
に応じて次のようになります。
|
||||
に応じて次のようになります:
|
||||
.Bl -tag -width F_GETOWNX -offset indent
|
||||
.It Dv F_DUPFD
|
||||
新しいファイル記述子
|
||||
|
|
@ -397,7 +399,7 @@ struct flock {
|
|||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn fcntl
|
||||
関数は、次の場合に失敗します。
|
||||
関数は、次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EAGAIN
|
||||
引数
|
||||
|
|
@ -413,8 +415,8 @@ struct flock {
|
|||
.Pq Dv F_WRLCK
|
||||
で、ロックされるはずのファイルの
|
||||
セグメントは既に別のプロセスによって排他的に
|
||||
ロックされています。または、タイプが排他的なロックで、
|
||||
ロックされるファイルのセグメントの一部が
|
||||
ロックされています。
|
||||
または、タイプが排他的なロックで、ロックされるファイルのセグメントの一部が
|
||||
既に別のプロセスによって共有ロックまたは排他的ロックされています。
|
||||
.It Bq Er EBADF
|
||||
.Fa fd
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@
|
|||
.Fa fhp
|
||||
が参照するファイルを
|
||||
.Fa flags
|
||||
で指定にしたがって読み出し / 書き込み / 読み書き用にオープンし、
|
||||
で指定にしたがって読取り / 書込み / 読み書き用にオープンし、
|
||||
呼び出したプロセスにファイル記述子を返します。
|
||||
.Fa flags
|
||||
は、
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
.Fn fhopen ,
|
||||
.Fn fhstat ,
|
||||
.Fn fhstatfs
|
||||
は次のエラーを返します。
|
||||
は次のエラーを返します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fn fhopen
|
||||
|
|
@ -128,7 +128,8 @@
|
|||
.Fn fhstatfs
|
||||
は
|
||||
.Nx 1.5
|
||||
で最初に登場しました。Alfred Perlstein が
|
||||
で最初に登場しました。
|
||||
Alfred Perlstein が
|
||||
.Fx 4.0
|
||||
に移植しました。
|
||||
.Sh 作者
|
||||
|
|
|
|||
|
|
@ -81,8 +81,8 @@ flock()
|
|||
ロックと
|
||||
.Em 排他的
|
||||
ロックという 2 つのタイプのロックを提供します。
|
||||
いつでも複数の共有ロックを 1 つのファイルに適用できます。しかし、
|
||||
同時に 1 つのファイルに複数の排他的ロック、
|
||||
いつでも複数の共有ロックを 1 つのファイルに適用できます。
|
||||
しかし、同時に 1 つのファイルに複数の排他的ロック、
|
||||
または共有ロックと排他的ロックの両方を適用することはできません。
|
||||
.Pp
|
||||
適切なロックのタイプを指定するだけで、共有ロックは排他的ロックに
|
||||
|
|
@ -95,12 +95,13 @@ flock()
|
|||
解放した後かもしれません)。
|
||||
.Pp
|
||||
既にロックされているオブジェクトについてロックを要求すると、
|
||||
ロックが獲得できるまで呼び出し側はブロックされます。ただし
|
||||
ロックが獲得できるまで呼び出し側はブロックされます。
|
||||
ただし
|
||||
.Dv LOCK_NB
|
||||
が
|
||||
.Fa operation
|
||||
に含まれる場合はブロックされません。代わりに呼び出しが失敗し、
|
||||
エラー
|
||||
に含まれる場合はブロックされません。
|
||||
代わりに呼び出しが失敗し、エラー
|
||||
.Er EWOULDBLOCK
|
||||
が返されます。
|
||||
.Sh 注
|
||||
|
|
@ -112,9 +113,10 @@ flock()
|
|||
.Xr fork 2
|
||||
によって複製されたファイル記述子は、
|
||||
ロックの複数のインスタンスとはならずに、1 つのロックへの複数の
|
||||
参照になります。あるファイルについてのロックを保持しているプロセスが
|
||||
フォークし、子プロセスが明示的にその
|
||||
ファイルをアンロックする場合、親プロセスはそのロックを失います。
|
||||
参照になります。
|
||||
あるファイルについてのロックを保持しているプロセスがフォークし、
|
||||
子プロセスが明示的にそのファイルをアンロックする場合、
|
||||
親プロセスはそのロックを失います。
|
||||
.Pp
|
||||
ロックを待ってブロックしているプロセスはシグナルで起こされるかもしれません。
|
||||
.Sh 戻り値
|
||||
|
|
|
|||
|
|
@ -61,15 +61,15 @@
|
|||
子プロセスは、専用の、親の記述子のコピーを持ちます。
|
||||
それらの記述子は下層の同じオブジェクトを参照します。
|
||||
つまり子と親の間で、たとえばファイルオブジェクト内の
|
||||
ファイルポインタが共有されます。そのため
|
||||
子プロセスの記述子への
|
||||
ファイルポインタが共有されます。
|
||||
そのため子プロセスの記述子への
|
||||
.Xr lseek 2
|
||||
が、その後の親による
|
||||
.Xr read 2
|
||||
または
|
||||
.Xr write 2
|
||||
に影響を及ぼします。この記述子コピーは、
|
||||
新しく作成されたプロセス用の標準入出力を確立するために、
|
||||
に影響を及ぼします。
|
||||
この記述子コピーは、新しく作成されたプロセス用の標準入出力を確立するために、
|
||||
およびパイプをセットアップするために、シェルによっても使用されます。
|
||||
.It
|
||||
子プロセスのリソース使用状況は 0 に設定されます。
|
||||
|
|
@ -91,10 +91,11 @@
|
|||
.Sh エラー
|
||||
次の場合に
|
||||
.Fn fork
|
||||
関数は処理に失敗し、子プロセスは作成されません。
|
||||
関数は処理に失敗し、子プロセスは作成されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EAGAIN
|
||||
実行中のプロセスの合計数がシステムの限界を超えます。限界値は
|
||||
実行中のプロセスの合計数がシステムの限界を超えます。
|
||||
限界値は
|
||||
.Xr sysctl 3
|
||||
の MIB 変数の
|
||||
.Dv KERN_MAXPROC
|
||||
|
|
@ -102,8 +103,8 @@
|
|||
実際には限界はこれより 10 個少なくなります)。
|
||||
.It Bq Er EAGAIN
|
||||
ユーザがスーパユーザでなく、
|
||||
1 人のユーザによって実行中のプロセスの合計数にシステムが課す
|
||||
限界を越えます。限界は
|
||||
1 人のユーザによって実行中のプロセスの合計数が、システムの限界を越えます。
|
||||
限界は
|
||||
.Xr sysctl 3
|
||||
の MIB 変数の
|
||||
.Dv KERN_MAXPROCPERUID
|
||||
|
|
@ -111,7 +112,7 @@
|
|||
.It Bq Er EAGAIN
|
||||
ユーザがスーパユーザでなく、リソースパラメータの
|
||||
.Dv RLIMIT_NPROC
|
||||
に対応するソフトリソース限界を越えます。
|
||||
に対応するソフトリソース限界を越えます
|
||||
.Pf ( Xr getrlimit 2
|
||||
を参照)。
|
||||
.It Bq Er ENOMEM
|
||||
|
|
|
|||
|
|
@ -56,12 +56,13 @@
|
|||
.Pp
|
||||
.Fn fsync
|
||||
は、ファイルが既知の状態にあることを要求するプログラムによって
|
||||
使用される必要があります。たとえば、簡単なトランザクション機能の構築です。
|
||||
使用される必要があります。
|
||||
たとえば、簡単なトランザクション機能の構築です。
|
||||
.Sh 戻り値
|
||||
.Rv -std fsync
|
||||
.Sh エラー
|
||||
.Fn fsync
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa fd
|
||||
|
|
|
|||
|
|
@ -58,19 +58,20 @@
|
|||
が参照するディレクトリから
|
||||
.Fa buf
|
||||
が指すバッファ内に、ファイルシステムに独立なフォーマットの
|
||||
ディレクトリエントリを読取ります。
|
||||
ディレクトリエントリを読み取ります。
|
||||
最高で
|
||||
.Fa nbytes
|
||||
までのデータが転送されます。
|
||||
.Fa nbytes
|
||||
引数は、ファイルに対応するブロックサイズ以上である必要があります。
|
||||
.Xr stat 2
|
||||
を参照してください。このサイズより小さいバッファでは、
|
||||
を参照してください。
|
||||
このサイズより小さいバッファでは、
|
||||
これらの関数をサポートしない可能性のあるファイルシステムがあります。
|
||||
.Pp
|
||||
バッファ内のデータは
|
||||
.Em dirent
|
||||
構造体の連続で、それぞれ次のエントリが入っています。
|
||||
構造体の連続で、それぞれ次のエントリが入っています:
|
||||
.Bd -literal -offset indent
|
||||
u_int32_t d_fileno;
|
||||
u_int16_t d_reclen;
|
||||
|
|
@ -87,18 +88,17 @@ char d_name[MAXNAMELEN + 1]; /*
|
|||
.Fa d_fileno
|
||||
を持ちます。
|
||||
.Fa d_reclen
|
||||
エントリは、ディレクトリレコードの
|
||||
長さ (バイト単位) です。
|
||||
エントリは、ディレクトリレコードの長さ (バイト単位) です。
|
||||
.Fa d_type
|
||||
エントリは、ディレクトリレコードが指すファイルのタイプです。
|
||||
ファイルタイプの値は
|
||||
.Fa <sys/dirent.h>
|
||||
内に定義されます。
|
||||
.Fa d_name
|
||||
エントリにはヌルで終端されたファイル名が
|
||||
入っています。
|
||||
エントリにはヌル文字で終わるファイル名が入っています。
|
||||
.Fa d_namlen
|
||||
エントリは、ヌルバイトを除いたファイル名の長さを示します。それゆえ、
|
||||
エントリは、ヌルバイトを除いたファイル名の長さを示します。
|
||||
それゆえ、
|
||||
.Fa d_name
|
||||
の実際のサイズは 1 から
|
||||
.Dv MAXNAMELEN
|
||||
|
|
@ -109,13 +109,14 @@ char d_name[MAXNAMELEN + 1]; /*
|
|||
.Fa d_reclen
|
||||
エントリは、
|
||||
.Fa dirent
|
||||
構造体の開始点から次の構造体
|
||||
がある場合はその構造体へのオフセットとして使用されます。
|
||||
構造体の開始点から次の構造体がある場合は
|
||||
その構造体へのオフセットとして使用されます。
|
||||
.Pp
|
||||
実際に転送されたバイト数が返されます。
|
||||
.Fa fd
|
||||
に関連づけられた現在の位置を示すポインタは、
|
||||
エントリの次のブロックに設定されます。ポインタは
|
||||
エントリの次のブロックに設定されます。
|
||||
ポインタは
|
||||
.Fn getdirentries
|
||||
または
|
||||
.Fn getdents
|
||||
|
|
@ -123,9 +124,9 @@ char d_name[MAXNAMELEN + 1]; /*
|
|||
ディレクトリの終わりに到達した場合は、値 0 が返されます。
|
||||
.Pp
|
||||
.Fn getdirentries
|
||||
関数は、読み込まれたブロック位置を
|
||||
関数は、読み取られたブロック位置を
|
||||
.Fa basep
|
||||
が指す場所に書込みます。
|
||||
が指す場所に書き込みます。
|
||||
代わりに
|
||||
.Xr lseek 2
|
||||
によって現在の位置ポインタを設定、取得できます。
|
||||
|
|
@ -143,7 +144,7 @@ char d_name[MAXNAMELEN + 1]; /*
|
|||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn getdirentries
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa fd
|
||||
|
|
|
|||
|
|
@ -56,15 +56,14 @@
|
|||
.Rv -std getfh
|
||||
.Sh エラー
|
||||
.Fn getfh
|
||||
は以下の 1 つでも真の場合、処理に失敗します。
|
||||
は以下の 1 つでも真の場合、処理に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
.Fa path
|
||||
の構成要素中にディレクトリ以外のものが含まれています。
|
||||
.It Bq Er ENAMETOOLONG
|
||||
.Fa path
|
||||
の構成要素が 255 文字を越えているか、
|
||||
または
|
||||
の構成要素が 255 文字を越えているか、または
|
||||
.Fa path
|
||||
が 1023 文字を越えています。
|
||||
.It Bq Er ENOENT
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ struct statfs {
|
|||
.Bl -tag -width MNT_ASYNCHRONOUS
|
||||
.It Dv MNT_RDONLY
|
||||
ファイルシステムは読取り専用としてマウントされています。
|
||||
スーパユーザも書込みすることはできません。
|
||||
スーパユーザも書き込むことはできません。
|
||||
.It Dv MNT_NOEXEC
|
||||
そのファイルシステム上のファイルを実行することはできません。
|
||||
.It Dv MNT_NOSUID
|
||||
|
|
@ -151,13 +151,13 @@ struct statfs {
|
|||
.Sh 戻り値
|
||||
正常に完了すると
|
||||
.Fa fsstat
|
||||
構造体の数が返されます。そうでない場合は -1 が返され、エラーを示すために
|
||||
グローバル変数
|
||||
構造体の数が返されます。
|
||||
そうでない場合は -1 が返され、エラーを示すためにグローバル変数
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn getfsstat
|
||||
は以下の 1 つでも真の場合、処理に失敗します。
|
||||
は以下の 1 つでも真の場合、処理に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
.Fa buf
|
||||
|
|
|
|||
|
|
@ -59,10 +59,10 @@
|
|||
.Pp
|
||||
実グループ ID はプログラムを起動したユーザのグループです。
|
||||
実効グループ ID は
|
||||
.Dq Em set-group-ID
|
||||
.Dq Em グループ ID 設定
|
||||
モードプロセスの実行の間にプロセスに追加のパーミッションを与えるので、
|
||||
.Fn getgid
|
||||
は呼び出しプロセスの real-user-id を知るために使用されます。
|
||||
は呼び出しプロセスの実ユーザ ID を知るために使用されます。
|
||||
.Sh エラー
|
||||
.Fn getgid
|
||||
関数と
|
||||
|
|
@ -79,4 +79,4 @@
|
|||
.Fn getegid
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
に保存されます。
|
||||
.Sh エラー
|
||||
.Fn getgroups
|
||||
で起こり得るエラーは次のとおりです。
|
||||
で起こり得るエラーは次のとおりです:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
引数
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@
|
|||
.Pp
|
||||
タイマの値は
|
||||
.Fa itimerval
|
||||
構造体によって定義されます。
|
||||
構造体によって定義されます:
|
||||
.Bd -literal -offset indent
|
||||
struct itimerval {
|
||||
struct timeval it_interval; /* タイマインターバル */
|
||||
|
|
@ -84,8 +84,7 @@ struct itimerval {
|
|||
.Fa it_interval
|
||||
が 0 でない場合、それはタイマが時間切れになるときに
|
||||
.Fa it_value
|
||||
を再設定するのに
|
||||
使用される値を指定します。
|
||||
を再設定するのに使用される値を指定します。
|
||||
.Fa it_value
|
||||
を 0 に設定すると、タイマは
|
||||
.Fa it_interval
|
||||
|
|
@ -99,14 +98,15 @@ struct itimerval {
|
|||
この精度に切り上げられます。
|
||||
.Pp
|
||||
.Dv ITIMER_REAL
|
||||
タイマはリアルタイムで減少していきます。このタイマが時間切れになると
|
||||
タイマはリアルタイムで減少していきます。
|
||||
このタイマが時間切れになると
|
||||
.Dv SIGALRM
|
||||
シグナルが配信されます。
|
||||
.Pp
|
||||
.Dv ITIMER_VIRTUAL
|
||||
タイマはプロセス仮想時間で減少します。
|
||||
このタイマが減るのはプロセスが実行中の
|
||||
ときだけです。時間切れになるときに
|
||||
このタイマが減るのはプロセスが実行中のときだけです。
|
||||
時間切れになるときに
|
||||
.Dv SIGVTALRM
|
||||
シグナルが配信されます。
|
||||
.Pp
|
||||
|
|
@ -145,7 +145,7 @@ struct itimerval {
|
|||
.Fn getitimer
|
||||
と
|
||||
.Fn setitimer
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
.Fa value
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
.Nm getlogin ,
|
||||
.Nm getlogin_r ,
|
||||
.Nm setlogin
|
||||
.Nd ログイン名を取得 / 設定
|
||||
.Nd ログイン名を取得 / 設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -56,8 +56,7 @@
|
|||
.Fn getlogin
|
||||
ルーチンは、
|
||||
.Fn setlogin
|
||||
で設定した現在のセッションに対応する
|
||||
ユーザのログイン名を返します。
|
||||
で設定した現在のセッションに対応するユーザのログイン名を返します。
|
||||
通常、名前はセッションが作成された時点でログインシェルに対応し、
|
||||
ログインシェルから派生する全てのプロセスに継承されます
|
||||
(これらのプロセスが別のユーザ ID を想定している場合、たとえば、
|
||||
|
|
@ -67,12 +66,12 @@
|
|||
.Fn getlogin_r
|
||||
は
|
||||
.Fn getlogin
|
||||
と同様のサービスを提供しますが、
|
||||
呼び出し側は結果を保持するための長さ
|
||||
と同様のサービスを提供しますが、呼び出し側は結果を保持するための長さ
|
||||
.Fa len
|
||||
バイトのバッファ
|
||||
.Fa name
|
||||
を用意しなければなりません。バッファは少なくとも
|
||||
を用意しなければなりません。
|
||||
バッファは少なくとも
|
||||
.Dv MAXLOGNAME
|
||||
バイトの長さがあるべきです。
|
||||
.Pp
|
||||
|
|
@ -83,8 +82,7 @@
|
|||
この呼び出しはスーパユーザに制限されており、
|
||||
新しいセッションがユーザのために
|
||||
作成されるときにだけ使用されるのが普通です
|
||||
(たとえば、ログイン時、またはリモートシェルが
|
||||
起動されるときです)。
|
||||
(たとえば、ログイン時、またはリモートシェルが起動されるときです)。
|
||||
.Pp
|
||||
.Em 注釈 :
|
||||
セッションごとに 1 つのログイン名しかありません。
|
||||
|
|
@ -96,8 +94,7 @@
|
|||
.Em 非常に
|
||||
重要です。
|
||||
.Fn setsid
|
||||
システムコール
|
||||
を行なうのがこれをする
|
||||
システムコールを行うのがこれをする
|
||||
.Em 唯一の
|
||||
方法です。
|
||||
.Fn daemon
|
||||
|
|
@ -115,10 +112,9 @@
|
|||
.Pp
|
||||
親プロセスがいったん
|
||||
.Fn setsid
|
||||
呼び出しを行なえば、セッションリーダでない
|
||||
そのプロセスの子が
|
||||
呼び出しを行えば、セッションリーダでないそのプロセスの子が
|
||||
.Fn setlogin
|
||||
を行なうことも受け入れられますが、親を含めてセッション内のすべての
|
||||
を行うことも受け入れられますが、親を含めてセッション内のすべての
|
||||
プロセスが同時にログイン名を変更されることに注意してください。
|
||||
.Pp
|
||||
これは特権を継承する従来の UNIX の動作と同じではありません。
|
||||
|
|
@ -129,28 +125,30 @@
|
|||
プログラマが適切な注意を払うものだと仮定しています。
|
||||
.Sh 戻り値
|
||||
.Fn getlogin
|
||||
の呼び出しが成功すると、静的バッファ内のヌルで終端された文字列への
|
||||
の呼び出しが成功すると、静的バッファ内のヌル文字で終わる文字列への
|
||||
ポインタが返されます。
|
||||
名前が設定されていない場合は、
|
||||
.Dv NULL
|
||||
が返されます。
|
||||
.Fn getlogin_r
|
||||
の呼び出しが成功すると、0 が返されます。失敗するとエラー番号
|
||||
が返されます。
|
||||
の呼び出しが成功すると、0 が返されます。
|
||||
失敗するとエラー番号が返されます。
|
||||
.Pp
|
||||
.Rv -std setlogin
|
||||
.Sh エラー
|
||||
これらの呼び出しによって以下のエラーが返される可能性があります。
|
||||
これらの呼び出しによって以下のエラーが返される可能性があります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
.Fa name
|
||||
パラメータで無効なアドレスを与えました。
|
||||
.It Bq Er EINVAL
|
||||
.Fa name
|
||||
パラメータが長すぎる文字列を指しています。ログイン名は
|
||||
パラメータが長すぎる文字列を指しています。
|
||||
ログイン名は
|
||||
.Pf ( Ao Pa sys/param.h Ac の )
|
||||
.Dv MAXLOGNAME
|
||||
文字までに制限されます。現時点ではヌルを含めて 17 文字です。
|
||||
文字までに制限されます。
|
||||
現時点ではヌルを含めて 17 文字です。
|
||||
.It Bq Er EPERM
|
||||
ログイン名を設定しようとした呼び出し元が
|
||||
スーパユーザではありませんでした。
|
||||
|
|
@ -163,15 +161,14 @@
|
|||
.Sh バグ
|
||||
システムの以前のバージョンでは、
|
||||
.Fn getlogin
|
||||
はプロセスがログイン端末に対応していない限り
|
||||
処理に失敗しました。現在では、
|
||||
はプロセスがログイン端末に対応していない限り処理に失敗しました。
|
||||
現在では、
|
||||
.Pf ( Fn setlogin
|
||||
を使用して) プロセスに制御端末がないときでも
|
||||
getlogin は正常に完了します。初期のバージョンでは、
|
||||
を使用して) プロセスに制御端末がないときでも getlogin は正常に完了します。
|
||||
初期のバージョンでは、
|
||||
.Fn getlogin
|
||||
が返す値はユーザ ID をチェックせずには
|
||||
信頼することができませんでした。
|
||||
移植性の高いプログラムはおそらくまだこのチェックを行なっているはずです。
|
||||
が返す値はユーザ ID をチェックせずには信頼することができませんでした。
|
||||
移植性の高いプログラムはおそらくまだこのチェックを行っているはずです。
|
||||
.Sh 歴史
|
||||
.Fn getlogin
|
||||
関数は
|
||||
|
|
@ -180,7 +177,7 @@ getlogin
|
|||
.Fn getlogin_r
|
||||
の戻り値は
|
||||
.St -p1003.1-96
|
||||
に準拠するために
|
||||
に適合するために
|
||||
.Fx
|
||||
の初期のバージョンから変更されました。
|
||||
.Sh 規格
|
||||
|
|
@ -189,4 +186,4 @@ getlogin
|
|||
.Fn getlogin_r
|
||||
は
|
||||
.St -p1003.1-96
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -54,14 +54,14 @@
|
|||
.Fa namelen
|
||||
パラメータには、
|
||||
.Fa name
|
||||
が指す空間の量を示す値を入れておく必要があります。
|
||||
が指す空間の大きさを示す値を入れておく必要があります。
|
||||
戻る時に、これには返された名前の
|
||||
実際のサイズ (バイト単位) が入れられます。
|
||||
準備されたバッファが小さすぎる場合、名前は切り捨てられます。
|
||||
.Sh 戻り値
|
||||
.Rv -std getpeername
|
||||
.Sh エラー
|
||||
以降の場合を除いて呼び出しは処理に成功します。
|
||||
以降の場合を除いて呼び出しは処理に成功します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
引数
|
||||
|
|
|
|||
|
|
@ -53,8 +53,7 @@
|
|||
.Fn getpgrp
|
||||
によって返されます。
|
||||
.Fa pid
|
||||
によって識別される
|
||||
プロセスのプロセスグループは
|
||||
によって識別されるプロセスのプロセスグループは
|
||||
.Fn getpgid
|
||||
によって返されます。
|
||||
.Fa pid
|
||||
|
|
@ -65,18 +64,18 @@
|
|||
プロセスグループはシグナルの配信用に使用され、
|
||||
また端末によって入力の要求を調整するのにも使用されます。
|
||||
端末と同じプロセスグループを持つ (1 つ以上の) プロセスは
|
||||
フォアグラウンドであり読み取りできます。一方でその他のプロセスが
|
||||
読み取ろうした場合はシグナルによってブロックさせられます。
|
||||
フォアグラウンドであり読み取りできます。
|
||||
一方で、その他のプロセスが読み取ろうした場合は、
|
||||
シグナルによってブロックさせられます。
|
||||
.Pp
|
||||
このように、この呼び出しは
|
||||
.Xr csh 1
|
||||
のようにジョブ制御のためにプロセスグループの作成を
|
||||
行なうプログラムによって使用されます。
|
||||
行うプログラムによって使用されます。
|
||||
.Fn tcgetpgrp
|
||||
呼び出しと
|
||||
.Fn tcsetpgrp
|
||||
呼び出しは制御端末のプロセスグループ
|
||||
を取得/設定するのに使用されます。
|
||||
呼び出しは制御端末のプロセスグループを取得 / 設定するのに使用されます。
|
||||
.Sh 戻り値
|
||||
.Fn getpgrp
|
||||
呼び出しは、常に成功します。
|
||||
|
|
@ -109,14 +108,14 @@
|
|||
.Fn getpgrp
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 互換性
|
||||
このバージョンの
|
||||
.Fn getpgrp
|
||||
は、
|
||||
.Fa "pid_t pid"
|
||||
引数を取らないという点で過去の Berkeley バージョンとは
|
||||
異なっています。互換性は
|
||||
引数を取らないという点で過去の Berkeley バージョンとは異なっています。
|
||||
互換性は
|
||||
.St -p1003.1-90
|
||||
への対応により失われてしまいました。
|
||||
.Pp
|
||||
|
|
@ -129,7 +128,8 @@
|
|||
関数を備えています。
|
||||
この関数はジョブ制御をサポートするのに使用されますが、
|
||||
既知のジョブ制御をする全てのシェルは、必ずこの関数に
|
||||
呼び出しプロセスを指定しています。そのためより簡単な
|
||||
呼び出しプロセスを指定しています。
|
||||
そのためより簡単な
|
||||
.At V
|
||||
.Fn getpgrp
|
||||
で十分であり、
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ ID
|
|||
.Fn getppid
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn getpid
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
.Sh 名称
|
||||
.Nm getpriority ,
|
||||
.Nm setpriority
|
||||
.Nd プログラムスケジュール優先順位を取得 / 設定
|
||||
.Nd プログラムスケジュール優先順位を取得 / 設定する
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -88,8 +88,8 @@
|
|||
呼び出しは、指定のプロセスのいずれかが享受する最高の優先順位を
|
||||
返してきます (最も小さい数値です)。
|
||||
.Fn setpriority
|
||||
呼び出しは、指定されたすべてのプロセスの優先順位を指定の値に
|
||||
設定します。スーパユーザだけが優先順位を低くできます。
|
||||
呼び出しは、指定されたすべてのプロセスの優先順位を指定の値に設定します。
|
||||
スーパユーザだけが優先順位を低くできます。
|
||||
.Sh 戻り値
|
||||
.Fn getpriority
|
||||
は処理を正しく完了しても値 -1 を返すことがあるので、
|
||||
|
|
@ -103,14 +103,14 @@
|
|||
.Fn getpriority
|
||||
と
|
||||
.Fn setpriority
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ESRCH
|
||||
指定された
|
||||
.Fa which
|
||||
と
|
||||
.Fa who
|
||||
の値を使用して、プロセスが見つかりませんでした。
|
||||
の値を使用しているプロセスが見つかりませんでした。
|
||||
.It Bq Er EINVAL
|
||||
.Fa which
|
||||
が
|
||||
|
|
@ -124,7 +124,7 @@
|
|||
.Bl -tag -width Er
|
||||
上記のエラーだけでなく、
|
||||
.Fn setpriority
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.It Bq Er EPERM
|
||||
プロセスは検出されたものの、その実効 ID も実ユーザ ID の
|
||||
どちらも、呼び出し側の実効ユーザ ID に一致しませんでした。
|
||||
|
|
|
|||
|
|
@ -59,48 +59,49 @@
|
|||
呼び出しで設定できます。
|
||||
.Pp
|
||||
.Fa resource
|
||||
パラメータは次のうちの 1 つです。
|
||||
パラメータは次のうちの 1 つです:
|
||||
.Bl -tag -width RLIMIT_FSIZEAA
|
||||
.It Li RLIMIT_CORE
|
||||
作成できる
|
||||
.Xr core 5
|
||||
ファイルの最大サイズ (バイト単位)
|
||||
ファイルの最大サイズ (バイト単位)。
|
||||
.It Li RLIMIT_CPU
|
||||
各プロセスが使用する CPU 時間の最大量 (秒単位)
|
||||
各プロセスが使用する CPU 時間の最大量 (秒単位)。
|
||||
.It Li RLIMIT_DATA
|
||||
プロセス用のデータセグメントの最大サイズ (バイト単位)。
|
||||
これは、プログラムがそのブレークを
|
||||
.Xr sbrk 2
|
||||
システムコールでどのくらい遠くまで延長できるかを定義します。
|
||||
.It Li RLIMIT_FSIZE
|
||||
作成できるファイルの最大サイズ (バイト単位)
|
||||
作成できるファイルの最大サイズ (バイト単位)。
|
||||
.It Li RLIMIT_MEMLOCK
|
||||
プロセスが
|
||||
.Xr mlock 2
|
||||
関数を使用して、プロセスをメモリにロックできる
|
||||
最大サイズ (バイト単位)。
|
||||
.It Li RLIMIT_NOFILE
|
||||
このプロセスが開けるファイルの最大数
|
||||
このプロセスが開けるファイルの最大数。
|
||||
.It Li RLIMIT_NPROC
|
||||
このユーザ ID が同時に利用できるプロセスの最大数
|
||||
このユーザ ID が同時に利用できるプロセスの最大数。
|
||||
.It Li RLIMIT_RSS
|
||||
増加させて良いプロセスの常駐セットサイズの最大サイズ (バイト単位)。
|
||||
これはプロセスに与えられる物理メモリの量に制限を課します。
|
||||
メモリが逼迫してシステムがメモリを回収する際に、
|
||||
宣言された常駐セットサイズを越えるプロセスを回収対象として選択します。
|
||||
.It Li RLIMIT_STACK
|
||||
プロセスのスタックセグメントの最大サイズ (バイト数)。これによって、
|
||||
プロセスのスタックセグメントの最大サイズ (バイト数)。
|
||||
これによって、
|
||||
プログラムのスタックセグメントをどのくらい延長できるか定義できます。
|
||||
スタック延長はシステムによって自動的に実行されます。
|
||||
.It Li RLIMIT_SBSIZE
|
||||
このユーザが使用できるソケットバッファの最大サイズ (バイト単位)。
|
||||
このサイズは、ユーザがいつでも保持できるネットワークメモリ量を
|
||||
制限しますので、したがって mbuf の使用量も制限します。
|
||||
制限します。
|
||||
したがって mbuf の使用量も制限されます。
|
||||
.El
|
||||
.Pp
|
||||
リソースリミットはソフトリミットおよびハードリミットとして
|
||||
指定されます。ソフトリミットを越えた場合、
|
||||
プロセスはシグナルを受信する可能性があります
|
||||
リソースリミットはソフトリミットおよびハードリミットとして指定されます。
|
||||
ソフトリミットを越えた場合、プロセスはシグナルを受信する可能性があります
|
||||
(例えば、CPU 時間またはファイルサイズを越えた場合) が、
|
||||
ハードリミットに到達する (またはリソースリミットを修正する)
|
||||
まで実行を継続することはできます。
|
||||
|
|
@ -142,8 +143,8 @@ struct rlimit {
|
|||
データまたはスタック空間を延長することを拒絶します。
|
||||
データ空間リミットに到達すると
|
||||
.Xr brk 2
|
||||
呼び出しは処理に失敗します。スタックリミットに到達すると、
|
||||
プロセスはセグメント例外
|
||||
呼び出しは処理に失敗します。
|
||||
スタックリミットに到達すると、プロセスはセグメント例外
|
||||
.Pq Dv SIGSEGV
|
||||
を受信します。
|
||||
シグナルスタックを使用するハンドラによって
|
||||
|
|
@ -152,8 +153,8 @@ struct rlimit {
|
|||
プロセスのソフトリミットより大きなファイルを
|
||||
作成するファイルの入出力操作をすると書込みは失敗し、シグナル
|
||||
.Dv SIGXFSZ
|
||||
が生成されます。通常、これによってプロセスは終了しますが、
|
||||
捕捉することもできます。
|
||||
が生成されます。
|
||||
通常、これによってプロセスは終了しますが、捕捉することもできます。
|
||||
CPU 時間のソフトリミットを越えたとき、シグナル
|
||||
.Dv SIGXCPU
|
||||
が障害を起こしているプロセスに送信されます。
|
||||
|
|
@ -163,7 +164,7 @@ CPU
|
|||
.Fn getrlimit
|
||||
および
|
||||
.Fn setrlimit
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
.Fa rlp
|
||||
|
|
|
|||
|
|
@ -82,22 +82,23 @@ struct rusage {
|
|||
};
|
||||
.Ed
|
||||
.Pp
|
||||
フィールドは次のように解釈されます。
|
||||
フィールドは次のように解釈されます:
|
||||
.Bl -tag -width ru_minfltaa
|
||||
.It Fa ru_utime
|
||||
ユーザモードで処理を実行するのに費やした時間の合計
|
||||
ユーザモードで処理を実行するのに費やした時間の合計。
|
||||
.It Fa ru_stime
|
||||
(1 つ以上の) プロセスのためにシステムが処理を実行するのに
|
||||
消費した時間の合計
|
||||
消費した時間の合計。
|
||||
.It Fa ru_maxrss
|
||||
使用された常駐セットサイズの最大値 (キロバイト単位)
|
||||
使用された常駐セットサイズの最大値 (キロバイト単位)。
|
||||
.It Fa ru_ixrss
|
||||
他のプロセスとの間でも共有されていたテキストセグメント
|
||||
によって使用されたメモリ量の
|
||||
.Dq 合計
|
||||
値。
|
||||
この値は「キロバイト * 実行のチック数」の単位で表現されます。
|
||||
チックは統計用のクロックチックです。統計用クロックの周波数は
|
||||
チックは統計用のクロックチックです。
|
||||
統計用クロックの周波数は
|
||||
.Fn sysconf _SC_CLOCK_TCK
|
||||
チック / 秒です。
|
||||
.It Fa ru_idrss
|
||||
|
|
@ -113,21 +114,21 @@ struct rusage {
|
|||
.Dq 再生
|
||||
することで回避されます。
|
||||
.It Fa ru_majflt
|
||||
入出力アクティビティを必要としたサービスを受けたページフォルトの数
|
||||
入出力アクティビティを必要としたサービスを受けたページフォルトの数。
|
||||
.It Fa ru_nswap
|
||||
プロセスがメインメモリから
|
||||
.Dq スワップ
|
||||
された回数
|
||||
された回数。
|
||||
.It Fa ru_inblock
|
||||
ファイルシステムが入力を実行する必要があった回数
|
||||
ファイルシステムが入力を実行する必要があった回数。
|
||||
.It Fa ru_oublock
|
||||
ファイルシステムが出力を実行する必要があった回数
|
||||
ファイルシステムが出力を実行する必要があった回数。
|
||||
.It Fa ru_msgsnd
|
||||
送信された IPC メッセージの数
|
||||
送信された IPC メッセージの数。
|
||||
.It Fa ru_msgrcv
|
||||
受信した IPC メッセージの数
|
||||
受信した IPC メッセージの数。
|
||||
.It Fa ru_nsignals
|
||||
配信されたシグナルの数
|
||||
配信されたシグナルの数。
|
||||
.It Fa ru_nvcsw
|
||||
タイムスライスが完了する前に、プロセスが自発的にプロセッサを
|
||||
放棄した結果として発生したコンテキストスイッチの回数
|
||||
|
|
@ -148,7 +149,7 @@ struct rusage {
|
|||
.Rv -std getrusage
|
||||
.Sh エラー
|
||||
.Fn getrusage
|
||||
関数は次の場合に処理を失敗します。
|
||||
関数は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa who
|
||||
|
|
|
|||
|
|
@ -40,8 +40,7 @@
|
|||
.Fn getsid
|
||||
は
|
||||
.Fa pid
|
||||
によって識別されるプロセスのセッション ID を
|
||||
返します。
|
||||
によって識別されるプロセスのセッション ID を返します。
|
||||
.Fa pid
|
||||
が 0 の場合、
|
||||
.Fn getsid
|
||||
|
|
@ -55,7 +54,7 @@
|
|||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn getsid
|
||||
は次の場合を除いて正常に完了します。
|
||||
は次の場合を除いて正常に完了します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ESRCH
|
||||
.Fa pid
|
||||
|
|
|
|||
|
|
@ -54,12 +54,12 @@
|
|||
.Fa namelen
|
||||
パラメータは、
|
||||
.Fa name
|
||||
が指す空間の量を示すように初期化しておく必要があります。
|
||||
が指す空間の大きさを示すように初期化しておく必要があります。
|
||||
戻る時には返された名前の実際のサイズ (バイト単位) が入ります。
|
||||
.Sh 戻り値
|
||||
.Rv -std getsockname
|
||||
.Sh エラー
|
||||
呼び出しは、次の場合を除いて正常に完了します。
|
||||
呼び出しは、次の場合を除いて正常に完了します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
引数
|
||||
|
|
|
|||
|
|
@ -123,8 +123,8 @@
|
|||
.Ao Pa sys/socket.h Ac
|
||||
で定義された
|
||||
.Fa struct linger
|
||||
パラメータを使用します。これは、
|
||||
目的の状態のオプションとリンガーインターバル (後述) を指定します。
|
||||
パラメータを使用します。
|
||||
これは、目的の状態のオプションとリンガ間隔 (後述) を指定します。
|
||||
.Dv SO_SNDTIMEO
|
||||
と
|
||||
.Dv SO_RCVTIMEO
|
||||
|
|
@ -190,12 +190,12 @@
|
|||
.Dv SO_LINGER
|
||||
は送信されていないメッセージがソケットの待ち行列にあり、しかも
|
||||
.Xr close 2
|
||||
が実行される時に行なわれる処置を制御します。
|
||||
が実行される時に行われる処置を制御します。
|
||||
ソケットがデータの信頼できる配信を確約し、しかも
|
||||
.Dv SO_LINGER
|
||||
が設定されている場合、
|
||||
データを送信できるまで または情報を配信できない
|
||||
(リンガーインターバルと呼ばれるタイムアウト時間は、
|
||||
(リンガ間隔と呼ばれるタイムアウト時間は、
|
||||
.Dv SO_LINGER
|
||||
が要求されるときに
|
||||
.Fn setsockopt
|
||||
|
|
@ -211,11 +211,13 @@
|
|||
オプション
|
||||
.Dv SO_BROADCAST
|
||||
は、ソケット上でブロードキャストデータグラムを送信するパーミッションを
|
||||
要求します。ブロードキャストは、システムの初期バージョンでは特権操作でした。
|
||||
要求します。
|
||||
ブロードキャストは、システムの初期バージョンでは特権操作でした。
|
||||
バンド外のデータをサポートするプロトコルで、
|
||||
.Dv SO_OOBINLINE
|
||||
オプションは、バンド外のデータが受信された順番で通常の
|
||||
データ入力待ち行列に配置されることを要求します。そして、これは
|
||||
データ入力待ち行列に配置されることを要求します。
|
||||
そして、これは
|
||||
.Dv MSG_OOB
|
||||
フラグなしに
|
||||
.Xr recv 2
|
||||
|
|
@ -232,30 +234,33 @@
|
|||
バッファのサイズは、高ボリューム接続のために増加することができますし、
|
||||
着信データの可能なバックログを
|
||||
制限するために減少させることもできます。
|
||||
システムはこれらの値について 1 つの絶対最大値を設定します。この
|
||||
最大値は
|
||||
システムはこれらの値について 1 つの絶対最大値を設定します。
|
||||
この最大値は
|
||||
.Xr sysctl 3
|
||||
MIB 変数
|
||||
.Dq Li kern.ipc.maxsockbuf
|
||||
によってアクセスできます。
|
||||
.Pp
|
||||
.Dv SO_SNDLOWAT
|
||||
は出力操作に最小カウントを設定するオプションです。ほとんどの出力操作は、
|
||||
送信用のプロトコルにデータを配信し、フロー制御のためにブロックしながら
|
||||
呼び出しによって与えられたすべてのデータを処理します。
|
||||
は出力操作に最小カウントを設定するオプションです。
|
||||
ほとんどの出力操作は、送信用のプロトコルにデータを配信し、
|
||||
フロー制御のためにブロックしながら呼び出しによって与えられた
|
||||
すべてのデータを処理します。
|
||||
ノンブロッキング出力操作は、ブロックなしのフロー制御に従って
|
||||
許容される限界までデータを処理しますが、フロー制御が
|
||||
最低基準値または要求全体のいずれか小さい方を処理することを許容しない
|
||||
場合はデータを処理しません。ソケットへの書込み能力を試験する
|
||||
場合はデータを処理しません。
|
||||
ソケットへの書込み能力を試験する
|
||||
.Xr select 2
|
||||
操作が真で返るのは、最低基準値を処理できる場合だけです。
|
||||
.Dv SO_SNDLOWAT
|
||||
のデフォルト値はネットワーク効率性のために
|
||||
適切なサイズ (多くの場合は 1024) に設定されます。
|
||||
.Dv SO_RCVLOWAT
|
||||
は入力操作の最小カウントを設定するオプションです。一般に、受信呼び出しは、
|
||||
いくらかの (0 でない) データが受信されるまでブロックしてから、
|
||||
利用できる量または要求された量のいずれか少ない方とともに戻ります。
|
||||
は入力操作の最小カウントを設定するオプションです。
|
||||
一般に、受信呼び出しは、いくらかの (0 でない) データが
|
||||
受信されるまでブロックしてから、利用できる量または
|
||||
要求された量のいずれか少ない方とともに戻ります。
|
||||
.Dv SO_RCVLOWAT
|
||||
のデフォルト値は 1 です。
|
||||
.Dv SO_RCVLOWAT
|
||||
|
|
@ -271,19 +276,21 @@ MIB
|
|||
これは、出力操作完了の待機を制限するために使用される秒数、
|
||||
マイクロ秒数を
|
||||
.Fa struct timeval
|
||||
パラメータで指定します。送信操作が
|
||||
指定された時間以上ブロックされた場合、部分的なカウントで戻るか、
|
||||
パラメータで指定します。
|
||||
送信操作が指定された時間以上ブロックされた場合、部分的なカウントで戻るか、
|
||||
またはデータが送信されていない場合はエラー
|
||||
.Er EWOULDBLOCK
|
||||
で戻ります。現在の実装では、このタイマは追加の各データがプロトコルに
|
||||
で戻ります。
|
||||
現在の実装では、このタイマは追加の各データがプロトコルに
|
||||
配信されるたびに再起動され、これはサイズが出力用の最低基準値から
|
||||
最高基準値の範囲に至る出力部分に適用されることを意味します。
|
||||
.Dv SO_RCVTIMEO
|
||||
は入力操作についてタイムアウト値を設定するオプションです。
|
||||
これは入力操作完了の待機を制限するために使用される秒数、マイクロ秒数を
|
||||
.Fa struct timeval
|
||||
パラメータで指定します。現在の実装では、このタイマは
|
||||
追加のデータがプロトコルによって受信されるたびに再起動されるので、
|
||||
パラメータで指定します。
|
||||
現在の実装では、このタイマは追加のデータがプロトコルによって
|
||||
受信されるたびに再起動されるので、
|
||||
制限は実際には休止期間のタイマとなります。
|
||||
追加のデータを受信することなく受信操作がこれだけの時間について
|
||||
ブロックされた場合、短いカウントで戻るか、
|
||||
|
|
@ -294,8 +301,8 @@ MIB
|
|||
.Dv SO_ACCEPTFILTER
|
||||
は、ソケット上に
|
||||
.Xr accept_filter 9
|
||||
を置きます。これにより、待ち受けしているストリームソケットに
|
||||
入ってくる接続が
|
||||
を置きます。
|
||||
これにより、待ち受けしているストリームソケットに入ってくる接続が
|
||||
.Xr accept 2
|
||||
に渡される前にフィルタされることになります。
|
||||
念のため繰り返します。
|
||||
|
|
@ -315,7 +322,8 @@ struct accept_filter_arg {
|
|||
.Fa optval
|
||||
は
|
||||
.Fa struct accept_filter_arg
|
||||
を指さなくてはなりません。この構造体が
|
||||
を指さなくてはなりません。
|
||||
この構造体が
|
||||
.Xr accept_filter 9
|
||||
を選択、設定します。
|
||||
.Fa af_name
|
||||
|
|
@ -341,8 +349,8 @@ NULL
|
|||
.Dv SO_TYPE
|
||||
では
|
||||
.Dv SOCK_STREAM
|
||||
のようなソケットのタイプが返ります。これは
|
||||
スタートアップ時にソケットを継承するようなサーバに便利です。
|
||||
のようなソケットのタイプが返ります。
|
||||
これはスタートアップ時にソケットを継承するようなサーバに便利です。
|
||||
.Dv SO_ERROR
|
||||
はソケット上で延期中のエラーを返し、エラー状態をクリアします。
|
||||
これは接続されたデータグラムソケット上の非同期的エラーをチェックしたり、
|
||||
|
|
@ -350,7 +358,7 @@ NULL
|
|||
.Sh 戻り値
|
||||
.Rv -std
|
||||
.Sh エラー
|
||||
呼び出しは次の場合を除いて正常です。
|
||||
呼び出しは次の場合を除いて正常です:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
引数
|
||||
|
|
|
|||
|
|
@ -58,7 +58,8 @@
|
|||
.Fn gettimeofday
|
||||
呼び出しから得られ、
|
||||
.Fn settimeofday
|
||||
呼び出しで設定されます。時刻は 1970 年 1 月 1 日の深夜 (0 時)
|
||||
呼び出しで設定されます。
|
||||
時刻は 1970 年 1 月 1 日の深夜 (0 時)
|
||||
からの秒数とマイクロ秒数で表現されます。
|
||||
システムクロックの分解能はハードウェアで決まり、
|
||||
時刻は継続的または
|
||||
|
|
@ -74,11 +75,11 @@
|
|||
.Fa tzp
|
||||
の指す構造体は
|
||||
.Ao Pa sys/time.h Ac
|
||||
内に次のように定義されています。
|
||||
内に次のように定義されています:
|
||||
.Pp
|
||||
.Bd -literal
|
||||
struct timeval {
|
||||
long tv_sec; /* 1970年1月1日からの秒数 */
|
||||
long tv_sec; /* 1970 年 1 月 1 日からの秒数 */
|
||||
long tv_usec; /* およびマイクロ秒数 */
|
||||
};
|
||||
|
||||
|
|
@ -90,7 +91,8 @@ struct timezone {
|
|||
.Pp
|
||||
.Fa timezone
|
||||
構造体は、ローカル時間帯 (グリニッジから西向きに分単位で測定) と
|
||||
フラグを含みます。フラグが 0 でない場合は、一年の適切な時期に
|
||||
フラグを含みます。
|
||||
フラグが 0 でない場合は、1 年の適切な時期に
|
||||
夏時間がその地域に適用されることを示します。
|
||||
.Pp
|
||||
スーパユーザだけが時刻または時間帯を設定できます。
|
||||
|
|
@ -107,7 +109,7 @@ struct timezone {
|
|||
.Sh エラー
|
||||
次のエラーコードが
|
||||
.Va errno
|
||||
に設定されます。
|
||||
に設定されます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
引数アドレスが無効なメモリを参照しました。
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
.Pp
|
||||
実ユーザ ID は、プログラムを起動したユーザの ID です。
|
||||
実効ユーザ ID は、
|
||||
.Dq Em set-user-ID
|
||||
.Dq Em ユーザ ID 設定
|
||||
モードプロセスの実行中にプロセスに追加のパーミッションを与えるので、
|
||||
.Fn getuid
|
||||
を使用して呼び出しプロセスの実ユーザ ID を把握します。
|
||||
|
|
@ -78,7 +78,7 @@
|
|||
.Fn getuid
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn getuid
|
||||
関数と
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@
|
|||
.Fn i386_get_ioperm
|
||||
は、プロセスの入出力ポート空間についてのパーミッションを
|
||||
.Fa *enable
|
||||
引数内に返します。ポートの範囲は
|
||||
引数内に返します。
|
||||
ポートの範囲は
|
||||
.Fa start
|
||||
で開始し、連続エントリの数が
|
||||
.Fa *length
|
||||
|
|
@ -64,7 +65,7 @@
|
|||
.Fn i386_get_ioperm
|
||||
と
|
||||
.Fn i386_set_ioperm
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa start
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@
|
|||
.Fn i386_get_ldt
|
||||
はプロセスの LDT の中にある i386 記述子のリストを返します。
|
||||
.Fn i386_set_ldt
|
||||
は現在のプロセスのための i386 記述子の
|
||||
リストを、そのプロセスの LDT に設定します。
|
||||
は現在のプロセスのための i386 記述子のリストを、
|
||||
そのプロセスの LDT に設定します。
|
||||
両方のルーチンは、開始するセレクタ番号の
|
||||
.Fa start_sel
|
||||
と、設定する記述子の入った、または記述子が返されるメモリの配列の
|
||||
|
|
@ -70,9 +70,10 @@
|
|||
.Aq Pa i386/segments.h .
|
||||
.\".Fd <i386/segments.h>
|
||||
.Ao Pa i386/segments.h Ac
|
||||
内に定義されています。これらの構成要素は、アーキテクチャに対応して
|
||||
ばらばらになったビットフィールドとして定義
|
||||
されているので、それらを組み立てる際には注意を払う必要があります。
|
||||
内に定義されています。
|
||||
これらの構成要素は、アーキテクチャに対応して
|
||||
ばらばらになったビットフィールドとして定義されているので、
|
||||
それらを組み立てる際には注意を払う必要があります。
|
||||
.Pp
|
||||
これらの関数を使用するには、カーネルの設定ファイル中で
|
||||
.Dq options USER_LDT
|
||||
|
|
@ -82,15 +83,15 @@
|
|||
.Fn i386_get_ldt
|
||||
は現在 LDT 内にある記述子の数を返します。
|
||||
.Fn i386_set_ldt
|
||||
は最初のセレクタセットを返します。そうでない場合は -1 が返され、
|
||||
エラーを示すためにグローバル変数
|
||||
は最初のセレクタセットを返します。
|
||||
そうでない場合は -1 が返され、エラーを示すためにグローバル変数
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn i386_get_ldt
|
||||
と
|
||||
.Fn i386_set_ldt
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa start_sel
|
||||
|
|
|
|||
|
|
@ -67,9 +67,8 @@ struct vm86_init_args {
|
|||
は、vm86 割り込みを vm86 モードで処理する必要があるか、またはプロセスに
|
||||
反映して戻される必要があるかどうかを決定するビットマップです。
|
||||
.Em N 番め
|
||||
のビットが設定されている場合、
|
||||
割り込みはプロセスに反映されます。そうでない場合、
|
||||
vm86 割り込みテーブルによってディスパッチされます。
|
||||
のビットが設定されている場合、割り込みはプロセスに反映されます。
|
||||
そうでない場合、 vm86 割り込みテーブルによってディスパッチされます。
|
||||
.\" .It Dv VM86_SET_VME
|
||||
.\" .It Dv VM86_GET_VME
|
||||
.\" .It Dv VM86_INTCALL
|
||||
|
|
@ -85,7 +84,7 @@ vm86
|
|||
.Rv -std i386_vm86
|
||||
.Sh エラー
|
||||
.Fn i386_vm86
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
カーネルに vm86 サポートがないか、または無効な関数が指定されました。
|
||||
|
|
|
|||
|
|
@ -44,16 +44,15 @@
|
|||
.Sh 書式
|
||||
.In errno.h
|
||||
.Sh 解説
|
||||
このセクションでは、システム
|
||||
コール、エラー戻り、その他の共通な定義およびコンセプト
|
||||
の概要について説明します。
|
||||
このセクションでは、システムコール、エラー戻り、
|
||||
その他の共通な定義およびコンセプトの概要について説明します。
|
||||
.\".Pp
|
||||
.\".Sy System call restart
|
||||
.\".Pp
|
||||
.\"<more later...>
|
||||
.Sh 戻り値
|
||||
ほとんどすべてのシステムコールが外部識別子 errno
|
||||
によって参照されるエラー番号を備えています。
|
||||
ほとんどすべてのシステムコールが外部識別子 errno によって参照される
|
||||
エラー番号を備えています。
|
||||
.Aq Pa sys/errno.h
|
||||
内でこの識別子は次のように定義されています。
|
||||
.Pp
|
||||
|
|
@ -62,26 +61,25 @@
|
|||
.Pp
|
||||
.Va __error()
|
||||
関数は、初期スレッド以外のスレッドについては、スレッドに固有な構造体の
|
||||
フィールドを指すポインタを返します。初期スレッドと非スレッドプロセスの
|
||||
場合、
|
||||
フィールドを指すポインタを返します。
|
||||
初期スレッドと非スレッドプロセスの場合、
|
||||
.Va __error()
|
||||
は、以前の定義と互換性のあるグローバル変数
|
||||
.Va errno
|
||||
を指すポインタを返します。
|
||||
.Pp
|
||||
システムコールは、エラーを検出すると、障害を示す整数値 (通常は -1)
|
||||
を返し、それに応じて変数
|
||||
システムコールは、エラーを検出すると、障害を示す整数値 (通常は -1) を返し、
|
||||
それに応じて変数
|
||||
.Va errno
|
||||
を設定します。
|
||||
<これにより、 -1 を受け取ったときに障害を解釈し、
|
||||
<これにより、-1 を受け取ったときに障害を解釈し、
|
||||
それに応じた行動をとることを可能にします。>
|
||||
呼び出しが正常に完了した場合は
|
||||
.Va errno
|
||||
が設定されることはありません。
|
||||
いったん設定されると、別のエラーが起きるまでそのままです。
|
||||
これはエラーの後でだけ調べるべきです。
|
||||
多くのシステムコールが
|
||||
これらのエラー番号の意味を過重にしており、
|
||||
多くのシステムコールがこれらのエラー番号の意味を過重にしており、
|
||||
意味は呼び出しのタイプと状況に従って解釈する必要があることに注意してください。
|
||||
.Pp
|
||||
以降に示すのはエラーの完全なリストであり、これらの名前は
|
||||
|
|
@ -97,15 +95,13 @@
|
|||
限定された操作を実行しようとしました。
|
||||
.It Er 2 ENOENT Em "No such file or directory"
|
||||
「そのようなファイルまたはディレクトリはありません」
|
||||
指定のパス名の構成要素が存在しないか、
|
||||
またはパス名が空の文字列でした。
|
||||
指定のパス名の構成要素が存在しないか、またはパス名が空の文字列でした。
|
||||
.It Er 3 ESRCH Em "No such process"
|
||||
「そのようなプロセスはありません」
|
||||
指定のプロセス ID に対応するプロセスが見つかりませんでした。
|
||||
.It Er 4 EINTR Em "Interrupted function call"
|
||||
「関数呼び出しが割り込まれました」
|
||||
割り込み可能な関数の実行中に、
|
||||
非同期シグナル (たとえば、
|
||||
割り込み可能な関数の実行中に、非同期シグナル (たとえば、
|
||||
.Dv SIGINT
|
||||
または
|
||||
.Dv SIGQUIT )
|
||||
|
|
@ -115,24 +111,19 @@
|
|||
.It Er 5 EIO Em "Input/output error"
|
||||
「入出力エラーです」
|
||||
何らかの物理的な入力エラーまたは出力エラーが起きました。
|
||||
このエラーは、
|
||||
同じファイル記述子に対する操作が次に行なわれるまで報告されず、
|
||||
後続のエラーによって失われる
|
||||
(上書きされる) 可能性があります。
|
||||
このエラーは、同じファイル記述子に対する操作が次に行われるまで報告されず、
|
||||
後続のエラーによって失われる (上書きされる) 可能性があります。
|
||||
.It Er 6 ENXIO Em "\&No such device or address"
|
||||
「そのようなデバイスまたはアドレスがありません」
|
||||
存在しないデバイスを参照している特殊ファイルへの入出力が行なわれたか、
|
||||
存在しないデバイスを参照している特殊ファイルへの入出力が行われたか、
|
||||
またはデバイスの制限を越えた要求が行われました。
|
||||
このエラーは、
|
||||
テープドライブがオンラインでない場合や、またはディスク
|
||||
パックがドライブにロードされていない場合など
|
||||
にも発生する可能性があります。
|
||||
このエラーは、テープドライブがオンラインでない場合や、
|
||||
またはディスクパックがドライブにロードされていない場合などにも
|
||||
発生する可能性があります。
|
||||
.It Er 7 E2BIG Em "Arg list too long"
|
||||
「引数のリストが長すぎます」
|
||||
新しいプロセスの引数リストと環境変数リストに使用される
|
||||
バイト数が、
|
||||
現在の限界である
|
||||
65536 バイト
|
||||
新しいプロセスの引数リストと環境変数リストに使用されるバイト数が、
|
||||
現在の限界である 65536 バイト
|
||||
.Pf ( Aq Pa sys/param.h
|
||||
内の
|
||||
.Dv NCARGS )
|
||||
|
|
@ -152,20 +143,18 @@
|
|||
.Xr wait 2
|
||||
または
|
||||
.Xr waitpid 2
|
||||
関数が、
|
||||
子プロセスが存在しないか、待機されたことのない子プロセスを持たない
|
||||
プロセスによって実行されました。
|
||||
関数が、子プロセスが存在しないか、待機されたことのない
|
||||
子プロセスを持たないプロセスによって実行されました。
|
||||
.It Er 11 EDEADLK Em "Resource deadlock avoided"
|
||||
「リソースデッドロックを回避しました」
|
||||
デッドロック状況になる可能性のあるシステムリソースをロックしようとしました。
|
||||
.It Er 12 ENOMEM Em "Cannot allocate memory"
|
||||
「メモリの割り当てができません」
|
||||
新しいプロセス
|
||||
イメージが、ハードウェアまたはシステムが課する
|
||||
新しいプロセスイメージが、ハードウェアまたはシステムが課する
|
||||
メモリ管理制約によって許容されるより多くのメモリを要求しました。
|
||||
スワップ空間の不足は通常、一時的です。
|
||||
しかし、コアの不足は一時的ではありません。ソフト限界を
|
||||
対応するハード限界まで増加させることはできます。
|
||||
しかし、コアの不足は一時的ではありません。
|
||||
ソフト限界を対応するハード限界まで増加させることはできます。
|
||||
.It Er 13 EACCES Em "Permission denied"
|
||||
「パーミッションが拒絶されました」
|
||||
ファイルアクセスパーミッションで禁止されている方法で
|
||||
|
|
@ -176,16 +165,16 @@
|
|||
システムが無効なアドレスを検出しました。
|
||||
.It Er 15 ENOTBLK Em "Not a block device"
|
||||
「ブロックデバイスではありません」
|
||||
ブロックデバイス操作が、非ブロックデバイスまたはファイル
|
||||
について試みられました。
|
||||
ブロックデバイス操作が、非ブロックデバイスまたはファイルについて
|
||||
試みられました。
|
||||
.It Er 16 EBUSY Em "Resource busy"
|
||||
「リソースがビジー状態です」
|
||||
その時点で使用されているシステムリソースを、
|
||||
その要求と干渉するであろう方法で使おうとしました。
|
||||
.It Er 17 EEXIST Em "File exists"
|
||||
「ファイルが存在します」
|
||||
すでに存在するファイルが不適切なコンテキストで
|
||||
指定されました。たとえば、
|
||||
すでに存在するファイルが不適切なコンテキストで指定されました。
|
||||
たとえば、
|
||||
.Xr link 2
|
||||
関数における新しいリンク名としてです。
|
||||
.It 18 Er EXDEV Em "Improper link"
|
||||
|
|
@ -195,8 +184,7 @@
|
|||
.It Er 19 ENODEV Em "Operation not supported"
|
||||
「操作がデバイスによってサポートされていません」
|
||||
あるデバイスに不適切な関数を適用しようしました。
|
||||
たとえば、プリンタのような
|
||||
書込み専用デバイスを読み込もうとしました。
|
||||
たとえば、プリンタのような書込み専用デバイスを読み取ろうとしました。
|
||||
.It Er 20 ENOTDIR Em "Not a directory"
|
||||
「ディレクトリではありません」
|
||||
指定のパス名の構成要素は確かに存在しましたが、
|
||||
|
|
@ -214,8 +202,7 @@
|
|||
関数に未定義のシグナルを指定する場合)。
|
||||
.It Er 23 ENFILE Em "Too many open files in system"
|
||||
「システム内でオープンされているファイルが多すぎます」
|
||||
システムが許容するファイル記述子の数の
|
||||
最大数に到達しており、少なくとも
|
||||
システムが許容するファイル記述子の数の最大数に到達しており、少なくとも
|
||||
1 つがクローズされるまで、オープンしようとする要求は満たされません。
|
||||
.It Er 24 EMFILE Em "Too many open files"
|
||||
「オープンしているファイルが多すぎます」
|
||||
|
|
@ -230,10 +217,9 @@
|
|||
を参照) を試みました。
|
||||
.It Er 26 ETXTBSY Em "Text file busy"
|
||||
「テキストファイルがビジーです」
|
||||
別のプロセスによって書込み用にオープンされた純粋プロシジャ (共有テキスト)
|
||||
ファイルから新しいプロセスを作ろうとしたか、
|
||||
または純粋プロシジャファイルが実行されている間に、
|
||||
書込みアクセスを要求する
|
||||
別のプロセスによって書込み用にオープンされた
|
||||
純粋プロシジャ (共有テキスト) ファイルから新しいプロセスを作ろうとしたか、
|
||||
または純粋プロシジャファイルが実行されている間に、書込みアクセスを要求する
|
||||
.Xr open 2
|
||||
呼び出しが実行されました。
|
||||
.It Er 27 EFBIG Em "File too large"
|
||||
|
|
@ -245,17 +231,13 @@
|
|||
バイト)。
|
||||
.It Er 28 ENOSPC Em "Device out of space"
|
||||
「デバイスの空き領域不足です」
|
||||
該当するファイルシステムで
|
||||
新たなディスクブロックが利用できないために、
|
||||
該当するファイルシステムで新たなディスクブロックが利用できないために、
|
||||
通常ファイルへの
|
||||
.Xr write 2
|
||||
処理、ディレクトリの作成、シンボリックリンクの作成、
|
||||
ディレクトリエントリの作成が失敗しました。
|
||||
または、
|
||||
該当するファイルシステムで
|
||||
新たな inode が利用できないために、
|
||||
新しく作成するファイルに対する
|
||||
inode の割り当てが失敗しました。
|
||||
または、該当するファイルシステムで新たな inode が利用できないために、
|
||||
新しく作成するファイルに対する inode の割り当てが失敗しました。
|
||||
.It Er 29 ESPIPE Em "Illegal seek"
|
||||
「不正なシークです」
|
||||
.Xr lseek 2
|
||||
|
|
@ -264,17 +246,15 @@ inode
|
|||
に対して実行されました。
|
||||
.It Er 30 EROFS Em "Read-only file system"
|
||||
「読取り専用ファイルシステムです」
|
||||
ファイルまたはディレクトリを
|
||||
変更しようとする試みが、その時点で
|
||||
読取り専用であるファイルシステムに対して行われました。
|
||||
ファイルまたはディレクトリを変更しようとする試みが、
|
||||
その時点で読取り専用であるファイルシステムに対して行われました。
|
||||
.It Er 31 EMLINK Em "Too many links"
|
||||
「リンクが多すぎます」
|
||||
1 つのファイルについて許容されるハードリンクの最大数を超過しました
|
||||
(1 ファイルにつきハードリンク数の限界は 32767 です)。
|
||||
.It Er 32 EPIPE Em "Broken pipe"
|
||||
「パイプが破壊されてました」
|
||||
データを読み取るプロセスのない
|
||||
パイプ、ソケット、または
|
||||
データを読み取るプロセスのないパイプ、ソケット、または
|
||||
.Tn FIFO
|
||||
に対しての書込みです。
|
||||
.It Er 33 EDOM Em "Numerical argument out of domain"
|
||||
|
|
@ -297,23 +277,21 @@ inode
|
|||
を参照)。
|
||||
.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
|
||||
|
|
@ -325,8 +303,7 @@ inode
|
|||
.Xr getsockopt 2
|
||||
呼び出しまたは
|
||||
.Xr setsockopt 2
|
||||
呼び出しで、
|
||||
間違ったオプションまたはレベルが指定されました。
|
||||
呼び出しで、間違ったオプションまたはレベルが指定されました。
|
||||
.It Er 43 EPROTONOSUPPORT Em "Protocol not supported"
|
||||
「プロトコルがサポートされていません」
|
||||
指定したプロトコルがシステム内に組み込まれていないか、
|
||||
|
|
@ -338,10 +315,9 @@ inode
|
|||
.It Er 45 EOPNOTSUPP Em "Operation not supported"
|
||||
「操作がサポートされていません」
|
||||
引数が指すオブジェクトのタイプは、指定した操作をサポートしていません。
|
||||
このエラーが起きるのは、通常は、ファイル記述子が
|
||||
この操作をサポートできないファイルまたは
|
||||
ソケットを参照しているときです。たとえば、データグラム
|
||||
ソケット上で接続を
|
||||
このエラーが起きるのは、通常は、ファイル記述子がこの操作を
|
||||
サポートできないファイルまたはソケットを参照しているときです。
|
||||
たとえば、データグラムソケット上で接続を
|
||||
.Em accept
|
||||
しようしたときです。
|
||||
.It Er 46 EPFNOSUPPORT Em "Protocol family not supported"
|
||||
|
|
@ -350,7 +326,8 @@ inode
|
|||
またはそのプロトコルファミリの実装が存在していません。
|
||||
.It Er 47 EAFNOSUPPORT Em "Address family not supported by protocol family"
|
||||
「アドレスファミリがプロトコルファミリによってサポートされていません」
|
||||
要求したプロトコルと互換性のないアドレスが使用されました。たとえば、
|
||||
要求したプロトコルと互換性のないアドレスが使用されました。
|
||||
たとえば、
|
||||
.Tn ARPA
|
||||
インターネットプロトコルで
|
||||
.Tn NS
|
||||
|
|
@ -360,8 +337,7 @@ inode
|
|||
各アドレスごとに、一度に 1 つだけを利用できます。
|
||||
.It Er 49 EADDRNOTAVAIL Em "Cannot assing requested address"
|
||||
「要求されたアドレスを割り当てできません」
|
||||
通常は、このマシン上にないアドレスで
|
||||
ソケットを作成しようとした結果です。
|
||||
通常は、このマシン上にないアドレスでソケットを作成しようとした結果です。
|
||||
.It Er 50 ENETDOWN Em "Network is down"
|
||||
「ネットワークがダウンしています」
|
||||
ソケット操作の結果、動作していないネットワークに遭遇しました。
|
||||
|
|
@ -387,7 +363,7 @@ inode
|
|||
「ソケットは既に接続されています」
|
||||
既に接続されたソケットに対して
|
||||
.Xr connect 2
|
||||
要求を行ないました。
|
||||
要求を行いました。
|
||||
または、接続済みのソケットに対する
|
||||
.Xr sendto 2
|
||||
や
|
||||
|
|
@ -395,8 +371,7 @@ inode
|
|||
要求に際し、既に接続されているのに宛先を指定しました。
|
||||
.It Er 57 ENOTCONN Em "Socket is not connected"
|
||||
「ソケットは接続されていません」
|
||||
ソケットが接続されておらず、
|
||||
しかも (データグラムソケットを送信するときに)
|
||||
ソケットが接続されておらず、しかも (データグラムソケットを送信するときに)
|
||||
アドレスが指定されていなかったために、データを送信または
|
||||
受信する要求が許可されませんでした。
|
||||
.It Er 58 ESHUTDOWN Em "Cannot send after socket shutdown"
|
||||
|
|
@ -415,9 +390,8 @@ inode
|
|||
(タイムアウトの期間は通信プロトコルに左右されます)。
|
||||
.It Er 61 ECONNREFUSED Em "Connection refused"
|
||||
「接続が拒絶されました」
|
||||
接続相手のマシンが接続を自ら拒否したので、
|
||||
接続を確立できませんでした。これは、通常、相手ホストで
|
||||
有効でないサービスに接続しようとした結果です。
|
||||
接続相手のマシンが接続を自ら拒否したので、接続を確立できませんでした。
|
||||
これは、通常、相手ホストで有効でないサービスに接続しようとした結果です。
|
||||
.It Er 62 ELOOP Em "Too many levels of symbolic links"
|
||||
「シンボリックリンクのレベルが多すぎます」
|
||||
パス名の探索に、32
|
||||
|
|
@ -432,8 +406,7 @@ inode
|
|||
文字を越えています。
|
||||
.It Er 64 EHOSTDOWN Em "Host is down"
|
||||
「ホストがダウンしています」
|
||||
宛先ホストがダウンしているために
|
||||
ソケット操作が失敗しました。
|
||||
宛先ホストがダウンしているためにソケット操作が失敗しました。
|
||||
.It Er 65 EHOSTUNREACH Em "No route to host"
|
||||
「ホストへの経路はありません」
|
||||
到達不可能なホストにソケット操作をしようとしました。
|
||||
|
|
@ -443,8 +416,7 @@ inode
|
|||
.Ql .\&
|
||||
と
|
||||
.Ql ..\&
|
||||
以外のエントリを含むディレクトリが
|
||||
指定されました。
|
||||
以外のエントリを含むディレクトリが指定されました。
|
||||
.It Er 67 EPROCLIM Em "Too many processes"
|
||||
「プロセスが多すぎます」
|
||||
.It Er 68 EUSERS Em "Too many users"
|
||||
|
|
@ -452,16 +424,14 @@ inode
|
|||
クォータシステムがテーブルエントリを使い切りました。
|
||||
.It Er 69 EDQUOT Em "Disc quota exceeded"
|
||||
「ディスククォータが超過しました」
|
||||
ユーザのディスクブロッククォータを使い尽くしたために、
|
||||
通常のファイルへの
|
||||
ユーザのディスクブロッククォータを使い尽くしたために、通常のファイルへの
|
||||
.Xr write 2
|
||||
、ディレクトリの作成、シンボリックリンクの作成、
|
||||
ディレクトリエントリの作成が失敗しました。
|
||||
もしくは、ユーザの inode クォータを使い尽くしたために、
|
||||
新しく作成されたファイルのための
|
||||
inode の割り当てに失敗しました。
|
||||
新しく作成されたファイルのための inode の割り当てに失敗しました。
|
||||
.It Er 70 ESTALE Em "Stale NFS file handle"
|
||||
「腐りかけた NFS ファイルハンドルです」
|
||||
「失効した NFS ファイルハンドルです」
|
||||
オープンされている (
|
||||
.Tn NFS
|
||||
ファイルシステム上の ) ファイルに対してアクセスしようとしましたが、
|
||||
|
|
@ -478,12 +448,10 @@ inode
|
|||
「RPC バージョンが間違っています」
|
||||
通信相手の
|
||||
.Tn RPC
|
||||
のバージョンが、こちらのバージョンと
|
||||
互換性がありません。
|
||||
のバージョンが、こちらのバージョンと互換性がありません。
|
||||
.It Er 74 EPROGUNAVAIL Em "RPC prog. not avail"
|
||||
「RPC プログラムが利用できません」
|
||||
要求したプログラムが
|
||||
リモートホストに登録されていません。
|
||||
要求したプログラムがリモートホストに登録されていません。
|
||||
.It Er 75 EPROGMISMATCH Em "Program version wrong"
|
||||
「プログラムバージョンが間違っています」
|
||||
要求したバージョンのプログラムが、リモートホスト
|
||||
|
|
@ -540,9 +508,9 @@ IPC
|
|||
.Sh 定義
|
||||
.Bl -tag -width Ds
|
||||
.It "プロセス ID (Process ID)"
|
||||
システム内のアクティブな各プロセスは、プロセス ID
|
||||
と呼ばれる負でない整数によって一意に識別されます。この ID
|
||||
の範囲は 0 から 99999 までです。
|
||||
システム内のアクティブな各プロセスは、プロセス ID と呼ばれる
|
||||
負でない整数によって一意に識別されます。
|
||||
この ID の範囲は 0 から 99999 までです。
|
||||
.It "親プロセス ID (Parent process ID)"
|
||||
新しいプロセスは、現在のアクティブなプロセスから作成されます (
|
||||
.Xr fork 2
|
||||
|
|
@ -568,8 +536,8 @@ IPC
|
|||
セッションは 1 つ以上のプロセスグループの集合です。
|
||||
セッションは
|
||||
.Xr setsid 2
|
||||
の呼び出しが成功すると作成されます。これによって、
|
||||
呼び出したプロセスは、新規のセッションが
|
||||
の呼び出しが成功すると作成されます。
|
||||
これによって、呼び出したプロセスは、新規のセッションが
|
||||
1 つだけ持つプロセスグループの唯一のメンバになります。
|
||||
.It "セッションリーダ (Session leader)"
|
||||
.Xr setsid 2
|
||||
|
|
@ -590,43 +558,40 @@ IPC
|
|||
そのセッション内のどのプロセスグループでも、
|
||||
フォアグラウンドに置くことができるようになります。
|
||||
この機能は、同じ端末をめぐり競合している複数のジョブの間で
|
||||
調停を行なうために用いられます (
|
||||
調停を行うために用いられます (
|
||||
.Xr csh 1
|
||||
と
|
||||
.Xr tty 4
|
||||
を参照)。
|
||||
.It "孤児プロセスグループ (Orphaned Process Group)"
|
||||
プロセスグループは、ジョブ制御を行なうシェルの制御下にない場合、
|
||||
.Em 孤児になった
|
||||
.It "親のないプロセスグループ (Orphaned Process Group)"
|
||||
プロセスグループは、ジョブ制御を行うシェルの制御下にない場合、
|
||||
.Em 親なしになった
|
||||
とみなされます。
|
||||
より正確に言うと、
|
||||
そのプロセスグループのメンバはどれも、
|
||||
より正確に言うと、そのプロセスグループのメンバはどれも、
|
||||
そのグループと同じセッションに属す親プロセスを持たず、かつ、
|
||||
親プロセスが別のプロセスグループに属す場合、
|
||||
そのプロセスグループは孤児になります。
|
||||
そのプロセスグループは親なしになります。
|
||||
なお、プロセスが終了するとき、その子プロセスの親プロセスは
|
||||
.Xr init 8
|
||||
となるように変更されます。そしてこれは別個のセッションになります。
|
||||
孤児になったプロセスグループのメンバの全てが、必ずしも
|
||||
孤児になったプロセス (プロセスを作成したプロセスが終了した)
|
||||
となるように変更されます。
|
||||
そしてこれは別個のセッションになります。
|
||||
親のないプロセスグループのメンバの全てが、必ずしも
|
||||
親のないプロセス (プロセスを作成したプロセスが終了した)
|
||||
というわけではありません。
|
||||
この定義により、セッションリーダのプロセスグループは孤児になります。
|
||||
この定義により、セッションリーダのプロセスグループは親なしになります。
|
||||
.It "実ユーザ ID と実グループID (Real User ID and Real Group ID) "
|
||||
システム上の各ユーザは、実ユーザ ID と呼ばれる
|
||||
正の整数によって識別されます。
|
||||
システム上の各ユーザは、実ユーザ ID と呼ばれる正の整数によって識別されます。
|
||||
.Pp
|
||||
各ユーザは、1 つまたは複数のグループのメンバでもあります。
|
||||
これらのグループの 1 つは他のものから
|
||||
区別され、アカウンティング機能を実現するのに使用されます。
|
||||
この区別されたグループに対応する正の整数は、実グループ ID と
|
||||
呼ばれます。
|
||||
これらのグループの 1 つは他のものから区別され、
|
||||
アカウンティング機能を実現するのに使用されます。
|
||||
この区別されたグループに対応する正の整数は、実グループ ID と呼ばれます。
|
||||
.Pp
|
||||
すべてのプロセスは実ユーザ ID と実グループ ID を持っています。
|
||||
これらは、そのプロセスを作成したプロセスと等価な属性値を
|
||||
使って初期化されます。
|
||||
.It "実効ユーザ ID、実効グループ ID、グループアクセスリスト (Effective User Id, Effective Group Id, and Group Access List)"
|
||||
システムリソースへのアクセスは、
|
||||
実効ユーザ ID とグループアクセスリストという
|
||||
システムリソースへのアクセスは、実効ユーザ ID とグループアクセスリストという
|
||||
2 つの値を使って決定されます。
|
||||
グループアクセスリストの最初のメンバは、実効グループ ID
|
||||
としても知られています
|
||||
|
|
@ -634,36 +599,35 @@ IPC
|
|||
セットとして知られ、実効グループ ID がリストのメンバで
|
||||
あるかどうかは未規定です)。
|
||||
.Pp
|
||||
実効ユーザ ID と実効グループ ID は、最初は
|
||||
それぞれ、プロセスの実ユーザ ID と実グループ ID です。
|
||||
いずれも (おそらくその先祖のいずれかが) set-user-ID ファイルまたは
|
||||
set-group-ID ファイルを実行することにより変更することができます (
|
||||
実効ユーザ ID と実効グループ ID は、最初はそれぞれ、
|
||||
プロセスの実ユーザ ID と実グループ ID です。
|
||||
いずれも (おそらくその先祖のいずれかが) ユーザ ID 設定ファイルまたは
|
||||
グループ ID 設定ファイルを実行することにより変更することができます (
|
||||
.Xr execve 2
|
||||
を参照してください)。
|
||||
慣習で、実効グループ ID
|
||||
(グループアクセスリストの最初のメンバ) は複製されるので、
|
||||
set-group-ID プログラムの実行の結果、もともと持っていた
|
||||
グループ ID 設定プログラムの実行の結果、もともと持っていた
|
||||
(実) グループ ID が失われることはありません。
|
||||
.Pp
|
||||
グループアクセスリストは、リソースへのアクセスが可能かどうかを決定する
|
||||
ためにだけ使用されるグループ ID の集合です。
|
||||
グループアクセスリストは、リソースへのアクセスが可能かどうかを
|
||||
決定するためにだけ使用されるグループ ID の集合です。
|
||||
アクセスチェックは、以降の
|
||||
``ファイルアクセスパーミッション''
|
||||
で説明するように行われます。
|
||||
.It "保存されたセットユーザ ID と保存されたセットグループ ID (Saved Set User ID and Saved Set Group ID)"
|
||||
プロセスが新しいファイルを実行するとき、
|
||||
ファイルが set-user-ID であれば、
|
||||
プロセスが新しいファイルを実行するとき、ファイルがユーザ ID 設定であれば、
|
||||
実効ユーザ ID はそのファイルの所有者に設定され、
|
||||
ファイルが set-group-ID であれば、
|
||||
ファイルがグループ ID 設定であれば、
|
||||
実効グループ ID (グループアクセスリストの最初の要素) は
|
||||
ファイルのグループに設定されます。
|
||||
それからプロセスの実効ユーザ ID は saved set-user-ID として記録され、
|
||||
プロセスの実効ユーザ ID は saved set-group-ID として記録されます。
|
||||
それからプロセスの実効ユーザ ID は退避ユーザ ID として記録され、
|
||||
プロセスの実効ユーザ ID は退避グループ ID として記録されます。
|
||||
これらの記録された値は、実 ID (
|
||||
.Xr setuid 2
|
||||
を参照) に戻った後で、実効ユーザ ID または実効グループ ID をこれらの
|
||||
値に回復するために利用できます。
|
||||
(POSIX.1 では saved set-user-ID と saved set-group-ID はオプションであり、
|
||||
(POSIX.1 では、退避ユーザ ID と退避グループ ID はオプションであり、
|
||||
setuid および setgid の内部で使用されますが、
|
||||
これはスーパユーザについて意図どおりには機能しません)。
|
||||
.It "スーパユーザ (super-user)"
|
||||
|
|
@ -677,10 +641,8 @@ setuid
|
|||
.Xr pipe 2 ,
|
||||
.Xr socket 2 ,
|
||||
.Xr socketpair 2
|
||||
によってソケットが作成されるときに
|
||||
システムによって割り当てられる整数です。
|
||||
この整数は、
|
||||
指定のプロセスやその子プロセスから、
|
||||
によってソケットが作成されるときにシステムによって割り当てられる整数です。
|
||||
この整数は、指定のプロセスやその子プロセスから、
|
||||
そのファイルやソケットへのアクセスパスを一意に識別します。
|
||||
.It "ファイル名 (File Name)"
|
||||
最高 255
|
||||
|
|
@ -701,8 +663,8 @@ setuid
|
|||
.Ql \&? ,
|
||||
.Ql \&[ ,
|
||||
.Ql \&]
|
||||
を使用するのは賢明ではありません。シェルによって
|
||||
これらの文字には特殊な意味がつけられるからです。
|
||||
を使用するのは賢明ではありません。
|
||||
シェルによってこれらの文字には特殊な意味がつけられるからです。
|
||||
.It "パス名 (Path Name)"
|
||||
パス名は、
|
||||
.Tn NUL
|
||||
|
|
@ -710,80 +672,82 @@ setuid
|
|||
スラッシュ
|
||||
.Ql \&/
|
||||
(省略可能) で始まり、スラッシュで区切られた 0 個以上のディレクトリ名が続き、
|
||||
ファイル名 (省略可能) が続きます。パス名の長さの合計は 1024
|
||||
ファイル名 (省略可能) が続きます。
|
||||
パス名の長さの合計は 1024
|
||||
.Pq Dv MAXPATHLEN
|
||||
文字未満である必要があります。
|
||||
.Pp
|
||||
パス名がスラッシュで始まる場合、パス検索はルートディレクトリから
|
||||
開始します。そうでない場合、検索は現在の作業ディレクトリから開始します。
|
||||
開始します。
|
||||
そうでない場合、検索は現在の作業ディレクトリから開始します。
|
||||
スラッシュだけの場合、ルートディレクトリを指定します。
|
||||
空のパス名は現在のディレクトリを指します。
|
||||
.It "ディレクトリ (Directory)"
|
||||
ディレクトリは特殊なタイプのファイルであり、他のファイルを参照する
|
||||
エントリを含んでいます。ディレクトリエントリをリンクと呼びます。
|
||||
エントリを含んでいます。
|
||||
ディレクトリエントリをリンクと呼びます。
|
||||
伝統的に、ディレクトリには少なくとも 2 つのリンク、
|
||||
.Ql .\&
|
||||
と
|
||||
.Ql \&..
|
||||
を含みます。これらはそれぞれ
|
||||
を含みます。
|
||||
これらはそれぞれ
|
||||
.Em ドット
|
||||
および
|
||||
.Em ドット-ドット
|
||||
と呼ばれます。ドットは、そのディレクトリ自体を指し、
|
||||
と呼ばれます。
|
||||
ドットは、そのディレクトリ自体を指し、
|
||||
ドット-ドットはその親ディレクトリを指します。
|
||||
.It "ルートディレクトリと現在の作業ディレクトリ (Root Directory and Current Working Directory)"
|
||||
各プロセスは、ルートディレクトリと現在の作業ディレクトリという
|
||||
概念を持つとされてきました。これらの概念はパス名検索を解決する際に
|
||||
用いられます。プロセスのルートディレクトリは、
|
||||
概念を持つとされてきました。
|
||||
これらの概念はパス名検索を解決する際に用いられます。
|
||||
プロセスのルートディレクトリは、
|
||||
ルートファイルシステムのルートディレクトリである必要はありません。
|
||||
.It "ファイルアクセスパーミッション (File Access Permission)"
|
||||
ファイルシステム内の各ファイルはアクセスパーミッションの
|
||||
集合を持っています。これらのパーミッションは、プロセスがファイルに
|
||||
ついて要求された操作 (たとえば、書込み用にファイルをオープンする)
|
||||
を行なってもよいかどうかを判定するのに使用されます。
|
||||
集合を持っています。
|
||||
これらのパーミッションは、プロセスがファイルについて要求された操作
|
||||
(たとえば、書込み用にファイルをオープンする) を行ってもよいかどうかを
|
||||
判定するのに使用されます。
|
||||
アクセスパーミッションはファイルが作成されたときに設定されます。
|
||||
アクセスパーミッションは
|
||||
.Xr chmod 2
|
||||
呼び出しを用いて後から変更することもできます。
|
||||
.Pp
|
||||
ファイルアクセスでは、ファイルが
|
||||
読取りが許されているかどうか、書込みが許されているかどうか、
|
||||
実行が許されているかどうか、
|
||||
によって分類されます。
|
||||
ディレクトリファイルでは、
|
||||
ディレクトリを検索してもよいかどうかを制御するのに
|
||||
実行パーミッションを使用します。
|
||||
ファイルアクセスでは、ファイルが読取りが許されているかどうか、
|
||||
書込みが許されているかどうか、実行が許されているかどうか、によって
|
||||
分類されます。
|
||||
ディレクトリファイルでは、ディレクトリを検索してもよいかどうかを
|
||||
制御するのに実行パーミッションを使用します。
|
||||
.Pp
|
||||
システムがファイルアクセスパーミッションを解釈するにあたり、
|
||||
ユーザの 3 つの異なるクラス (ファイルの所有者、
|
||||
ファイルのグループ内のユーザ、その他) のどれに適用するかによって
|
||||
解釈します。
|
||||
ファイルのグループ内のユーザ、その他) のどれに適用するかによって解釈します。
|
||||
各ファイルは、これらの各クラスについて、
|
||||
独立したアクセスパーミッションの集合を持っています。
|
||||
アクセスチェックが行なわれると、システムは、
|
||||
アクセスチェックが行われると、システムは、
|
||||
呼び出し側に適用できるアクセス情報をチェックすることによって、
|
||||
パーミッションが認可されるかどうかを判定します。
|
||||
.Pp
|
||||
ファイルについての読取り、書込み、実行/検索の
|
||||
ファイルについての読取り、書込み、実行 / 検索の
|
||||
各パーミッションは、次の場合にプロセスに認可されます。
|
||||
.Pp
|
||||
プロセスの実効ユーザ ID がスーパユーザである場合 (注:
|
||||
スーパユーザであっても、実行可能でないファイルを実行する
|
||||
プロセスの実効ユーザ ID がスーパユーザである場合
|
||||
(注: スーパユーザであっても、実行可能でないファイルを実行する
|
||||
ことはできません)。
|
||||
.Pp
|
||||
プロセスの実効ユーザ ID がファイルの所有者のユーザ ID
|
||||
に一致し、所有者のパーミッションがアクセスを許可している場合。
|
||||
プロセスの実効ユーザ ID がファイルの所有者のユーザ ID に一致し、
|
||||
所有者のパーミッションがアクセスを許可している場合。
|
||||
.Pp
|
||||
プロセスの実効ユーザ ID がファイルの所有者のユーザ ID
|
||||
と一致せずに、プロセスの実効グループ ID がファイルのグループ ID
|
||||
と一致するかまたはファイルのグループ ID がプロセスの
|
||||
グループアクセスリスト内にあるかのどちらかであり、
|
||||
グループパーミッションがアクセスを許容している場合。
|
||||
プロセスの実効ユーザ ID がファイルの所有者のユーザ ID と一致せずに、
|
||||
プロセスの実効グループ ID がファイルのグループ ID と一致するか
|
||||
またはファイルのグループ ID がプロセスのグループアクセスリスト内に
|
||||
あるかのどちらかであり、グループパーミッションがアクセスを許容している場合。
|
||||
.Pp
|
||||
プロセスの実効ユーザ ID も実効グループ ID もグループアクセスリストも、
|
||||
ファイルの対応するユーザ ID およびグループ ID と
|
||||
一致しないが、``その他のユーザ'' のパーミッションが
|
||||
アクセスを許容する場合。
|
||||
ファイルの対応するユーザ ID およびグループ ID と一致しないが、
|
||||
``その他のユーザ'' のパーミッションがアクセスを許容する場合。
|
||||
.Pp
|
||||
上記のいずれにも該当しない場合、パーミッションは拒絶されます。
|
||||
.It "ソケットとアドレスファミリ (Sockets and Address Families)"
|
||||
|
|
@ -795,16 +759,15 @@ setuid
|
|||
相手の名前が必要かどうか、通信に信頼性があるかどうか、
|
||||
メッセージ受信者を名付ける際に使用される形式などが含まれます。
|
||||
.Pp
|
||||
実際のシステムはそれぞれ、いくつかのソケット
|
||||
タイプの集合をサポートしています。
|
||||
実際のシステムはそれぞれ、いくつかのソケットタイプの集合をサポートしています。
|
||||
利用できるタイプおよびそれらのプロパティの詳細については、
|
||||
.Xr socket 2
|
||||
を参照してください。
|
||||
.Pp
|
||||
実際のシステムはそれぞれ、いくつかの通信プロトコルの集合を
|
||||
サポートしています。プロトコルの集合はそれぞれある特定の形式の
|
||||
アドレスをサポートします。アドレスファミリは、
|
||||
あるプロトコルのグループに対応するアドレスの集合です。
|
||||
サポートしています。
|
||||
プロトコルの集合はそれぞれある特定の形式のアドレスをサポートします。
|
||||
アドレスファミリは、あるプロトコルのグループに対応するアドレスの集合です。
|
||||
ソケットはそれぞれ、ソケットが作成されたアドレス
|
||||
ファミリから選択したアドレスを持ちます。
|
||||
.El
|
||||
|
|
|
|||
|
|
@ -51,14 +51,16 @@
|
|||
関数は特殊ファイルの下層となっているデバイスのパラメータを操作します。
|
||||
特に、キャラクタ型特殊ファイル (たとえば、端末) の多数の操作属性は
|
||||
.Fn ioctl
|
||||
で制御できます。引数
|
||||
で制御できます。
|
||||
引数
|
||||
.Fa d
|
||||
は開いているファイル記述子である必要があります。
|
||||
.Pp
|
||||
.Nm
|
||||
への 3 番めの引数は従来から
|
||||
.Ar "char *argp"
|
||||
と名前付けられています。しかし、
|
||||
と名前付けられています。
|
||||
しかし、
|
||||
.Fx 3.0
|
||||
での
|
||||
.Nm
|
||||
|
|
@ -80,8 +82,7 @@
|
|||
のサイズ (バイト単位) をエンコードします。
|
||||
ioctl の
|
||||
.Fa request
|
||||
を指定するのに使用されるマクロと定義
|
||||
はファイル
|
||||
を指定するのに使用されるマクロと定義はファイル
|
||||
.Ao Pa sys/ioctl.h Ac
|
||||
の中にあります。
|
||||
.Sh 戻り値
|
||||
|
|
@ -90,7 +91,7 @@ ioctl
|
|||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn ioctl
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa d
|
||||
|
|
|
|||
|
|
@ -51,16 +51,14 @@
|
|||
.Fn issetugid
|
||||
関数は、プロセスの環境またはメモリアドレス空間が
|
||||
.Dq 汚染されている
|
||||
と見なされる場合
|
||||
1 を返し、そうでない場合は 0 を返します。
|
||||
と見なされる場合 1 を返し、そうでない場合は 0 を返します。
|
||||
.Pp
|
||||
setuid または setgid ビットのどちらかが設定されたプロセスを
|
||||
.Xr execve 2
|
||||
システムコールで実行した (そして結果として追加の特権が与えられた)
|
||||
場合、あるいはプロセスの、実ユーザ ID, 実効ユーザ ID,
|
||||
保存されたユーザ ID, グループ ID の
|
||||
いずれかが実行後に変更された場合、そのプロセスは汚染されていると
|
||||
見なされます。
|
||||
システムコールで実行した (そして結果として追加の特権が与えられた) 場合、
|
||||
あるいはプロセスの実ユーザ ID、実効ユーザ ID、退避ユーザ ID、
|
||||
もしくは実グループ ID、実効グループ ID、退避グループ ID のいずれかが
|
||||
実行後に変更された場合、そのプロセスは汚染されていると見なされます。
|
||||
.Pp
|
||||
このシステムコールは、ユーザから得られた情報を使用するのが
|
||||
安全かどうかをライブラリルーチン (たとえば libc や libtermcap) が
|
||||
|
|
@ -83,8 +81,7 @@ setuid
|
|||
したがって
|
||||
.Dq 汚染された
|
||||
状態は引き渡されません。
|
||||
setuid を開始するけれども汚染されていない
|
||||
プロセスを作成できる必要のある
|
||||
setuid を開始するけれども汚染されていないプロセスを作成できる必要のある
|
||||
.Xr su 1
|
||||
のようなプログラムにはこれは重要です。
|
||||
.Sh エラー
|
||||
|
|
|
|||
|
|
@ -36,24 +36,27 @@ struct jail {
|
|||
.Ed
|
||||
.Pp
|
||||
.Dq Li version
|
||||
には使用する API のバージョンを定義します。今のところ 0 に設定します。
|
||||
には使用する API のバージョンを定義します。
|
||||
今のところ 0 に設定します。
|
||||
.Pp
|
||||
.Dq Li path
|
||||
ポインタには牢屋のルートになるディレクトリを設定します。
|
||||
.Pp
|
||||
.Dq Li hostname
|
||||
ポインタには牢屋のホスト名を設定します。これは牢屋の中から
|
||||
変更できます。
|
||||
ポインタには牢屋のホスト名を設定します。
|
||||
これは牢屋の中から変更できます。
|
||||
.Pp
|
||||
.Dq Li ip_number
|
||||
は牢屋に割り当てる IP 番号を設定します。
|
||||
.Sh 牢屋?
|
||||
プロセスは一度牢屋に入れられると、それ自身とその子孫は牢屋から
|
||||
逃れることはできません。既存の牢屋にプロセスを追加することはできません。
|
||||
逃れることはできません。
|
||||
既存の牢屋にプロセスを追加することはできません。
|
||||
.Pp
|
||||
牢屋の中では "スーパユーザ" の概念はとても弱まっています。一般に
|
||||
全体が牢屋の中にあるわけではないものを牢屋の中から台無しにすることは
|
||||
できないと考えられます。例えば
|
||||
牢屋の中では "スーパユーザ" の概念はとても弱まっています。
|
||||
一般に全体が牢屋の中にあるわけではないものを牢屋の中から台無しにすることは
|
||||
できないと考えられます。
|
||||
例えば
|
||||
.Dq Li path
|
||||
の下のディレクトリツリーは
|
||||
.Dq Li "rm -rf /*"
|
||||
|
|
@ -71,7 +74,7 @@ IP
|
|||
閉じ込められたプロセスでは現在牢屋に設定されているホスト名になります。
|
||||
.Sh エラー
|
||||
.Fn jail
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
引数のバージョン番号が正しくありません。
|
||||
|
|
|
|||
|
|
@ -60,15 +60,14 @@
|
|||
0 の場合は、エラーチェックを実行しますが、実際にシグナルは送信されません。
|
||||
これを使用して
|
||||
.Fa pid
|
||||
の有効性をチェック
|
||||
できます。
|
||||
の有効性をチェックできます。
|
||||
.Pp
|
||||
プロセスが
|
||||
.Fa pid
|
||||
によって指定されたプロセスにシグナルを送信するパーミッションを持つためには、
|
||||
受信するプロセスの実ユーザ ID または実効ユーザ ID が
|
||||
送信プロセスの対応するものと一致するか、
|
||||
またはユーザは該当する特権を持っている (set-user-ID で与えられた特権、
|
||||
またはユーザは該当する特権を持っている (ユーザ ID 設定で与えられた特権、
|
||||
またはユーザがスーパユーザである) 必要があります。
|
||||
唯一の例外はシグナル SIGCONT で、これだけは現在のプロセスの子孫に
|
||||
必ず送信できます。
|
||||
|
|
@ -83,35 +82,34 @@
|
|||
.It Fa pid No が 0 の場合:
|
||||
.Fa sig
|
||||
はグループ ID が送信側のプロセスグループ ID と等しく、それについて
|
||||
プロセスがパーミッションを持っているすべてのプロセスに送信されます。これは
|
||||
プロセスがパーミッションを持っているすべてのプロセスに送信されます。
|
||||
これは
|
||||
.Xr killpg 2
|
||||
の変種です。
|
||||
.\".It \&If Fa pid No \&is -1 :
|
||||
.It Fa pid No が -1 の場合:
|
||||
ユーザにスーパユーザの特権がある場合、
|
||||
システムプロセス
|
||||
ユーザにスーパユーザの特権がある場合、システムプロセス
|
||||
.Dv ( P_SYSTEM
|
||||
フラグが設定されている)、ID が 1 のプロセス (通常は
|
||||
.Xr init 8 )、
|
||||
およびシグナルを送信しているプロセスを
|
||||
除くすべてのプロセスにシグナルが送信されます。
|
||||
ユーザがスーパユーザでない場合、シグナルを送信しているプロセスを除く、
|
||||
ユーザと同じ uid のすべてのプロセスに
|
||||
シグナルが送信されます。いずれかのプロセスにシグナルを送信できた場合、
|
||||
エラーは返されません。
|
||||
ユーザと同じ uid のすべてのプロセスにシグナルが送信されます。
|
||||
いずれかのプロセスにシグナルを送信できた場合、エラーは返されません。
|
||||
.El
|
||||
.Pp
|
||||
System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、
|
||||
プロセス番号の絶対値に等しいプロセスグループ ID を持つ
|
||||
すべてのプロセスにシグナルが
|
||||
送信されます。これは
|
||||
すべてのプロセスにシグナルが送信されます。
|
||||
これは
|
||||
.Xr killpg 2
|
||||
の変種です。
|
||||
.Sh 戻り値
|
||||
.Rv -std kill
|
||||
.Sh エラー
|
||||
.Fn Kill
|
||||
は次の場合に処理に失敗し、シグナルは送信されません。
|
||||
は次の場合に処理に失敗し、シグナルは送信されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa sig
|
||||
|
|
@ -123,11 +121,10 @@ System V
|
|||
プロセス ID は 0 として与えられたものの、
|
||||
送信プロセスにプロセスグループがありません。
|
||||
.It Bq Er EPERM
|
||||
送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信
|
||||
プロセスの実効ユーザ ID と一致しません。
|
||||
送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信プロセスの
|
||||
実効ユーザ ID と一致しません。
|
||||
プロセスグループにシグナルを送信するとき、グループのメンバの
|
||||
いずれかにシグナル
|
||||
を送信することができない場合、このエラーが返されます。
|
||||
いずれかにシグナルを送信することができない場合、このエラーが返されます。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr getpgrp 2 ,
|
||||
|
|
@ -140,7 +137,7 @@ System V
|
|||
.Fn kill
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn kill
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@
|
|||
.Fa pgrp
|
||||
にシグナル
|
||||
.Fa sig
|
||||
を送信します。シグナルのリストについては
|
||||
を送信します。
|
||||
シグナルのリストについては
|
||||
.Xr sigaction 2
|
||||
を参照してください。
|
||||
.Fa pgrp
|
||||
|
|
@ -60,8 +61,7 @@
|
|||
.Fn killpg
|
||||
は、送信側プロセスのプロセスグループにシグナルを送信します。
|
||||
.Pp
|
||||
送信側プロセスとプロセスグループのメンバが
|
||||
同じ実効ユーザ ID を持つか、
|
||||
送信側プロセスとプロセスグループのメンバが同じ実効ユーザ ID を持つか、
|
||||
または送信側がスーパユーザである必要があります。
|
||||
唯一の特殊なケースとして、継続シグナル SIGCONT は、
|
||||
現在のプロセスの子孫であればどのプロセスにでも送信できます。
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
.Rv -std killpg
|
||||
.Sh エラー
|
||||
.Fn killpg
|
||||
は、次の場合に処理に失敗し、シグナルは送信されません。
|
||||
は、次の場合に処理に失敗し、シグナルは送信されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa sig
|
||||
|
|
@ -82,8 +82,7 @@
|
|||
プロセスグループがありません。
|
||||
.It Bq Er EPERM
|
||||
送信側プロセスがスーパユーザでなく、1 つ以上のターゲットプロセスの
|
||||
実効ユーザ ID が送信側プロセスの実効ユーザ ID と
|
||||
異なっています。
|
||||
実効ユーザ ID が送信側プロセスの実効ユーザ ID と異なっています。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr getpgrp 2 ,
|
||||
|
|
|
|||
|
|
@ -59,10 +59,10 @@
|
|||
.Fn kldfind
|
||||
は処理を失敗すると、
|
||||
.Va errno
|
||||
を以下のように設定します。
|
||||
を以下のように設定します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
この操作に必要なデータがカーネル空間から読取れませんでした。
|
||||
この操作に必要なデータがカーネル空間から読み取れませんでした。
|
||||
.It Bq Er ENOENT
|
||||
指定されたファイルはカーネルにロードされていません。
|
||||
.El
|
||||
|
|
|
|||
|
|
@ -43,8 +43,7 @@
|
|||
.Fn kldfirstmod
|
||||
関数は、
|
||||
.Fa fileid
|
||||
によって参照された最初のモジュールに関連するモジュール ID を
|
||||
返します。
|
||||
によって参照された最初のモジュールに関連するモジュール ID を返します。
|
||||
.Sh 戻り値
|
||||
.Fn kldfirstmod
|
||||
は、
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@
|
|||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
指定されたファイルは次の場合を除いてロードされます。
|
||||
指定されたファイルは次の場合を除いてロードされます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
ファイルを読取ることができません。
|
||||
ファイルを読み取ることができません。
|
||||
あるいはファイルをカーネルとリンクすることができません。
|
||||
.Nm kld
|
||||
関数を使用するためには root ユーザである必要があります。
|
||||
|
|
|
|||
|
|
@ -58,7 +58,8 @@
|
|||
.Fn kldnext
|
||||
によって設定されるエラーは
|
||||
.Er ENOENT
|
||||
だけです。これが設定されるのは、
|
||||
だけです。
|
||||
これが設定されるのは、
|
||||
.Va fileid
|
||||
が存在していない (ロードされていない) kld ファイルを参照しているときです。
|
||||
.Sh 関連項目
|
||||
|
|
|
|||
|
|
@ -63,8 +63,7 @@ struct kld_file_stat {
|
|||
.Fn kldstat
|
||||
自体ではなく、
|
||||
.Fn kldstat
|
||||
を呼び出すコードで前述した
|
||||
構造体のサイズに設定します。
|
||||
を呼び出すコードで前述した構造体のサイズに設定します。
|
||||
.It name
|
||||
.Fa fileid
|
||||
によって参照されるファイルの名前
|
||||
|
|
@ -86,19 +85,17 @@ kld
|
|||
.Fa fileid
|
||||
が参照するファイルに関する情報は
|
||||
.Fa stat
|
||||
が指す構造体に記入されます。
|
||||
が指す構造体に記入されます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOENT
|
||||
ファイルが見つかりませんでした (おそらくロードされていないのでしょう)。
|
||||
.It Bq Er EINVAL
|
||||
stat
|
||||
の
|
||||
stat の
|
||||
.Fa version
|
||||
フィールドで指定されたバージョンが適切ではありません。
|
||||
.Fa version
|
||||
フィールドに適切に記入しているのにこのエラーが起きた場合は、
|
||||
ワールド、カーネル、
|
||||
またはアプリケーションを再構築する必要があります。
|
||||
ワールド、カーネル、またはアプリケーションを再構築する必要があります。
|
||||
.It Bq Er EFAULT
|
||||
.Fn copyout
|
||||
関数で、フィールドを
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ struct kld_sym_lookup {
|
|||
の中の値が不正です。
|
||||
.It Bq Er ENOENT
|
||||
.Fa fileid
|
||||
が不正であるか、指定したシンボルが見付かりませんでした。
|
||||
が不正であるか、指定したシンボルが見つかりませんでした。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr kldfind 2 ,
|
||||
|
|
@ -116,4 +116,4 @@ struct kld_sym_lookup {
|
|||
.Fn kldsym
|
||||
関数は
|
||||
.Fx 3.0
|
||||
で初めて登場しました。
|
||||
ではじめて登場しました。
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
.Rv -std
|
||||
.Sh エラー
|
||||
.Fa fileid
|
||||
によって参照されるファイルは、次の場合を除いてアンロードされます。
|
||||
によって参照されるファイルは、次の場合を除いてアンロードされます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
ファイルをカーネルからアンリンク出来ません。
|
||||
|
|
|
|||
|
|
@ -46,8 +46,7 @@
|
|||
.Sh 解説
|
||||
.Fn kqueue
|
||||
は、フィルタと呼ばれる小さなカーネルコードの実行結果に基づき、
|
||||
イベントの発生やある状態の成立を
|
||||
ユーザに通知する一般的な方法を提供します。
|
||||
イベントの発生やある状態の成立をユーザに通知する一般的な方法を提供します。
|
||||
kevent は (ident, filter) のペアによって識別されます。
|
||||
ここで、ident は識別子、filter はフィルタを表します。
|
||||
1 つの kqueue には、同じ kevent が複数存在することはできません。
|
||||
|
|
@ -89,10 +88,11 @@ kqueue
|
|||
.Fa changelist
|
||||
は
|
||||
.Va kevent
|
||||
構造体の配列へのポインタです。この構造体は
|
||||
構造体の配列へのポインタです。
|
||||
この構造体は
|
||||
.Aq Pa sys/event.h
|
||||
で定義されています。
|
||||
保留中のイベントをキューから読み込む前に、
|
||||
保留中のイベントをキューから読み取る前に、
|
||||
.Fa changelist
|
||||
に含まれている全ての変更を適用します。
|
||||
.Fa nchanges
|
||||
|
|
@ -126,7 +126,7 @@ kqueue
|
|||
は kevent 構造体の初期化を簡単にするマクロです。
|
||||
.Pp
|
||||
.Va kevent
|
||||
構造体は次のように定義されています。
|
||||
構造体は次のように定義されています:
|
||||
.Bd -literal
|
||||
struct kevent {
|
||||
uintptr_t ident; /* このイベントの識別子 */
|
||||
|
|
@ -139,7 +139,7 @@ struct kevent {
|
|||
.Ed
|
||||
.Pp
|
||||
.Fa struct kevent
|
||||
のフィールドは以下の通りです。
|
||||
のフィールドは以下のとおりです:
|
||||
.Bl -tag -width XXXfilter
|
||||
.It ident
|
||||
このイベントを識別するために使用される値です。
|
||||
|
|
@ -159,7 +159,7 @@ struct kevent {
|
|||
.El
|
||||
.Pp
|
||||
.Va flags
|
||||
フィールドは以下の値を含むことができます。
|
||||
フィールドは以下の値を含むことができます:
|
||||
.Bl -tag -width XXXEV_ONESHOT
|
||||
.It EV_ADD
|
||||
イベントを kqueue に追加します。
|
||||
|
|
@ -172,7 +172,8 @@ struct kevent {
|
|||
.Fn kevent
|
||||
がそのイベントを返すことを許可します。
|
||||
.It EV_DISABLE
|
||||
イベントを無効にします。これにより
|
||||
イベントを無効にします。
|
||||
これにより
|
||||
.Fn kevent
|
||||
はそのイベントを返さなくなります。
|
||||
フィルタ自身は無効にされません。
|
||||
|
|
@ -206,7 +207,7 @@ kqueue
|
|||
.Bl -tag -width EVFILT_SIGNAL
|
||||
.It EVFILT_READ
|
||||
識別子に記述子を引数として取ります。
|
||||
読み込み可能なデータがあるときに戻ります。
|
||||
読取り可能なデータがあるときに戻ります。
|
||||
このフィルタの振舞いは、その記述子の型により少し異なります。
|
||||
.Pp
|
||||
.Bl -tag -width 2n
|
||||
|
|
@ -219,20 +220,22 @@ kqueue
|
|||
.Pp
|
||||
その他のソケット記述子の場合、ソケットバッファの
|
||||
.Dv SO_RCVLOWAT
|
||||
の値を基準にして、読み込むデータがあるときに戻ります。
|
||||
の値を基準にして、読み取るデータがあるときに戻ります。
|
||||
フィルタを追加するときに、
|
||||
.Va fflags
|
||||
に NOTE_LOWAT を設定し
|
||||
.Va data
|
||||
に新しい最低基準値を指定することにより、
|
||||
この値を、
|
||||
フィルタごとの最低基準値で上書きすることが可能です。戻るときには、
|
||||
フィルタごとの最低基準値で上書きすることが可能です。
|
||||
戻るときには、
|
||||
.Va data
|
||||
には読み込み可能なプロトコルデータのバイト数が入っています。
|
||||
には読取り可能なプロトコルデータのバイト数が入っています。
|
||||
.Pp
|
||||
ソケットの読み込み側が切断された場合には、フィルタは
|
||||
ソケットの読取り側が切断された場合には、フィルタは
|
||||
.Va flags
|
||||
に EV_EOF も設定します。ここでエラーが起きた場合には、
|
||||
に EV_EOF も設定します。
|
||||
ここでエラーが起きた場合には、
|
||||
.Va fflags
|
||||
にソケットエラーを返します。
|
||||
ソケットバッファの中に保留中のデータが残っていても、
|
||||
|
|
@ -243,39 +246,39 @@ kqueue
|
|||
は現在位置からファイルの最後 (EOF) までのオフセットが入っています。
|
||||
この値は負であるかもしれません。
|
||||
.It FIFO とパイプ
|
||||
読み込むべきデータがあるときに戻ります。
|
||||
読み取るべきデータがあるときに戻ります。
|
||||
.Va data
|
||||
には有効なバイト数が入っています。
|
||||
.Pp
|
||||
最後の書き込み側が切断したときに、フィルタは
|
||||
最後の書込み側が切断したときに、フィルタは
|
||||
.Va flags
|
||||
に EV_EOF をセットします。
|
||||
EV_CLEAR を渡すことで、このフラグをクリアすることができ、
|
||||
フィルタはデータが読み込めるように
|
||||
なるのを戻らずに再び待ちます。
|
||||
フィルタはデータが読み取るようになるのを戻らずに再び待ちます。
|
||||
.El
|
||||
.It EVFILT_WRITE
|
||||
識別子に記述子を引数として取ります。
|
||||
その記述子が書き込み可能になるたびに戻ります。
|
||||
その記述子が書込み可能になるたびに戻ります。
|
||||
ソケット、パイプおよび FIFO では、
|
||||
.Va data
|
||||
には書き込みバッファの残り領域の大きさが入っています。
|
||||
読み込み側が切断したときに、フィルタは EV_EOF をセットします。
|
||||
には書込みバッファの残り領域の大きさが入っています。
|
||||
読取り側が切断したときに、フィルタは EV_EOF をセットします。
|
||||
FIFO の場合、EV_CLEAR を使いこれをクリアすることができます。
|
||||
このフィルタは vnode をサポートしていないことに注意してください。
|
||||
.Pp
|
||||
ソケットの場合、最低基準値およびソケットエラーの取り扱いは
|
||||
EVFULT_READ の場合と同じです。
|
||||
.It EVFILT_AIO
|
||||
非同期入出力リクエストの sigevent 部分の、
|
||||
非同期入出力要求の sigevent 部分の、
|
||||
.Va sigev_notify_kqueue
|
||||
にはイベントを付加する kqueue の記述子を入れ、
|
||||
.Va sigev_value
|
||||
には udata の値を入れ、
|
||||
.Va sigev_notify
|
||||
には SIGEV_KEVENT を入れて、非同期入出力リクエストを埋めます。
|
||||
には SIGEV_KEVENT を入れて、非同期入出力要求を埋めます。
|
||||
aio_* 関数が呼び出されたとき、そのイベントは
|
||||
指定された kqueue に登録されます。aio_* 関数が返した
|
||||
指定された kqueue に登録されます。
|
||||
aio_* 関数が返した
|
||||
.Fa aiocb
|
||||
構造体を
|
||||
.Va ident
|
||||
|
|
@ -285,7 +288,7 @@ aio_*
|
|||
別の方法として、
|
||||
.Va ident
|
||||
に kqueue 記述子を入れて kevent 構造体を初期化し、
|
||||
そのアドレスを非同期リクエストの
|
||||
そのアドレスを非同期要求の
|
||||
.Va aio_lio_opcode
|
||||
フィールドに置くことも可能です。
|
||||
しかしながら、このアプローチは 64 ビットポインタのアーキテクチャでは
|
||||
|
|
@ -294,16 +297,15 @@ aio_*
|
|||
ファイル記述子を識別子に、監視するイベントを
|
||||
.Va fflags
|
||||
に引数として取ります。
|
||||
指定した記述子に対し
|
||||
要求されたイベントが 1 つ以上発生したときに戻ります。
|
||||
監視するイベントを以下に示します。
|
||||
指定した記述子に対し要求されたイベントが 1 つ以上発生したときに戻ります。
|
||||
監視するイベントを以下に示します:
|
||||
.Bl -tag -width XXNOTE_RENAME
|
||||
.It NOTE_DELETE
|
||||
記述子が参照するファイルに対し
|
||||
.Fn unlink
|
||||
が呼ばれました。
|
||||
.It NOTE_WRITE
|
||||
記述子が参照するファイルに対し書き込みが起こりました。
|
||||
記述子が参照するファイルに対し書込みが起こりました。
|
||||
.It NOTE_EXTEND
|
||||
記述子が参照するファイルのサイズが拡張されました。
|
||||
.It NOTE_ATTRIB
|
||||
|
|
@ -329,7 +331,7 @@ aio_*
|
|||
要求されたイベントを 1 つ以上プロセスが実行するときに戻ります。
|
||||
あるプロセスが他のプロセスを正常に見ることができる場合には、
|
||||
イベントをそのプロセスに結び付けることができます。
|
||||
監視するイベントを次に示します。
|
||||
監視するイベントを次に示します:
|
||||
.Bl -tag -width XXNOTE_TRACKERR
|
||||
.It NOTE_EXIT
|
||||
プロセスが終了しました。
|
||||
|
|
@ -424,7 +426,7 @@ EV_ONESHOT
|
|||
は 0 を返します。
|
||||
.Sh エラー
|
||||
.Fn kqueue
|
||||
関数は以下の場合に失敗します。
|
||||
関数は以下の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOMEM
|
||||
カーネルがカーネルキューのための十分なメモリの割り当てに失敗しました。
|
||||
|
|
@ -435,13 +437,13 @@ EV_ONESHOT
|
|||
.El
|
||||
.Pp
|
||||
.Fn kevent
|
||||
関数は以下の場合に失敗します。
|
||||
関数は以下の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EACCES
|
||||
プロセスがフィルタを登録する権限を持っていません。
|
||||
.It Bq Er EFAULT
|
||||
.Va kevent
|
||||
構造体の読み込みまたは書き込みでエラーがありました。
|
||||
構造体の読取りまたは書込みでエラーがありました。
|
||||
.It Bq Er EBADF
|
||||
指定された記述子が有効ではありません。
|
||||
.It Bq Er EINTR
|
||||
|
|
@ -472,7 +474,7 @@ EV_ONESHOT
|
|||
.Fn kevent
|
||||
関数は
|
||||
.Fx 4.1
|
||||
で初めて登場しました。
|
||||
ではじめて登場しました。
|
||||
.Sh 作者
|
||||
.Fn kqueue
|
||||
システムと、このマニュアルページは
|
||||
|
|
|
|||
|
|
@ -51,23 +51,24 @@
|
|||
.Sh 解説
|
||||
.Fn ktrace
|
||||
関数は、1 つまたは複数のプロセスのトレースを有効または無効にします。
|
||||
ユーザは自分のプロセスだけを
|
||||
トレースできます。スーパユーザだけが、setuid プログラムまたは
|
||||
ユーザは自分のプロセスだけをトレースできます。
|
||||
スーパユーザだけが、setuid プログラムまたは
|
||||
setgid プログラムをトレースできます。
|
||||
.Pp
|
||||
.Fa tracefile
|
||||
は、トレースに使用するファイルのパス名を指定します。
|
||||
ファイルは存在していなければならず、
|
||||
呼び出し側プロセスによって書き込み可能な通常ファイルである必要があります。
|
||||
呼び出し側プロセスによって書込み可能な通常ファイルである必要があります。
|
||||
トレースレコードはすべてファイルの末尾に追加されるので、
|
||||
直前のトレースデータを切り捨てるためにはファイルの長さを 0 にする必要が
|
||||
あります。トレース点が無効な場合 (後述の KTROP_CLEAR を参照)、
|
||||
あります。
|
||||
トレース点が無効な場合 (後述の KTROP_CLEAR を参照)、
|
||||
.Fa tracefile
|
||||
は NULL にできます。
|
||||
.Pp
|
||||
.Fa ops
|
||||
パラメータは要求された ktrace 操作を指定します。
|
||||
定義されている操作は次のとおりです。
|
||||
定義されている操作は次のとおりです:
|
||||
.Bl -column KTRFLAG_DESCENDXXX -offset indent
|
||||
.It "KTROP_SET "
|
||||
.Fa trpoints
|
||||
|
|
@ -82,7 +83,7 @@ setgid
|
|||
.Pp
|
||||
.Fa trpoints
|
||||
パラメータは関心のあるトレース点を指定します。
|
||||
定義されているトレース点は次のとおりです。
|
||||
定義されているトレース点は次のとおりです:
|
||||
.Bl -column KTRFAC_SYSCALLXXX -offset indent
|
||||
.It "KTRFAC_SYSCALL システムコールをトレースします。"
|
||||
.It "KTRFAC_SYSRET システムコールからの戻り値をトレースします。"
|
||||
|
|
@ -96,7 +97,7 @@ setgid
|
|||
.Pp
|
||||
各トレースイベントは、汎用のヘッダの後に
|
||||
トレース点に固有の構成要素が続く形式のレコードを出力します。
|
||||
汎用のヘッダは次のとおりです。
|
||||
汎用のヘッダは次のとおりです:
|
||||
.Bd -literal
|
||||
struct ktr_header {
|
||||
int ktr_len; /* バッファの長さ */
|
||||
|
|
@ -120,21 +121,21 @@ struct ktr_header {
|
|||
フィールドは、
|
||||
レコードが生成された時刻を (マイクロ秒単位で) 示します。
|
||||
.Va ktr_buf
|
||||
は、内部カーネルポインタで
|
||||
あって有用ではありません。
|
||||
は、内部カーネルポインタであって有用ではありません。
|
||||
.Pp
|
||||
汎用ヘッダには
|
||||
.Va ktr_len
|
||||
バイトの長さの
|
||||
.Va ktr_type
|
||||
レコードが続きます。タイプに固有のレコードは
|
||||
レコードが続きます。
|
||||
タイプに固有のレコードは
|
||||
.Aq Pa sys/ktrace.h
|
||||
インクルードファイル内で定義されています。
|
||||
.Sh 戻り値
|
||||
.Rv -std ktrace
|
||||
.Sh エラー
|
||||
.Fn ktrace
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
|
|||
|
|
@ -51,13 +51,12 @@
|
|||
.Fa name1
|
||||
が指す下層オブジェクトの属性を持つ、指定のディレクトリエントリ (ハードリンク)
|
||||
.Fa name2
|
||||
を不可分に作成します。リンクが正常に完了すると
|
||||
下層オブジェクトのリンクカウントが増加します。
|
||||
を不可分に作成します。
|
||||
リンクが正常に完了すると下層オブジェクトのリンクカウントが増加します。
|
||||
.Fa name1
|
||||
と
|
||||
.Fa name2
|
||||
は、下層オブジェクトへのアクセスとアクセス権を等しく
|
||||
共有します。
|
||||
は、下層オブジェクトへのアクセスとアクセス権を等しく共有します。
|
||||
.Pp
|
||||
.Fa name1
|
||||
を削除してもファイル
|
||||
|
|
@ -76,7 +75,7 @@
|
|||
.Rv -std link
|
||||
.Sh エラー
|
||||
.Fn link
|
||||
は次の場合に処理に失敗し、リンクは作成されません。
|
||||
は次の場合に処理に失敗し、リンクは作成されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
いずれかの前置パス名の構成要素がディレクトリではありません。
|
||||
|
|
@ -91,13 +90,12 @@
|
|||
リンクをサポートしていません。
|
||||
.It Bq Er EMLINK
|
||||
.Fa name1
|
||||
で指定されたファイルのリンクカウントが 32767
|
||||
を越えます。
|
||||
で指定されたファイルのリンクカウントが 32767 を越えます。
|
||||
.It Bq Er EACCES
|
||||
いずれかの前置パス名の構成要素について検索許可が拒否されています。
|
||||
.It Bq Er EACCES
|
||||
要求されたリンクは、書込み許可を拒否するモードのディレクトリに
|
||||
書込みすることを要求しています。
|
||||
書き込むことを要求しています。
|
||||
.It Bq Er ELOOP
|
||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||
.It Bq Er ENOENT
|
||||
|
|
@ -142,7 +140,7 @@
|
|||
.Fn link
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn link
|
||||
関数は
|
||||
|
|
@ -153,4 +151,4 @@
|
|||
.Fn link
|
||||
システムコールによってディレクトリをリンクでき、
|
||||
これはファイルシステムの一貫性を破壊するものでした。
|
||||
この実装では、このような操作は もはや許されません。
|
||||
この実装では、このような操作はもはや許されません。
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ MIB
|
|||
の値にされます。
|
||||
.Sh ACCEPT フィルタとの相互作用
|
||||
ソケットに対して accept フィルタを使用すると、
|
||||
接続済であるものの accept フィルタの基準にまだ合致しないソケットを
|
||||
接続済みであるものの accept フィルタの基準にまだ合致しないソケットを
|
||||
保持するための第 2 の待ち行列が使用されます。
|
||||
ひとたび基準に合致すれば、これらのソケットは接続完了済の待ち行列に移動され、
|
||||
.Xr accept 2
|
||||
|
|
@ -109,7 +109,7 @@ accept
|
|||
.Rv -std listen
|
||||
.Sh エラー
|
||||
.Fn listen
|
||||
は次の場合に処理を失敗します。
|
||||
は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
引数
|
||||
|
|
|
|||
|
|
@ -53,13 +53,14 @@
|
|||
.Fa fildes
|
||||
のオフセットを引数
|
||||
.Fa offset
|
||||
に移動します。引数
|
||||
に移動します。
|
||||
引数
|
||||
.Fa fildes
|
||||
はオープンファイル記述子でなければなりません。
|
||||
.Fn lseek
|
||||
は、次のようにファイル記述子
|
||||
.Fa fildes
|
||||
に対応するファイル位置ポインタを移動します。
|
||||
に対応するファイル位置ポインタを移動します:
|
||||
.Bl -item -offset indent
|
||||
.It
|
||||
.Fa whence
|
||||
|
|
@ -87,21 +88,22 @@
|
|||
.Fn lseek
|
||||
関数によって、ファイルオフセットをファイルの既存のファイルの終り (EOF)
|
||||
を越えるところに設定できます。
|
||||
後にデータがこの点に書きこまれると、それ以後のギャップ内のデータに対する読取りは
|
||||
後にデータがこの点に書き込まれると、
|
||||
それ以後のギャップ内のデータに対する読取りは
|
||||
(データが実際にギャップ内に書き込まれるまで) データとして 0 を返します。
|
||||
.Pp
|
||||
シークできないデバイスもあります。そのようなデバイスに対応するポインタの
|
||||
値は未定義になります。
|
||||
シークできないデバイスもあります。
|
||||
そのようなデバイスに対応するポインタの値は未定義になります。
|
||||
.Sh 戻り値
|
||||
処理が正常に完了すると
|
||||
.Fn lseek
|
||||
は、ファイルの先頭から測定した結果のオフセット位置を
|
||||
バイト単位で返します。そうでない場合は -1 が返され、エラーを示すために
|
||||
は、ファイルの先頭から測定した結果のオフセット位置をバイト単位で返します。
|
||||
そうでない場合は -1 が返され、エラーを示すために
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn lseek
|
||||
は次の場合に処理を失敗し、ファイル位置ポインタは変更されません。
|
||||
は次の場合に処理を失敗し、ファイル位置ポインタは変更されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Em fildes
|
||||
|
|
@ -129,7 +131,7 @@
|
|||
.Fn lseek
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn lseek
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
システムに説明できます。
|
||||
これまで知られている習性は、
|
||||
.Aq Pa sys/mman.h
|
||||
で定義されており、次のとおりです。
|
||||
で定義されており、次のとおりです:
|
||||
.\" 6 から訳追加
|
||||
.Bd -literal
|
||||
#define MADV_NORMAL 0 /* これ以降、特殊な処理は必要ない */
|
||||
|
|
@ -79,23 +79,24 @@
|
|||
ページがランダムにアクセスされ、プリフェッチが有利ではないと考えられるという
|
||||
ヒントです。
|
||||
.It Dv MADV_SEQUENTIAL
|
||||
指定のページがフォルトで読み込まれたとき、そのページの直前のページの
|
||||
指定のページがフォルトで読み取られたとき、そのページの直前のページの
|
||||
優先順位を VM システムが下げるようにします。
|
||||
.It Dv MADV_WILLNEED
|
||||
指定の仮想アドレス範囲内にあるページが一時的に高い優先順位を持つようにし、
|
||||
それらがメモリ内にある場合、解放される可能性を減少させます。
|
||||
さらに既にメモリ内にあるページはただちにプロセスにマップされ、
|
||||
それによってプロセス全体にわたるフォルトによる読み込みによる
|
||||
それによってプロセス全体にわたるフォルトによる読取りによる
|
||||
不要なオーバヘッドを除去します。
|
||||
これは、フォルトによるページのバッキングストアからの
|
||||
読み込みを生じさせるのではなく、
|
||||
読取りを生じさせるのではなく、
|
||||
メモリ内に既にあるページを呼び出し側のプロセスに素早くマップさせます。
|
||||
.It Dv MADV_DONTNEED
|
||||
VM システムに、指定の範囲内のページのメモリ内優先順位の減少を許可します。
|
||||
今後、このアドレス範囲への参照はページフォルトを発生させるでしょう。
|
||||
.It Dv MADV_FREE
|
||||
VM システムにページを解放する自由を与え、指定ページ範囲内の情報がもはや
|
||||
重要でないことをシステムに通知します。これは、アドレス空間を有効にしたままで
|
||||
重要でないことをシステムに通知します。
|
||||
これは、アドレス空間を有効にしたままで
|
||||
.Xr malloc 3
|
||||
がアドレス空間内の任意の位置のページを解放できるようにする効率的な方法です。
|
||||
ページが次に参照される時には、そのページは要求時 0 クリアの対象に
|
||||
|
|
@ -103,14 +104,14 @@ VM
|
|||
.Dv MADV_FREE
|
||||
呼び出しの前にそこにあったデータが残っているかもしれません。
|
||||
ページが再び修正されるまで、そのアドレス空間範囲に対する参照だけでは、
|
||||
VM システムはバッキングストアから情報をページに読み込む動作を行わなくなります。
|
||||
VM システムはバッキングストアから情報をページに読み取る動作を行わなくなります。
|
||||
.\" 訳追加
|
||||
.It Dv MADV_NOSYNC
|
||||
このマップに関連づけられているデータを
|
||||
物理的バッキングストアにフラッシュしないようにシステムに要求します。
|
||||
通常、これにより、ファイルシステムアップデートデーモンが
|
||||
VM システムが汚したページを特に理由もないのに
|
||||
物理ディスクに書込む不要な動作を防止します。
|
||||
物理ディスクに書き込む不要な動作を防止します。
|
||||
VM とファイルシステムの一貫性は常に維持されることに注意してください。
|
||||
この機能は、マップされたデータが必要なときだけ、
|
||||
(通常、システムページャにより) フラッシュされることを
|
||||
|
|
@ -133,7 +134,7 @@ MAP_NOSYNC
|
|||
MADV_NOSYNC の効果を元に戻します。
|
||||
既に汚されているページについての効果は不定です。
|
||||
書き戻しするかもしれませんし、しないかもしれません。
|
||||
書き戻しを確実に行なうには、
|
||||
書き戻しを確実に行うには、
|
||||
.Xr msync 2
|
||||
または
|
||||
.Xr fsync 2
|
||||
|
|
@ -147,7 +148,7 @@ MADV_NOSYNC
|
|||
.Rv -std madvise
|
||||
.Sh エラー
|
||||
.Fn madvise
|
||||
関数は次の場合に失敗します。
|
||||
関数は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa addr
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ exec
|
|||
.Rv -std minherit
|
||||
.Sh エラー
|
||||
.Fn minherit
|
||||
関数は次の場合に処理を失敗します。
|
||||
関数は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa addr
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
.Rv -std mkdir
|
||||
.Sh エラー
|
||||
.Fn mkdir
|
||||
は次の場合、処理に失敗してディレクトリは作成されません。
|
||||
は次の場合、処理に失敗してディレクトリは作成されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
パスの構成要素が存在しません。
|
||||
.It Bq Er EACCES
|
||||
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||
または、作成するディレクトリの親ディレクトリに対する書き込み権限が
|
||||
または、作成するディレクトリの親ディレクトリに対する書込み権限が
|
||||
拒否されました。
|
||||
.It Bq Er ELOOP
|
||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||
|
|
@ -88,7 +88,8 @@
|
|||
ディレクトリを作成するファイルシステム上に未使用の
|
||||
inode がありません。
|
||||
.It Bq Er EDQUOT
|
||||
新しいディレクトリが作成できません。ディレクトリを作るファイルシステム上の
|
||||
新しいディレクトリが作成できません。
|
||||
ディレクトリを作るファイルシステム上の
|
||||
ディスクブロックのユーザのクォータが枯渇しました。
|
||||
.It Bq Er EDQUOT
|
||||
ディレクトリを作成中のファイルシステム上のユーザの inode のクォータが
|
||||
|
|
@ -110,4 +111,4 @@ inode
|
|||
.Fn mkdir
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@
|
|||
.Fn mkfifo
|
||||
は、
|
||||
.Fa path
|
||||
という名前の新しい fifo
|
||||
ファイルを作成します。アクセス許可は
|
||||
という名前の新しい fifo ファイルを作成します。
|
||||
アクセス許可は
|
||||
.Fa mode
|
||||
によって指定され、呼び出しプロセスの
|
||||
.Xr umask 2
|
||||
|
|
@ -63,7 +63,7 @@ fifo
|
|||
.Rv -std mkfifo
|
||||
.Sh エラー
|
||||
.Fn mkfifo
|
||||
は、次の場合に処理を失敗し、fifo は作成されません。
|
||||
は、次の場合に処理を失敗し、fifo は作成されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTSUP
|
||||
カーネルが fifo をサポートするように構成されていません。
|
||||
|
|
@ -115,4 +115,4 @@ fifo
|
|||
.Fn mkfifo
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -50,14 +50,14 @@
|
|||
.Fa path
|
||||
が、
|
||||
.Fa mode
|
||||
で指定されたファイルタイプとアクセス許可で
|
||||
作成されます。アクセス許可はプロセスの umask 値による修正を受けます。
|
||||
で指定されたファイルタイプとアクセス許可で作成されます。
|
||||
アクセス許可はプロセスの umask 値による修正を受けます。
|
||||
.Pp
|
||||
.Fa mode
|
||||
がブロックまたはキャラクタ型特殊ファイルを示す場合、
|
||||
.Fa dev
|
||||
はシステム上の特定のデバイスを示す
|
||||
構成に依存する指示です。そうでない場合
|
||||
はシステム上の特定のデバイスを示す構成に依存する指示です。
|
||||
そうでない場合
|
||||
.Fa dev
|
||||
は無視されます。
|
||||
.Pp
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
.Rv -std mknod
|
||||
.Sh エラー
|
||||
.Fn mknod
|
||||
は次の場合に処理に失敗し、ファイルは作成されません。
|
||||
は次の場合に処理に失敗し、ファイルは作成されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
|
|||
|
|
@ -54,13 +54,12 @@
|
|||
.Fa addr
|
||||
から開始する
|
||||
.Fa len
|
||||
バイトの仮想アドレス範囲に対応する物理ページを
|
||||
メモリにロックします。
|
||||
バイトの仮想アドレス範囲に対応する物理ページをメモリにロックします。
|
||||
.Fn munlock
|
||||
呼び出しは、1 つ以上の
|
||||
.Fn mlock
|
||||
呼び出しによってロックされていた
|
||||
ページをアンロックします。これらの両方において、
|
||||
呼び出しによってロックされていたページをアンロックします。
|
||||
これらの両方において、
|
||||
.Fa addr
|
||||
パラメータはページサイズの整数倍でなければいけません。
|
||||
.Fa len
|
||||
|
|
@ -73,14 +72,14 @@
|
|||
しかし、TLB の管理をソフトウェアで実装しているアーキテクチャでは、
|
||||
保護違反フォルト、または TLB ミスフォルトを起こす可能性はあります。
|
||||
ページに関するすべてのロックされたマッピングが削除されるまで
|
||||
物理ページはメモリに留まります。複数のプロセスが、
|
||||
それぞれの仮想アドレスマッピングから同じ物理ページをロックする
|
||||
可能性があります。同様に、1 つのプロセスが
|
||||
同じページに対する異なる複数の仮想マッピングによって、
|
||||
または同じアドレス範囲へのネストした
|
||||
物理ページはメモリに留まります。
|
||||
複数のプロセスが、それぞれの仮想アドレスマッピングから
|
||||
同じ物理ページをロックする可能性があります。
|
||||
同様に、1 つのプロセスが同じページに対する異なる複数の
|
||||
仮想マッピングによって、または同じアドレス範囲へのネストした
|
||||
.Fn mlock
|
||||
呼び出しによって、ページを多重にロックする
|
||||
可能性があります。アンロックは、
|
||||
呼び出しによって、ページを多重にロックする可能性があります。
|
||||
アンロックは、
|
||||
.Fn munlock
|
||||
によって明示的に、または
|
||||
.Fn munmap
|
||||
|
|
@ -108,7 +107,7 @@
|
|||
失敗した場合は、範囲内のすべてのページのロック状態は変更されません。
|
||||
.Sh エラー
|
||||
.Fn mlock
|
||||
は次の場合に処理を失敗します。
|
||||
は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出し側がスーパユーザではありません。
|
||||
|
|
@ -122,7 +121,7 @@
|
|||
ページのフォルト / マッピングでエラーがありました。
|
||||
.El
|
||||
.Fn munlock
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出し側がスーパユーザではありません。
|
||||
|
|
@ -143,13 +142,13 @@
|
|||
.Sh バグ
|
||||
Sun の実装と異なり、同じアドレス範囲に関する複数の
|
||||
.Fn mlock
|
||||
呼び出しに対して、実際にページをアンロック
|
||||
するために対応する数の
|
||||
呼び出しに対して、実際にページをアンロックするために対応する数の
|
||||
.Fn munlock
|
||||
呼び出しが必要です。つまり
|
||||
呼び出しが必要です。
|
||||
つまり
|
||||
.Fn mlock
|
||||
のネストです。これは実装上の結果であって
|
||||
仕様ではないと考える必要があります。
|
||||
のネストです。
|
||||
これは実装上の結果であって仕様ではないと考える必要があります。
|
||||
.Pp
|
||||
プロセスごとのリソースの限界はロックされた仮想メモリの量への制限で、
|
||||
システム全体に共通の制限はロックされた物理ページの数についてのものです。
|
||||
|
|
|
|||
|
|
@ -53,8 +53,7 @@
|
|||
.Fa len
|
||||
バイトの連続するページに、
|
||||
.Fa fd
|
||||
によって記述されるオブジェクトの
|
||||
バイトオフセット
|
||||
によって記述されるオブジェクトのバイトオフセット
|
||||
.Fa offset
|
||||
の位置から始まる部分をマップされるようにします。
|
||||
.Fa len
|
||||
|
|
@ -79,7 +78,7 @@
|
|||
引数で、以下の値の論理和
|
||||
.\".Em or Ns 'ing
|
||||
.Em ( or )
|
||||
を取った値で指定します。
|
||||
を取った値で指定します:
|
||||
.Pp
|
||||
.Bl -tag -width PROT_WRITE -compact
|
||||
.It Dv PROT_NONE
|
||||
|
|
@ -94,20 +93,19 @@
|
|||
.Pp
|
||||
.Fa flags
|
||||
パラメータは、マップされたオブジェクトのタイプ、マッピングオプション、
|
||||
およびマップされたページのコピーに対して行なわれた修正が、プロセスに
|
||||
およびマップされたページのコピーに対して行われた修正が、プロセスに
|
||||
固有であるかまたは他からの参照と共有されるかを指定します。
|
||||
共有、マッピングタイプ、およびオプションは、以下の値の論理和
|
||||
.\".Em or Ns 'ing
|
||||
.Em ( or )
|
||||
を取った値で
|
||||
.Fa flags
|
||||
引数に指定します。
|
||||
引数に指定します:
|
||||
.Bl -tag -width MAP_HASSEMAPHORE
|
||||
.It Dv MAP_ANON
|
||||
どの特定のファイルとも対応していない匿名メモリをマップします。
|
||||
.Dv MAP_ANON
|
||||
を作成するのに使用される
|
||||
ファイル記述子は \-1 である必要があります。
|
||||
を作成するのに使用されるファイル記述子は \-1 である必要があります。
|
||||
.Fa offset
|
||||
パラメータは無視されます。
|
||||
.\".It Dv MAP_FILE
|
||||
|
|
@ -138,8 +136,8 @@
|
|||
(通常はページャによって) 必要な時のみ物理的なメディアに
|
||||
フラッシュするようにします。
|
||||
普通、このオプションにより、更新デーモンはこのマップで
|
||||
汚されたページをフラッシュしないようになります。これにより、
|
||||
ファイルバックアップされた共有メモリのマッピングを使用して
|
||||
汚されたページをフラッシュしないようになります。
|
||||
これにより、ファイルバックアップされた共有メモリのマッピングを使用して
|
||||
無関係なプロセスの間でメモリアクセスを効率的に共有することが
|
||||
できるようになります。
|
||||
このオプションがないと、汚された VM ページは頻繁 (通常 30-60 秒毎) に
|
||||
|
|
@ -173,18 +171,17 @@ VM/
|
|||
.Pp
|
||||
同じことが、
|
||||
.Dv MAP_NOSYNC
|
||||
を使いファイルベースの共有メモリストアを実装する場合にもいえます。
|
||||
を使いファイルベースの共有メモリストアを実装する場合にも言えます。
|
||||
.Fn ftruncate
|
||||
してバッキングストアを作るのではなく、0 を
|
||||
.Fn write
|
||||
してバッキングストアを作ることを推奨します。
|
||||
たとえば、
|
||||
.Dq Li dd if=filename of=/dev/null bs=32k
|
||||
を使うなどして巨大なファイルをシーケンシャルに読み込みながら、
|
||||
を使うなどして巨大なファイルをシーケンシャルに読み取りながら、
|
||||
.Dq Li iostat 1
|
||||
を呼び出すことで得られる
|
||||
KB/t (転送 1 回あたりのキロバイト数) を観察することで
|
||||
ファイル断片化のテストが可能です。
|
||||
を呼び出すことで得られる KB/t (転送 1 回あたりのキロバイト数) を
|
||||
観察することでファイル断片化のテストが可能です。
|
||||
.Pp
|
||||
.Xr fsync 2
|
||||
関数はすべての汚染されたデータとファイルに関連づけられたメタデータ
|
||||
|
|
@ -197,11 +194,12 @@ KB/t (ž
|
|||
システムコールは
|
||||
.Bx
|
||||
で整合性のあるファイルシステムのバッファキャッシュが実装されたので
|
||||
廃止されました。しかしながら、汚れた VM ページとファイルシステムを
|
||||
結びつけ、物理的媒体にすぐに(後程ではなく)フラッシュさせる用途に
|
||||
廃止されました。
|
||||
しかしながら、汚れた VM ページとファイルシステムを結びつけ、
|
||||
物理的媒体にすぐに (後程ではなく) フラッシュさせる用途に
|
||||
使われることもあります。
|
||||
.It Dv MAP_PRIVATE
|
||||
修正はプロセス固有に行なわれます。
|
||||
修正はプロセス固有に行われます。
|
||||
.It Dv MAP_SHARED
|
||||
修正は共有されます。
|
||||
.It Dv MAP_STACK
|
||||
|
|
@ -219,30 +217,33 @@ KB/t (ž
|
|||
と
|
||||
.Dv PROT_WRITE
|
||||
が入っている必要があります。
|
||||
このオプションは、スタックの
|
||||
先頭を開始点とし下方に伸びる、サイズが最大で
|
||||
このオプションは、スタックの先頭を開始点とし下方に伸びる、サイズが最大で
|
||||
.Fa len
|
||||
バイトまで伸びるメモリ領域を作成します。
|
||||
スタックの先頭は、呼び出しから返された開始アドレスに
|
||||
.Fa len
|
||||
バイトを加えたものになります。最も伸びた場合のスタックの下端は、
|
||||
バイトを加えたものになります。
|
||||
最も伸びた場合のスタックの下端は、
|
||||
呼び出しによって返される開始アドレスになります。
|
||||
.El
|
||||
.Pp
|
||||
.Xr close 2
|
||||
関数はページをアンマップしません。詳細については
|
||||
関数はページをアンマップしません。
|
||||
詳細については
|
||||
.Xr munmap 2
|
||||
を参照してください。
|
||||
.Pp
|
||||
現在の設計ではプロセスはスワップ空間の位置を指定できません。
|
||||
将来は、追加のマッピングタイプ
|
||||
.Dv MAP_SWAP
|
||||
を定義するかもしれません。この場合、ファイル記述子引数には
|
||||
スワップを行なうべきファイルまたはデバイスを指定します。
|
||||
を定義するかもしれません。
|
||||
この場合、ファイル記述子引数には
|
||||
スワップを行うべきファイルまたはデバイスを指定します。
|
||||
.Sh 戻り値
|
||||
正常に完了すると、
|
||||
.Fn mmap
|
||||
は、マップされた領域を指すポインタを返します。そうでない場合は
|
||||
は、マップされた領域を指すポインタを返します。
|
||||
そうでない場合は
|
||||
値
|
||||
.Dv MAP_FAILED
|
||||
が返され、エラーを示すために
|
||||
|
|
@ -250,7 +251,7 @@ KB/t (ž
|
|||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn mmap
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EACCES
|
||||
フラグ
|
||||
|
|
@ -307,8 +308,7 @@ KB/t (ž
|
|||
が指定されて利用できるメモリが不充分でした。
|
||||
sysctl 値
|
||||
.Va vm.nax_proc_mmap
|
||||
で指定された
|
||||
プロセス毎の mmap 限界に達しました。
|
||||
で指定されたプロセス毎の mmap 限界に達しました。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr madvise 2 ,
|
||||
|
|
@ -323,8 +323,9 @@ sysctl
|
|||
.Xr make.conf 5
|
||||
.Sh バグ
|
||||
.Fa len
|
||||
は 2GB に限定されます。2GB をわずかに上回るマッピングは機能しませんが、
|
||||
2GB, 4GB, 6GB, および 8GB よりわずかに少ないファイルサイズについて
|
||||
は 2GB に限定されます。
|
||||
2GB をわずかに上回るマッピングは機能しませんが、
|
||||
2GB, 4GB, 6GB および 8GB よりわずかに少ないファイルサイズについて
|
||||
(ファイルサイズ % 2GB) のサイズのウィンドウをマップできます。
|
||||
.Pp
|
||||
制約は多彩な理由から生じています。
|
||||
|
|
@ -336,10 +337,10 @@ sysctl
|
|||
.Fx
|
||||
は 32 ビットのページインデックスを使用しており、これによって
|
||||
.Fx
|
||||
では最高で 8TB までのファイルサイズを利用できます。実際には
|
||||
さらに制約が課されて使用可能サイズは 1TB までですが、これは、
|
||||
ファイルシステムコード内のバグによるものです
|
||||
(ブロック番号計算を行なっているときの桁落ち)。
|
||||
では最高で 8TB までのファイルサイズを利用できます。
|
||||
実際にはさらに制約が課されて使用可能サイズは 1TB までですが、
|
||||
これは、ファイルシステムコード内のバグによるものです
|
||||
(ブロック番号計算を行っているときの桁落ち)。
|
||||
.Pp
|
||||
2GB 制限のもうひとつの理由は、ファイルシステムメタデータが負のオフセットに
|
||||
存在できるということです。
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@
|
|||
.Fn modfind
|
||||
は処理を失敗すると、
|
||||
.Va errno
|
||||
を以下のように設定します。
|
||||
を以下のように設定します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
この操作に必要なデータがカーネル空間から読取れませんでした。
|
||||
この操作に必要なデータがカーネル空間から読み取れませんでした。
|
||||
.It Bq Er ENOENT
|
||||
指定されたファイルはカーネルにロードされていません。
|
||||
.El
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
のみです。
|
||||
これは
|
||||
.Va modid
|
||||
が、存在しない (読込まれていない) カーネルモジュールを指していることを
|
||||
が、存在しない (読み取られていない) カーネルモジュールを指していることを
|
||||
示します。
|
||||
.Sh 関連項目
|
||||
.Xr kldfind 2 ,
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ typedef union modspecific {
|
|||
で参照されているモジュールの数。
|
||||
.It id
|
||||
.Fa modid
|
||||
で指定されているモジュールのid。
|
||||
で指定されているモジュールの id。
|
||||
.It data
|
||||
モジュール特有のデータ。
|
||||
.El
|
||||
|
|
@ -98,7 +98,7 @@ typedef union modspecific {
|
|||
適切なバージョンを
|
||||
.Fa version
|
||||
フィールドで指定しているにも関わらずこのエラーが起こるときは、
|
||||
OS全体か、カーネルまたはプログラム自身を作り直す必要があるかもしれません。
|
||||
OS 全体か、カーネルまたはプログラム自身を作り直す必要があるかもしれません。
|
||||
.It Bq Er EFAULT
|
||||
.Fn copyout
|
||||
の中で、ひとつまたは複数あるいはすべてのフィールドを
|
||||
|
|
|
|||
|
|
@ -53,18 +53,21 @@
|
|||
.Fn mount
|
||||
関数は、ファイルシステムオブジェクトをシステムファイルツリーのマウントポイント
|
||||
.Ar dir
|
||||
に付けます。引数
|
||||
に付けます。
|
||||
引数
|
||||
.Ar data
|
||||
はマウントされるファイルシステムオブジェクトを記述します。引数
|
||||
はマウントされるファイルシステムオブジェクトを記述します。
|
||||
引数
|
||||
.Ar type
|
||||
は
|
||||
.Ar data
|
||||
をどのように解釈するかをカーネルに通知します (後述の
|
||||
.Ar type
|
||||
を参照)。ファイルシステムの内容は、
|
||||
新しいマウントポイント
|
||||
を参照)。
|
||||
ファイルシステムの内容は、新しいマウントポイント
|
||||
.Ar dir
|
||||
を通して利用できるようになります。マウントが成功すると
|
||||
を通して利用できるようになります。
|
||||
マウントが成功すると
|
||||
.Ar dir
|
||||
にあるすべてのファイルが覆い隠された状態になり、
|
||||
ファイルシステムがマウント解除されるまで利用できなくなります。
|
||||
|
|
@ -76,8 +79,8 @@
|
|||
.Bl -tag -width MNT_SYNCHRONOUS
|
||||
.It Dv MNT_RDONLY
|
||||
ファイルシステムを読取り専用として取り扱います。
|
||||
スーパユーザでさえこれに書込むことはできません。このオプションなしに
|
||||
MNT_UPDATE を指定すると、
|
||||
スーパユーザでさえこれに書き込むことはできません。
|
||||
このオプションなしに MNT_UPDATE を指定すると、
|
||||
読取り専用ファイルシステムが読取り / 書込みにアップグレードされます。
|
||||
.It Dv MNT_NOEXEC
|
||||
そのファイルシステムからファイルを実行できないようにします。
|
||||
|
|
@ -92,12 +95,13 @@ MNT_UPDATE
|
|||
SUID ビットが設定されたディレクトリは、新しいファイルの所有者を
|
||||
ディレクトリと同じに設定します。
|
||||
.It Dv MNT_SYNCHRONOUS
|
||||
ファイルシステムへの入出力はすべて同期的に行なわれます。
|
||||
ファイルシステムへの入出力はすべて同期的に行われます。
|
||||
.It Dv MNT_ASYNC
|
||||
ファイルシステムへの入出力はすべて非同期的に行なわれます。
|
||||
ファイルシステムへの入出力はすべて非同期的に行われます。
|
||||
.It Dv MNT_FORCE
|
||||
ファイルシステムがクリーンでないように見えても、読み書き可でマウントを
|
||||
強行します。危険です。
|
||||
強行します。
|
||||
危険です。
|
||||
.It Dv MNT_NOCLUSTERR
|
||||
クラスタ読取りを無効にします。
|
||||
.It Dv MNT_NOCLUSTERW
|
||||
|
|
@ -107,10 +111,11 @@ SUID
|
|||
フラグ
|
||||
.Dv MNT_UPDATE
|
||||
は、マウントコマンドがすでにマウントされたファイルシステムに
|
||||
適用されていることを示します。これによって、ファイルシステムを
|
||||
マウント解除および再マウントする必要なしに、マウントフラグを
|
||||
変更できます。ファイルシステムによっては、すべてのフラグの変更を
|
||||
許容しない場合もあります。たとえば多くのファイルシステムが、
|
||||
適用されていることを示します。
|
||||
これによって、ファイルシステムをマウント解除および再マウントする必要なしに、
|
||||
マウントフラグを変更できます。
|
||||
ファイルシステムによっては、すべてのフラグの変更を許容しない場合もあります。
|
||||
たとえば多くのファイルシステムが、
|
||||
読み書き可から読取り専用への変更を許容しません。
|
||||
.Pp
|
||||
vfs サブシステムは、フラグ
|
||||
|
|
@ -119,8 +124,8 @@ vfs
|
|||
関係するデータ構造体を更新します。
|
||||
.Pp
|
||||
.Fa type
|
||||
引数でファイルシステムを指定します。システム上で既知なファイルシステムの
|
||||
タイプは
|
||||
引数でファイルシステムを指定します。
|
||||
システム上で既知なファイルシステムのタイプは
|
||||
.Xr lsvfs 1
|
||||
で得ることができます。
|
||||
.Pp
|
||||
|
|
@ -131,7 +136,8 @@ vfs
|
|||
慣習によりファイルシステムのマニュアルページは、
|
||||
.Xr lsvfs 1
|
||||
によって返されたファイルシステム名に ``mount_'' の接頭辞を付けて
|
||||
命名されます。それゆえ、
|
||||
命名されます。
|
||||
それゆえ、
|
||||
.Nm NFS
|
||||
ファイルシステムは
|
||||
.Xr mount_nfs 8
|
||||
|
|
@ -165,7 +171,7 @@ vfs
|
|||
.Rv -std
|
||||
.Sh エラー
|
||||
.Fn mount
|
||||
関数は、次のうちの 1 つでも起きたときには処理を失敗します。
|
||||
関数は、次のうちの 1 つでも起きたときには処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出し側がスーパユーザではありません。
|
||||
|
|
@ -215,10 +221,10 @@ ufs_args
|
|||
ファイルシステムのスーパブロックに
|
||||
不都合なマジック番号または範囲外のブロックサイズがありました。
|
||||
.It Bq Er ENOMEM
|
||||
ファイルシステムについてのシリンダーグループ情報を読取るのに十分な
|
||||
ファイルシステムについてのシリンダグループ情報を読み取るのに十分な
|
||||
メモリがありませんでした。
|
||||
.It Bq Er EIO
|
||||
スーパブロックまたはシリンダーグループの情報を読取る間に
|
||||
スーパブロックまたはシリンダグループの情報を読み取る間に
|
||||
入出力エラーが発生しました。
|
||||
.It Bq Er EFAULT
|
||||
.Ar fspec
|
||||
|
|
@ -227,7 +233,7 @@ ufs_args
|
|||
.Pp
|
||||
次のエラーは
|
||||
.Em nfs
|
||||
ファイルシステムマウントについて起きる可能性があります。
|
||||
ファイルシステムマウントについて起きる可能性があります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ETIMEDOUT
|
||||
.Em nfs
|
||||
|
|
@ -238,7 +244,7 @@ nfs_args
|
|||
.El
|
||||
.Pp
|
||||
.Fn unmount
|
||||
関数は、次のエラーの 1 つでも起きたときには処理を失敗します。
|
||||
関数は、次のエラーの 1 つでも起きたときには処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EPERM
|
||||
呼び出し側がスーパユーザではありません。
|
||||
|
|
@ -254,7 +260,7 @@ nfs_args
|
|||
.It Bq Er EBUSY
|
||||
プロセスがファイルシステム上にあるファイルへの参照を保持しています。
|
||||
.It Bq Er EIO
|
||||
キャッシュされたファイルシステム情報を書込みしている間に
|
||||
キャッシュされたファイルシステム情報を書き込んでいる間に
|
||||
入出力エラーが起きました。
|
||||
.It Bq Er EFAULT
|
||||
.Fa dir
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@
|
|||
.Fn mprotect
|
||||
システムコールは指定のページが保護属性
|
||||
.Fa prot
|
||||
を持つように変更します。すべての場合において
|
||||
ページ単位での保護属性を保証するわけではありません。
|
||||
を持つように変更します。
|
||||
すべての場合においてページ単位での保護属性を保証するわけではありません。
|
||||
保護属性変更の細かさはリージョン全体と同じ大きさかもしれません。
|
||||
.Sh 戻り値
|
||||
.Rv -std mprotect
|
||||
.Sh エラー
|
||||
.Fn mprotect
|
||||
関数は次の場合に処理を失敗します。
|
||||
関数は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa addr
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
.Fa len-1
|
||||
の範囲を含むページだけが調べられます。
|
||||
.Fa flags
|
||||
引数は次のように指定できます。
|
||||
引数は次のように指定できます:
|
||||
.Bd -literal
|
||||
MS_ASYNC ただちに戻ります
|
||||
MS_SYNC 同期書込みを実行します
|
||||
|
|
@ -70,7 +70,7 @@ MS_INVALIDATE
|
|||
.Rv -std msync
|
||||
.Sh エラー
|
||||
.Fn msync
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa addr
|
||||
|
|
@ -83,7 +83,7 @@ MS_INVALIDATE
|
|||
に MS_ASYNC と MS_INVALIDATE の両方が指定されました。
|
||||
これらのフラグは同時に指定することはできません。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムに書込む間に入出力エラーが発生しました。
|
||||
ファイルシステムに書き込む間に入出力エラーが発生しました。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
.Xr madvise 2 ,
|
||||
|
|
|
|||
|
|
@ -54,14 +54,13 @@
|
|||
.Rv -std munmap
|
||||
.Sh エラー
|
||||
.Fn munmap
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa addr
|
||||
パラメータがページ境界に整列していなかったか、
|
||||
.Fa len
|
||||
パラメータが負であったか、
|
||||
またはアンマップする領域の一部が
|
||||
パラメータが負であったか、またはアンマップする領域の一部が
|
||||
プロセスにとって有効な範囲外にあります。
|
||||
.El
|
||||
.Sh 関連項目
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@
|
|||
.Fn nanosleep "const struct timespec *rqtp" "struct timespec *rmtp"
|
||||
.Sh 解説
|
||||
.Fn nanosleep
|
||||
によってプロセスは指定の時間だけ休眠状態になります。シグナルによる
|
||||
割り込み時の
|
||||
によってプロセスは指定の時間だけ休眠状態になります。
|
||||
シグナルによる割り込み時の
|
||||
.Dv SA_RESTART
|
||||
値に無関係に、マスクされていないシグナルがあると
|
||||
プロセスの休眠状態は早めに終了します。
|
||||
|
|
@ -98,4 +98,4 @@ timespec
|
|||
.Fn nanosleep
|
||||
関数は
|
||||
.St -p1003.1b-93
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -146,13 +146,10 @@ ncd_authlen
|
|||
デーモンとしてカーネルに入ります。
|
||||
.Bd -literal
|
||||
struct nfsd_srvargs {
|
||||
struct nfsd *nsd_nfsd; /*
|
||||
* カーネル内の nfsd struct を
|
||||
* 指すポインタ
|
||||
*/
|
||||
struct nfsd *nsd_nfsd; /* カーネル内の nfsd 構造体へのポインタ */
|
||||
uid_t nsd_uid; /* cred にマップされる実効 uid*/
|
||||
u_int32t nsd_haddr; /* クライアントの IP アドレス */
|
||||
struct ucred nsd_cr; /* Cred. uid のマップ宛先 */
|
||||
struct ucred nsd_cr; /* cred。uid のマップ宛先 */
|
||||
int nsd_authlen; /* 認証文字列の長さ (戻り) */
|
||||
u_char *nsd_authstr; /* 認証文字列 (戻り) */
|
||||
int nsd_verflen; /* および検証機能 */
|
||||
|
|
@ -191,7 +188,8 @@ Kerberos
|
|||
を呼び出し、
|
||||
nsd_cr 内の証書のマッピングをカーネルに渡し、
|
||||
そのクライアント用のサーバソケット上でマップが
|
||||
キャッシュされるようにします。認証が失敗した場合、
|
||||
キャッシュされるようにします。
|
||||
認証が失敗した場合、
|
||||
.Xr nfsd 8
|
||||
はフラグ
|
||||
.Dv NFSSVC_NFSD
|
||||
|
|
|
|||
|
|
@ -49,11 +49,9 @@
|
|||
.Fa path
|
||||
によって指定されるファイルを、引数
|
||||
.Fa flags
|
||||
によって指定されたように読取りまたは書込み
|
||||
(またはその両方) 用にオープンし、
|
||||
によって指定されたように読取りまたは書込み (またはその両方) 用にオープンし、
|
||||
そのファイル記述子を呼び出し元プロセスに返します。
|
||||
ファイルが存在しない場合にはファイルを
|
||||
作成するように、
|
||||
ファイルが存在しない場合にはファイルを作成するように、
|
||||
.Fa flags
|
||||
引数で指示できます
|
||||
.Dv ( O_CREAT
|
||||
|
|
@ -95,16 +93,14 @@ O_NOFOLLOW
|
|||
を設定してファイルをオープンすると、
|
||||
ファイルへの書込みはすべてファイルの末尾に追加されます。
|
||||
.Dv O_TRUNC
|
||||
が指定されていてファイルが存在する場合、ファイルは長さ 0 に
|
||||
切り捨てられます。
|
||||
が指定されていてファイルが存在する場合、ファイルは長さ 0 に切り捨てられます。
|
||||
.Dv O_EXCL
|
||||
が
|
||||
.Dv O_CREAT
|
||||
とともに設定されていてファイルが既に存在する場合、
|
||||
.Fn open
|
||||
はエラーを返します。これを使用して、
|
||||
簡単な排他的アクセスロッキングメカニズムを
|
||||
実現できます。
|
||||
はエラーを返します。
|
||||
これを使用して、簡単な排他的アクセスロッキングメカニズムを実現できます。
|
||||
.Dv O_EXCL
|
||||
が設定されていてパス名の最後の構成要素がシンボリックリンクの場合、
|
||||
たとえシンボリックリンクが存在しない名前を指していたとしても
|
||||
|
|
@ -120,11 +116,10 @@ O_NOFOLLOW
|
|||
記述子は、その後の操作のために非ブロッキングモードのままにされます。
|
||||
.Pp
|
||||
.Dv O_FSYNC
|
||||
がマスクに使用された場合、
|
||||
すべての書き込みは直ちにディスクに書き込まれ、
|
||||
がマスクに使用された場合、すべての書込みは直ちにディスクに書き込まれ、
|
||||
カーネルは書き込まれたデータをキャッシュせず、
|
||||
書き込むべきすべてのデータが完了するまでは
|
||||
この記述子に対するすべての書き込みは戻りません。
|
||||
この記述子に対するすべての書込みは戻りません。
|
||||
.Pp
|
||||
.Dv O_NOFOLLOW
|
||||
がマスクに使用された場合で
|
||||
|
|
@ -156,7 +151,8 @@ O_NOFOLLOW
|
|||
正常に完了すると、
|
||||
.Fn open
|
||||
は、ファイル記述子を示す負でない整数を返します。
|
||||
処理に失敗すると -1 を返します。ファイル内の現在の位置をマークする
|
||||
処理に失敗すると -1 を返します。
|
||||
ファイル内の現在の位置をマークする
|
||||
ファイルポインタはファイルの先頭に設定されます。
|
||||
.Pp
|
||||
新しいファイルが作成される場合、そのグループは
|
||||
|
|
@ -182,7 +178,7 @@ O_NOFOLLOW
|
|||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
指定のファイルは次の場合を除いてオープンされます。
|
||||
指定のファイルは次の場合を除いてオープンされます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -213,17 +209,15 @@ O_NOFOLLOW
|
|||
指定されたファイルは読取り専用ファイルシステム上にあり、
|
||||
そのファイルを修正しようとしています。
|
||||
.It Bq Er EMFILE
|
||||
プロセスは、すでにオープンできるファイル記述子に関する
|
||||
制限に達しています。
|
||||
プロセスは、すでにオープンできるファイル記述子に関する制限に達しています。
|
||||
.It Bq Er ENFILE
|
||||
システムファイルテーブルが満杯です。
|
||||
.It Bq Er EMLINK
|
||||
.Dv O_NOFOLLOW
|
||||
が指定され、対象がシンボリックリンクです。
|
||||
.It Bq Er ENXIO
|
||||
指定のファイルはキャラクタ型特殊ファイルまたはブロック型特殊
|
||||
ファイルであり、この特殊ファイルに結び付けられたデバイスは
|
||||
存在していません。
|
||||
指定のファイルはキャラクタ型特殊ファイルまたはブロック型特殊ファイルであり、
|
||||
この特殊ファイルに結び付けられたデバイスは存在していません。
|
||||
.It Bq Er ENXIO
|
||||
指定されたファイルは FIFO パイプで、どのプロセスからも
|
||||
読取り用にオープンされていないにも関らず、
|
||||
|
|
@ -266,7 +260,7 @@ O_NOFOLLOW
|
|||
.It Bq Er EIO
|
||||
ディレクトリエントリを作成中、または
|
||||
.Dv O_CREAT
|
||||
用の inode を割当て中に入出力エラーが発生しました。
|
||||
用の inode を割り当て中に入出力エラーが発生しました。
|
||||
.It Bq Er ETXTBSY
|
||||
ファイルは純粋な手続き (共有テキスト) ファイルで、
|
||||
.Fn open
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@
|
|||
.Li <unistd.h>
|
||||
にあります。
|
||||
.Pp
|
||||
利用可能な値は次のとおりです。
|
||||
利用可能な値は次のとおりです:
|
||||
.Pp
|
||||
.Bl -tag -width 6n
|
||||
.Pp
|
||||
|
|
@ -85,11 +85,11 @@
|
|||
.It Li _PC_PATH_MAX
|
||||
パス名の最大バイト数。
|
||||
.It Li _PC_PIPE_BUF
|
||||
パイプに自動的に書込まれる最大バイト数。
|
||||
パイプに自動的に書き込まれる最大バイト数。
|
||||
.It Li _PC_CHOWN_RESTRICTED
|
||||
.Xr chown 2
|
||||
システムコールを実行するのに、適切な特権が必要な場合は 1 を
|
||||
返し、そうでない場合は 0 を返します。
|
||||
システムコールを実行するのに、適切な特権が必要な場合は 1 を返し、
|
||||
そうでない場合は 0 を返します。
|
||||
.It Li _PC_NO_TRUNC
|
||||
KERN_NAME_MAX より長いファイル名が切り捨てられる場合は 1 を返します。
|
||||
.It Li _PC_VDISABLE
|
||||
|
|
@ -122,7 +122,7 @@ KERN_NAME_MAX
|
|||
.It Li _PC_SYMLINK_MAX
|
||||
シンボリックリンクに使われる最大バイト数。
|
||||
.It Li _PC_ACL_EXTENDED
|
||||
指定されたファイルに対してアクセスコントロールリスト (ACL) が
|
||||
指定されたファイルに対してアクセス制御リスト (ACL) が
|
||||
設定できる場合は 1 を返し、そうでなければ 0 を返します。
|
||||
.It Li _PC_ACL_PATH_MAX
|
||||
ACL エントリのファイル毎の最大数。
|
||||
|
|
@ -143,8 +143,7 @@ ACL
|
|||
の呼び出しが正常に完了しない場合は -1 が返され、
|
||||
.Va errno
|
||||
が適切な値に設定されます。
|
||||
変数に結び付けられた機能がシステム内に限界を持たないとき、
|
||||
-1 が返され、
|
||||
変数に結び付けられた機能がシステム内に限界を持たないとき、-1 が返され、
|
||||
.Va errno
|
||||
は修正されません。
|
||||
それ以外の場合、現在の変数値が返されます。
|
||||
|
|
@ -165,7 +164,7 @@ ACL
|
|||
.El
|
||||
.Pp
|
||||
.Fn pathconf
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -184,7 +183,7 @@ ACL
|
|||
.Pp
|
||||
.Bl -tag -width Er
|
||||
.Fn fpathconf
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.It Bq Er EBADF
|
||||
.Fa fd
|
||||
は有効なオープンファイル記述子ではありません。
|
||||
|
|
|
|||
|
|
@ -56,13 +56,14 @@
|
|||
.Em 読取り側
|
||||
として使用され、2 番めの記述子が
|
||||
.Em 書込み側
|
||||
として使用されます。ですので、
|
||||
として使用されます。
|
||||
ですので、
|
||||
.Fa fildes[1]
|
||||
に書込まれたデータが
|
||||
に書き込まれたデータが
|
||||
.Fa fildes[0]
|
||||
に現れます (すなわち、
|
||||
.Fa fildes[0]
|
||||
から読取れます)。
|
||||
から読み取れます)。
|
||||
これを使えば 1 つのプログラムの出力を別のプログラムに送信できます。
|
||||
送信側の標準出力をパイプの書込み側としてセットアップし、
|
||||
受信側の標準入力をパイプの読取り側としてセットアップしてください。
|
||||
|
|
@ -70,13 +71,14 @@
|
|||
.Pp
|
||||
一端が閉じているパイプは
|
||||
.Em widowed
|
||||
(相手を失った) と見なされます。このようなパイプに書込みをすると、
|
||||
書込みプロセスは
|
||||
(相手を失った) と見なされます。
|
||||
このようなパイプに書込みをすると、書込みプロセスは
|
||||
.Dv SIGPIPE
|
||||
シグナルを受信します。読取り側にファイルの終了を伝える方法は、
|
||||
シグナルを受信します。
|
||||
読取り側にファイルの終了を伝える方法は、
|
||||
書込み側のパイプをクローズするしかありません。
|
||||
読取り側がバッファに入っているデータを使い切った後、相手を失ったパイプを
|
||||
読取ると 0 カウントが返されます。
|
||||
読み取ると 0 カウントが返されます。
|
||||
.Pp
|
||||
このパイプの実装における双方向という性質は、
|
||||
古いシステムと互換性がありません。
|
||||
|
|
|
|||
|
|
@ -48,8 +48,7 @@
|
|||
.Fa fds
|
||||
引数は
|
||||
.Aq Pa poll.h
|
||||
で定義された pollfd 配列を指す
|
||||
ポインタ (後述) です。
|
||||
で定義された pollfd 配列を指すポインタ (後述) です。
|
||||
.Fa nfds
|
||||
引数は
|
||||
.Fa fds
|
||||
|
|
@ -66,7 +65,8 @@ struct pollfd {
|
|||
構造体のフィールドは次のとおりです:
|
||||
.Bl -tag -width XXXrevents
|
||||
.It fd
|
||||
調査するファイル記述子。もし fd が -1 なら
|
||||
調査するファイル記述子。
|
||||
もし fd が -1 なら
|
||||
.Fa revents
|
||||
はクリアされ (0 に設定)、pollfd はチェックされません。
|
||||
.It events
|
||||
|
|
@ -78,7 +78,7 @@ struct pollfd {
|
|||
.Fa events
|
||||
と
|
||||
.Fa revents
|
||||
内のビットマスクには次のビットがあります。
|
||||
内のビットマスクには次のビットがあります:
|
||||
.Bl -tag -width XXXPOLLWRNORM
|
||||
.It POLLIN
|
||||
高優先データ以外のデータはブロックせずに読取りできます。
|
||||
|
|
@ -90,36 +90,35 @@ struct pollfd {
|
|||
高優先データはブロックせずに読取りできます。
|
||||
.It POLLOUT
|
||||
.It POLLWRNORM
|
||||
通常データはブロックせずに書込みできます。
|
||||
通常データはブロックせずに書き込めます。
|
||||
.It POLLWRBAND
|
||||
優先順位が 0 でないデータはブロックせずに書込みできます。
|
||||
優先順位が 0 でないデータはブロックせずに書き込めます。
|
||||
.It POLLERR
|
||||
デバイスまたはソケット上に例外状態が起きました。このフラグは、
|
||||
デバイスまたはソケット上に例外状態が起きました。
|
||||
このフラグは、
|
||||
.Fa events
|
||||
ビットマスクに存在していなくても必ずチェックされます。
|
||||
.It POLLHUP
|
||||
デバイスまたはソケットが切断されています。このフラグは、
|
||||
デバイスまたはソケットが切断されています。
|
||||
このフラグは、
|
||||
.Fa events
|
||||
ビットマスク内に
|
||||
存在しなくても必ずチェックされます。
|
||||
ビットマスク内に存在しなくても必ずチェックされます。
|
||||
POLLHUP
|
||||
と
|
||||
POLLOUT
|
||||
は、
|
||||
.Fa revents
|
||||
ビットマスク内に同時に存在する
|
||||
ことが決してないことに注意してください。
|
||||
ビットマスク内に同時に存在することが決してないことに注意してください。
|
||||
.It POLLNVAL
|
||||
ファイル記述子がオープンされていません。このフラグは、
|
||||
ファイル記述子がオープンされていません。
|
||||
このフラグは、
|
||||
.Fa events
|
||||
ビットマスク内に存在しな
|
||||
くても必ずチェックされます。
|
||||
ビットマスク内に存在しなくても必ずチェックされます。
|
||||
.El
|
||||
.Pp
|
||||
.Fa timeout
|
||||
が 0 でも INFTIM (-1) でもない場合、
|
||||
この値はいずれかのファイル記述子が準備完了になるのを
|
||||
待機する最大インターバル (ミリ秒単位) です。
|
||||
が 0 でも INFTIM (-1) でもない場合、この値はいずれかのファイル記述子が
|
||||
準備完了になるのを待機する最大間隔 (ミリ秒単位) です。
|
||||
.Fa timeout
|
||||
が INFTIM (-1) の場合、
|
||||
.Fn poll
|
||||
|
|
@ -134,7 +133,8 @@ POLLOUT
|
|||
エラーが起きた場合は -1 を返します。
|
||||
時間切れになると
|
||||
.Fn poll
|
||||
は 0 を返します。割り込み呼び出しによるエラーも含めて
|
||||
は 0 を返します。
|
||||
割り込み呼び出しによるエラーも含めて
|
||||
.Fn poll
|
||||
がエラーで戻った場合、
|
||||
.Fa fds
|
||||
|
|
@ -142,10 +142,8 @@ POLLOUT
|
|||
.Sh 互換性
|
||||
この実装は、ファイル記述子によって
|
||||
.Fn poll
|
||||
がエラーにならないという点で、
|
||||
過去のものと異なっています。
|
||||
過去の実装においてエラーになるであろう場合
|
||||
(たとえば
|
||||
がエラーにならないという点で、過去のものと異なっています。
|
||||
過去の実装においてエラーになるであろう場合 (たとえば
|
||||
.Xr revoke 2
|
||||
された記述子を検査しようとした場合)、この実装は代わりに
|
||||
.Fa events
|
||||
|
|
@ -156,7 +154,7 @@ POLLOUT
|
|||
この動作はより便利であると考えられています。
|
||||
.Sh エラー
|
||||
.Fn poll
|
||||
は次のエラーで戻ります。
|
||||
は次のエラーで戻ります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
.Fa fds
|
||||
|
|
|
|||
|
|
@ -53,7 +53,8 @@
|
|||
関数は、現在のプロセスのカウンタプロファイルを有効化または無効化します。
|
||||
プロファイルが有効な場合、プロファイルクロックチックごとに、カーネルは
|
||||
.Fa samples
|
||||
バッファ内の適切なカウントを更新します。プロファイルクロックの周波数は、
|
||||
バッファ内の適切なカウントを更新します。
|
||||
プロファイルクロックの周波数は、
|
||||
プロファイル出力ファイル内のヘッダ内に記録されます。
|
||||
.Pp
|
||||
バッファ
|
||||
|
|
@ -61,8 +62,7 @@
|
|||
には
|
||||
.Fa size
|
||||
バイトが含まれており、一連の 16 ビットの塊に分割されます。
|
||||
各塊は、プロファイルが有効時にプロファイルクロックチックが
|
||||
発生したときに、
|
||||
各塊は、プロファイルが有効時にプロファイルクロックチックが発生したときに、
|
||||
プログラムカウンタがプロセス内の特別なアドレス範囲内にあった回数を
|
||||
カウントします。
|
||||
指定のプログラムカウンタアドレスについて、対応する塊の数が
|
||||
|
|
@ -78,11 +78,10 @@
|
|||
パラメータの範囲は 1 から 65536 であり、
|
||||
塊の広がりを変更するのに使用できます。
|
||||
スケール 65536 は、各塊をアドレス範囲の 2 バイトに割り当てます。
|
||||
スケール 32768 は 4 バイト、
|
||||
16384 は 8 バイト、後は同様です。中間の値はおおよそ中間の範囲を与えます。
|
||||
スケール 32768 は 4 バイト、16384 は 8 バイト、後は同様です。
|
||||
中間の値はおおよそ中間の範囲を与えます。
|
||||
.Fa scale
|
||||
値が 0 の場合、
|
||||
プロファイルは無効になります。
|
||||
値が 0 の場合、プロファイルは無効になります。
|
||||
.Sh 戻り値
|
||||
.Rv -std profil
|
||||
.Sh 関連ファイル
|
||||
|
|
@ -93,7 +92,7 @@
|
|||
プロファイル出力ファイルの従来の名前
|
||||
.El
|
||||
.Sh エラー
|
||||
次のエラーが報告される可能性があります。
|
||||
次のエラーが報告される可能性があります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EFAULT
|
||||
バッファ
|
||||
|
|
|
|||
|
|
@ -18,19 +18,17 @@
|
|||
.Fn ptrace "int request" "pid_t pid" "caddr_t addr" "int data"
|
||||
.Sh 解説
|
||||
.Fn ptrace
|
||||
はトレースとデバッグの機能を提供します。これによって 1 つのプロセス
|
||||
はトレースとデバッグの機能を提供します。
|
||||
これによって 1 つのプロセス
|
||||
.\".Em tracing
|
||||
(トレース
|
||||
するプロセス) が
|
||||
他のプロセス
|
||||
(トレースするプロセス) が他のプロセス
|
||||
.\".Em traced
|
||||
(トレース
|
||||
されるプロセス) を制御できます。
|
||||
(トレースされるプロセス) を制御できます。
|
||||
ほとんどの場合、トレースされるプロセスは正常に実行されます。
|
||||
ただし、トレースされるプロセスはシグナル
|
||||
.Xr ( sigaction 2
|
||||
を参照)
|
||||
を受信すると停止します。トレースするプロセスは、
|
||||
を参照) を受信すると停止します。
|
||||
トレースするプロセスは、
|
||||
.Xr wait 2
|
||||
または
|
||||
.Dv SIGCHLD
|
||||
|
|
@ -52,14 +50,14 @@
|
|||
.Bl -tag -width 12n
|
||||
.It Dv PT_TRACE_ME
|
||||
この要求は、トレースされるプロセスが使用する唯一の要求です。
|
||||
この要求は、
|
||||
プロセスがその親によってトレースされることを宣言します。
|
||||
他の引数はすべて無視され
|
||||
ます (親プロセスが子プロセスをトレースしない場合は、
|
||||
この要求は、プロセスがその親によってトレースされることを宣言します。
|
||||
他の引数はすべて無視されます
|
||||
(親プロセスが子プロセスをトレースしない場合は、
|
||||
かなり混乱した結果になります。
|
||||
トレースされるプロセスが停止すると、このプロセスは、
|
||||
.Fn ptrace
|
||||
によってしか実行を継続できません)。プロセスがこの要求を使用し、
|
||||
によってしか実行を継続できません)。
|
||||
プロセスがこの要求を使用し、
|
||||
.Xr execve 2
|
||||
またはそれに組み込まれているルーチン
|
||||
(たとえば、
|
||||
|
|
@ -71,38 +69,40 @@ setuid
|
|||
.It Dv PT_READ_I , Dv PT_READ_D
|
||||
これらの要求は、トレースされるプロセスのアドレス空間から 1 つの
|
||||
.Vt int
|
||||
データを読み取ります。従来、
|
||||
データを読み取ります。
|
||||
従来、
|
||||
.Fn ptrace
|
||||
は命令とデータについて区別されたアドレス空間のある
|
||||
マシンを許容していました。これが 2 つの要求がある理由です。概念的には、
|
||||
マシンを許容していました。
|
||||
これが 2 つの要求がある理由です。
|
||||
概念的には、
|
||||
.Dv PT_READ_I
|
||||
が命令空間から読み取り、
|
||||
.Dv PT_READ_D
|
||||
がデータ空間から読み取ります。現在の
|
||||
がデータ空間から読み取ります。
|
||||
現在の
|
||||
.Fx
|
||||
システムでは、これらの 2 つの要求は完全に同一です。
|
||||
.Fa addr
|
||||
引数が、読み取りが行われる (トレースされるプロセスの仮想アドレス空間内の)
|
||||
引数が、読取りが行われる (トレースされるプロセスの仮想アドレス空間内の)
|
||||
アドレスを指定します。
|
||||
このアドレスはどのような境界調整制約も満たす必要はありません。
|
||||
読み取られた値は
|
||||
.Eo \&
|
||||
.Fn ptrace
|
||||
.Ec
|
||||
からの戻り値として
|
||||
返されます。
|
||||
からの戻り値として返されます。
|
||||
.It Dv PT_WRITE_I , Dv PT_WRITE_D
|
||||
これらの要求は
|
||||
.Dv PT_READ_I
|
||||
および
|
||||
.Dv PT_READ_D
|
||||
と同様ですが、読み取るのではなく
|
||||
書き込むところが異なります。
|
||||
と同様ですが、読み取るのではなく書き込むところが異なります。
|
||||
.Fa data
|
||||
引数で書き込まれる値を指定します。
|
||||
.It Dv PT_IO
|
||||
この要求によって、トレースされるプロセスのアドレス空間内にある
|
||||
任意量のデータの読み取りと書き込みが有効となります。
|
||||
任意量のデータの読取りと書込みが有効となります。
|
||||
.Fa addr
|
||||
引数は、以下のように定義される
|
||||
.Vt "struct ptrace_io_desc"
|
||||
|
|
@ -118,10 +118,10 @@ struct ptrace_io_desc {
|
|||
/*
|
||||
* piod_op で指定される操作
|
||||
*/
|
||||
#define PIOD_READ_D 1 /* データ空間からの読み取り */
|
||||
#define PIOD_WRITE_D 2 /* データ空間への書き込み */
|
||||
#define PIOD_READ_I 3 /* 命令空間からの読み取り */
|
||||
#define PIOD_WRITE_I 4 /* 命令空間への書き込み */
|
||||
#define PIOD_READ_D 1 /* データ空間からの読取り */
|
||||
#define PIOD_WRITE_D 2 /* データ空間への書込み */
|
||||
#define PIOD_READ_I 3 /* 命令空間からの読取り */
|
||||
#define PIOD_WRITE_I 4 /* 命令空間への書込み */
|
||||
.Ed
|
||||
.Pp
|
||||
.Fa data
|
||||
|
|
@ -156,22 +156,23 @@ struct ptrace_io_desc {
|
|||
.It Dv PT_ATTACH
|
||||
この要求は、他の無関係なプロセスの制御を取得し、
|
||||
そのトレースを開始します。
|
||||
トレースされるプロセスからの協力は必要としません。このケースでは、
|
||||
トレースされるプロセスからの協力は必要としません。
|
||||
このケースでは、
|
||||
.Fa pid
|
||||
にトレースされるプロセスのプロセス ID を指定し、
|
||||
他の 2 つの引数は無視されます。
|
||||
この要求では、ターゲットプロセスがトレースする
|
||||
プロセスと同じ実 UID を持つこと、
|
||||
それが setuid または setgid された実行可能モジュールでないこと
|
||||
が要求されます (トレースするプロセスが root として実行されている
|
||||
場合、これらの制約は適用されません)。
|
||||
それが setuid または setgid された実行可能モジュールでないことが
|
||||
要求されます (トレースするプロセスが root として実行されている場合、
|
||||
これらの制約は適用されません)。
|
||||
トレースするプロセスは、新たにトレースされるプロセスを停止させ、
|
||||
あたかも最初からずっとトレースしていたかのように制御できます。
|
||||
.It Dv PT_DETACH
|
||||
この要求は PT_CONTINUE と類似していますが、実行を継続する別の場所を
|
||||
指定できないこと、
|
||||
および要求が成功した後、トレースされていたプロセスはもはや
|
||||
トレースされず、通常どおり実行を継続することが異なります。
|
||||
指定できないこと、および要求が成功した後、
|
||||
トレースされていたプロセスはもはやトレースされず、
|
||||
通常どおり実行を継続することが異なります。
|
||||
.It Dv PT_GETREGS
|
||||
この要求は、トレースされるプロセスのマシンレジスタを、
|
||||
.Fa addr
|
||||
|
|
@ -220,8 +221,7 @@ struct ptrace_io_desc {
|
|||
.Vt "struct dbreg"
|
||||
.Dc
|
||||
.Pf ( Aq Pa machine/reg.h
|
||||
内に定義されています)
|
||||
に読み取ります。
|
||||
内に定義されています) に読み取ります。
|
||||
.It Dv PT_SETDBREGS
|
||||
この要求は
|
||||
.Dv PT_GETDBREGS
|
||||
|
|
@ -240,9 +240,7 @@ struct ptrace_io_desc {
|
|||
.Sh 戻り値
|
||||
いくつかの要求で
|
||||
.Fn ptrace
|
||||
はエラー以外の場合にも
|
||||
\-1
|
||||
を返します。
|
||||
はエラー以外の場合にも \-1 を返します。
|
||||
曖昧さをなくすためには、呼び出しの前に
|
||||
.Va errno
|
||||
を 0 に設定し、後でチェックします。
|
||||
|
|
|
|||
|
|
@ -67,8 +67,7 @@
|
|||
.Fa cmd
|
||||
の値を明確に表すために、
|
||||
.Ao Pa ufs/ufs/quota.h Ac
|
||||
で定義されている
|
||||
QCMD マクロを使用すべきです)。
|
||||
で定義されている QCMD マクロを使用すべきです)。
|
||||
オプションとして各コマンド固有のデータ構造体のアドレスを
|
||||
.Fa addr
|
||||
に指定できます。
|
||||
|
|
@ -86,7 +85,7 @@ QCMD
|
|||
をユーザ識別子として解釈する (USRQUOTA) と、
|
||||
グループ識別子として解釈する (GRPQUOTA) がサポートされています。
|
||||
.Dq ufs
|
||||
固有のコマンドは次のとおりです。
|
||||
固有のコマンドは次のとおりです:
|
||||
.Bl -tag -width Q_QUOTAOFFxx
|
||||
.It Dv Q_QUOTAON
|
||||
.Fa path
|
||||
|
|
@ -163,7 +162,7 @@ QCMD
|
|||
.Rv -std quotactl
|
||||
.Sh エラー
|
||||
.Fn quotactl
|
||||
呼び出しは次の場合に失敗します。
|
||||
呼び出しは次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EOPNOTSUPP
|
||||
カーネルが
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
.Nm read ,
|
||||
.Nm readv ,
|
||||
.Nm pread
|
||||
.Nd 入力を読取る
|
||||
.Nd 入力を読み取る
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -61,23 +61,22 @@
|
|||
.Fa buf
|
||||
が指すバッファへ
|
||||
.Fa nbytes
|
||||
のデータを読取ろうとします。
|
||||
のデータを読み取ろうとします。
|
||||
.Fn readv
|
||||
は同様の処理を実行しますが、配列
|
||||
.Fa iov
|
||||
: iov[0], iov[1], ..., iov[iovcnt\|\-\|1]
|
||||
のメンバで指定される
|
||||
.Fa iovcnt
|
||||
個のバッファに入力データを分散
|
||||
させます。
|
||||
個のバッファに入力データを分散させます。
|
||||
.Fn pread
|
||||
は同様の機能を実行しますが、ファイル内の指定の位置から読取った後、
|
||||
は同様の機能を実行しますが、ファイル内の指定の位置から読み取った後、
|
||||
ファイルポインタを変更しません。
|
||||
.Pp
|
||||
.Fn readv
|
||||
に対する
|
||||
.Fa iovec
|
||||
構造体は次のように定義されます。
|
||||
構造体は次のように定義されます:
|
||||
.Pp
|
||||
.Bd -literal -offset indent -compact
|
||||
struct iovec {
|
||||
|
|
@ -96,15 +95,13 @@ struct iovec {
|
|||
.Fn read
|
||||
は
|
||||
.Fa d
|
||||
に結び付けられたポインタが指定する位置から開始
|
||||
します
|
||||
に結び付けられたポインタが指定する位置から開始します
|
||||
.Pf ( Xr lseek 2
|
||||
を参照)。
|
||||
.Fn read
|
||||
からの戻り時に、ポインタは実際に読取られたバイト数
|
||||
だけ増加させられます。
|
||||
からの戻り時に、ポインタは実際に読み取られたバイト数だけ増加させられます。
|
||||
.Pp
|
||||
シークできないオブジェクトは必ず現在の位置から読取られます。
|
||||
シークできないオブジェクトは必ず現在の位置から読み取られます。
|
||||
そのようなオブジェクトに結び付けられたポインタの値は未定義です。
|
||||
.Pp
|
||||
処理が成功すると、
|
||||
|
|
@ -112,16 +109,15 @@ struct iovec {
|
|||
.Fn readv
|
||||
および
|
||||
.Fn pread
|
||||
は、実際に読取られバッファ内に配置されたバイト
|
||||
数を返します。記述子が通常ファイルを参照しており、
|
||||
は、実際に読み取られバッファ内に配置されたバイト数を返します。
|
||||
記述子が通常ファイルを参照しており、
|
||||
ファイルの終端までに十分な量のバイトがあれば、
|
||||
システムは要求されたバイト数を読取ることを保証しますが、
|
||||
システムは要求されたバイト数を読み取ることを保証しますが、
|
||||
他のケースではそうではありません。
|
||||
.Sh 戻り値
|
||||
正常に完了すると、実際に読取られたバイト数が返されます。
|
||||
ファイル終了 (EOF) が読取られると
|
||||
0 が返されます。そうでない場合は -1 が返され、
|
||||
エラーを示すためにグローバル変数
|
||||
正常に完了すると、実際に読み取られたバイト数が返されます。
|
||||
ファイル終了 (EOF) が読み取られると 0 が返されます。
|
||||
そうでない場合は -1 が返され、エラーを示すためにグローバル変数
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
|
|
@ -129,7 +125,7 @@ struct iovec {
|
|||
.Fn readv
|
||||
および
|
||||
.Fn pread
|
||||
は次の場合を除いて正常に完了します。
|
||||
は次の場合を除いて正常に完了します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
.Fa d
|
||||
|
|
@ -138,7 +134,7 @@ struct iovec {
|
|||
.Fa buf
|
||||
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムから読取っている間に入出力エラーが発生しました。
|
||||
ファイルシステムから読み取っている間に入出力エラーが発生しました。
|
||||
.It Bq Er EINTR
|
||||
データが到着する前に、シグナルの配送により低速デバイスからの読取りが
|
||||
割り込まれました。
|
||||
|
|
@ -152,7 +148,7 @@ struct iovec {
|
|||
.Pp
|
||||
さらに、
|
||||
.Fn readv
|
||||
は次のエラーのうちの 1 つを返すことがあります。
|
||||
は次のエラーのうちの 1 つを返すことがあります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
.Fa iovcnt
|
||||
|
|
@ -173,7 +169,7 @@ struct iovec {
|
|||
.El
|
||||
.Pp
|
||||
.Fn pread
|
||||
呼び出しも次のエラーを返すことがあります。
|
||||
呼び出しも次のエラーを返すことがあります:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
指定のファイルオフセットが有効ではありません。
|
||||
|
|
@ -192,13 +188,13 @@ struct iovec {
|
|||
.Fn read
|
||||
関数は
|
||||
.St -p1003.1-90
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Fn readv
|
||||
関数と
|
||||
.Fn pread
|
||||
関数は
|
||||
.St -xpg4.2
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
.Sh 歴史
|
||||
.Fn pread
|
||||
関数は
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
.Os
|
||||
.Sh 名称
|
||||
.Nm readlink
|
||||
.Nd シンボリックリンクの値を読取る
|
||||
.Nd シンボリックリンクの値を読み取る
|
||||
.Sh ライブラリ
|
||||
.Lb libc
|
||||
.Sh 書式
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
に設定されます。
|
||||
.Sh エラー
|
||||
.Fn readlink
|
||||
は次の場合に失敗します。
|
||||
は次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
.It Bq Er EINVAL
|
||||
指定のファイルがシンボリックリンクではありません。
|
||||
.It Bq Er EIO
|
||||
ファイルシステムから読取る間に入出力エラーが発生しました。
|
||||
ファイルシステムから読み取る間に入出力エラーが発生しました。
|
||||
.It Bq Er EFAULT
|
||||
.Fa buf
|
||||
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||
|
|
|
|||
|
|
@ -48,42 +48,47 @@
|
|||
.Fn reboot "int howto"
|
||||
.Sh 解説
|
||||
.Fn reboot
|
||||
はシステムをリブートします。スーパユーザだけが必要に応じてマシンを
|
||||
リブートできます。しかし、回復不可能なシステム障害の場合は、
|
||||
リブートは自動的に起動されます。
|
||||
はシステムをリブートします。
|
||||
スーパユーザだけが必要に応じてマシンをリブートできます。
|
||||
しかし、回復不可能なシステム障害の場合は、リブートは自動的に起動されます。
|
||||
.Pp
|
||||
.Fa howto
|
||||
はオプションのマスクです。システムコールインタフェースは
|
||||
インクルードファイル
|
||||
はオプションのマスクです。
|
||||
システムコールインタフェースはインクルードファイル
|
||||
.Aq Pa sys/reboot.h
|
||||
内に定義された次のオプションを受付け、
|
||||
新しいカーネルまたは新しいブートストラップと
|
||||
init プログラムに渡されるようにします。
|
||||
.Bl -tag -width RB_INITNAMEA
|
||||
.It Dv RB_AUTOBOOT
|
||||
デフォルト。システムが通常の方法でリブートするようにします。
|
||||
デフォルト。
|
||||
システムが通常の方法でリブートするようにします。
|
||||
.It Dv RB_ASKNAME
|
||||
ブートストラッププログラム自体によって解釈され、
|
||||
どのファイルをブートすべきかに
|
||||
ついて、コンソールにプロンプトを表示するようにします。
|
||||
どのファイルをブートすべきかについて、
|
||||
コンソールにプロンプトを表示するようにします。
|
||||
通常、システムはファイル
|
||||
.Dq Em xx Ns No (0,0)kernel
|
||||
からブートされます。ここで、
|
||||
からブートされます。
|
||||
ここで、
|
||||
.Em xx
|
||||
はファイル名を入力するようにプロンプトを出さない場合の、
|
||||
デフォルトのディスク名です。
|
||||
.It Dv RB_DFLTROOT
|
||||
コンパイル時に指定されたルートデバイスを使用します。通常、システムは、
|
||||
コンパイル時に指定されたルートデバイスを使用します。
|
||||
通常、システムは、
|
||||
可能であればブートされたデバイスをルートデバイスとして使用します
|
||||
(デフォルトの動作は、システムがどのドライブからロードされたかを判別する
|
||||
ブートストラッププログラムの能力に依存します。これはすべてのシステムで
|
||||
可能なわけではありません)。
|
||||
ブートストラッププログラムの能力に依存します。
|
||||
これはすべてのシステムで可能なわけではありません)。
|
||||
.It Dv RB_DUMP
|
||||
リブートの前にカーネルメモリをダンプします。詳細については、
|
||||
リブートの前にカーネルメモリをダンプします。
|
||||
詳細については、
|
||||
.Xr savecore 8
|
||||
を参照してください。
|
||||
.It Dv RB_HALT
|
||||
プロセッサは単に停止されます。リブートは起きません。
|
||||
プロセッサは単に停止されます。
|
||||
リブートは起きません。
|
||||
このオプションは注意して使用する必要があります。
|
||||
.It Dv RB_POWEROFF
|
||||
システム停止の後、シャットダウンコードは、可能であれば電源を切ります。
|
||||
|
|
@ -97,17 +102,17 @@ init
|
|||
このスイッチは現時点では無効です。
|
||||
.It Dv RB_KDB
|
||||
シンボルテーブルをロードし、システム内の組み込みデバッガを有効にします。
|
||||
カーネルがデバッグ用に構成されていない場合、このオプションは意味を持ち
|
||||
ません。これ以外のいくつかのオプションは、
|
||||
このオプションと組み合わせると通常と異なる意味を持つようになりますが、
|
||||
それらの機能を使用することは
|
||||
カーネルがデバッグ用に構成されていない場合、このオプションは意味を持ちません。
|
||||
これ以外のいくつかのオプションは、このオプションと組み合わせると
|
||||
通常と異なる意味を持つようになりますが、それらの機能を使用することは
|
||||
.Fn reboot
|
||||
システムコールでは不可能な場合があります。詳細については、
|
||||
システムコールでは不可能な場合があります。
|
||||
詳細については、
|
||||
.Xr ddb 4
|
||||
を参照してください。
|
||||
.It Dv RB_NOSYNC
|
||||
通常、プロセッサが停止されるかまたはリブートされる前に、ディスクへまだ
|
||||
書込まれていないデータがあればそれを書き込みます
|
||||
書き込まれていないデータがあればそれを書き込みます
|
||||
.Pf ( Xr sync 8
|
||||
を参照)。
|
||||
このオプションは、ファイルシステムへの変更が手作業で行われた場合や、
|
||||
|
|
@ -116,10 +121,10 @@ init
|
|||
初期段階で、ルートファイルシステムを読取り専用でマウントします。
|
||||
現在はこれがデフォルトであり、このオプションは無意味なものになっています。
|
||||
.It Dv RB_SINGLE
|
||||
通常のリブート処理ではまず自動的にディスクの一貫性チェックが行なわれ、
|
||||
通常のリブート処理ではまず自動的にディスクの一貫性チェックが行われ、
|
||||
次いでマルチユーザ環境へ移行するようになっています。
|
||||
.Dv RB_SINGLE
|
||||
は、これを行なわず、
|
||||
は、これを行わず、
|
||||
システムをコンソール上のシングルユーザシェルでブートします。
|
||||
.Dv RB_SINGLE
|
||||
は、実際にはブートし直されたシステムで
|
||||
|
|
@ -130,8 +135,7 @@ init
|
|||
オプションを指定しない場合 (すなわち、
|
||||
.Dv RB_AUTOBOOT
|
||||
が使用される場合)、システムは、プロセッサが所定の方法で選択した
|
||||
ユニット 0 のディスクの
|
||||
ルートファイルシステムにある
|
||||
ユニット 0 のディスクのルートファイルシステムにある
|
||||
.Dq kernel
|
||||
というファイルからリブートされます。
|
||||
この際、通常はディスクの一貫性チェックが自動的に実行されます
|
||||
|
|
|
|||
|
|
@ -67,8 +67,7 @@
|
|||
は「値 - 結果」パラメータであり、
|
||||
.Fa from
|
||||
に対応するバッファのサイズに初期化され、
|
||||
戻り時には保存されたアドレスの実際のサイズを示すように
|
||||
変更されます。
|
||||
戻り時には保存されたアドレスの実際のサイズを示すように変更されます。
|
||||
.Pp
|
||||
.Fn recv
|
||||
呼び出しは、通常
|
||||
|
|
@ -79,8 +78,8 @@
|
|||
.Fa from
|
||||
パラメータに nil を指定した
|
||||
.Fn recvfrom
|
||||
と同一です。これは冗長なので、将来のリリースでは
|
||||
サポートされない可能性があります。
|
||||
と同一です。
|
||||
これは冗長なので、将来のリリースではサポートされない可能性があります。
|
||||
.Pp
|
||||
これら 3 つのルーチンは正常に完了するとメッセージの長さを返します。
|
||||
メッセージが長すぎて指定のバッファに収まらない場合、
|
||||
|
|
@ -96,8 +95,10 @@
|
|||
.Va errno
|
||||
が
|
||||
.Er EAGAIN
|
||||
に設定されます。通常、受信呼び出しは要求された量を受信するまで待たずに、
|
||||
要求された量を上限として得られたデータを返します。この動作は、
|
||||
に設定されます。
|
||||
通常、受信呼び出しは要求された量を受信するまで待たずに、
|
||||
要求された量を上限として得られたデータを返します。
|
||||
この動作は、
|
||||
.Xr getsockopt 2
|
||||
で解説されているソケットレベルのオプション
|
||||
.Dv SO_RCVLOWAT
|
||||
|
|
@ -114,7 +115,7 @@ recv
|
|||
引数は、次の値の 1 つまたは複数の論理和
|
||||
.\".Em or Ap ing
|
||||
.Em ( or )
|
||||
から成ります。
|
||||
から成ります:
|
||||
.Bl -column MSG_WAITALL -offset indent
|
||||
.It Dv MSG_OOB Ta プロセス帯域外データ
|
||||
.It Dv MSG_PEEK Ta 着信メッセージの覗き見 (peek)
|
||||
|
|
@ -125,11 +126,11 @@ recv
|
|||
フラグは帯域外データの受信を要求し、
|
||||
通常のデータストリームからは受信しません。
|
||||
急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、
|
||||
このフラグはそのようなプロトコルでは使用できません。MSG_PEEK フラグは
|
||||
受信待ち行列の先頭からデータを除去することなく、そのデータを
|
||||
返します。したがって、後続の受信呼び出しは同じデータ
|
||||
を返します。MSG_WAITALL フラグは要求が完全に満たされるまで
|
||||
ブロックするように要求します。
|
||||
このフラグはそのようなプロトコルでは使用できません。
|
||||
MSG_PEEK フラグは受信待ち行列の先頭からデータを除去することなく、
|
||||
そのデータを返します。
|
||||
したがって、後続の受信呼び出しは同じデータを返します。
|
||||
MSG_WAITALL フラグは要求が完全に満たされるまでブロックするように要求します。
|
||||
しかし、シグナルが捕捉された場合、エラーまたは切断が発生した場合、
|
||||
または受信する次のデータが返されたタイプと異なる
|
||||
場合、呼び出しは要求されたより少ないデータを返す可能性があります。
|
||||
|
|
@ -137,15 +138,16 @@ recv
|
|||
.Fn recvmsg
|
||||
呼び出しは、直接に指定されるパラメータの数を最小にするために
|
||||
.Fa msghdr
|
||||
構造体を使用します。この構造体は
|
||||
構造体を使用します。
|
||||
この構造体は
|
||||
.Ao Pa sys/socket.h Ac
|
||||
で定義されているように、次の形式になっています。
|
||||
で定義されているように、次の形式になっています:
|
||||
.Pp
|
||||
.Bd -literal
|
||||
struct msghdr {
|
||||
caddr_t msg_name; /* アドレス(オプション) */
|
||||
u_int msg_namelen; /* アドレスのサイズ */
|
||||
struct iovec *msg_iov; /* スキャッタ/ギャザー配列 */
|
||||
struct iovec *msg_iov; /* スキャッタ / ギャザー配列 */
|
||||
u_int msg_iovlen; /* msg_iov の要素数 */
|
||||
caddr_t msg_control; /* 補助データ、後述 */
|
||||
u_int msg_controllen; /* 補助データのバッファ長 */
|
||||
|
|
@ -166,12 +168,13 @@ struct msghdr {
|
|||
.Fa msg_iovlen
|
||||
は
|
||||
.Xr read 2
|
||||
で説明されているようにスキャッタ/ギャザーの場所を記述します。
|
||||
で説明されているようにスキャッタ / ギャザーの場所を記述します。
|
||||
.Fa msg_control
|
||||
は、長さが
|
||||
.Fa msg_controllen
|
||||
の、他のプロトコル制御に関連するメッセージまたはその他の
|
||||
各種補助データ用のバッファを指しています。メッセージは次の形式です。
|
||||
各種補助データ用のバッファを指しています。
|
||||
メッセージは次の形式です:
|
||||
.Bd -literal
|
||||
struct cmsghdr {
|
||||
u_int cmsg_len; /* データバイトカウント、hdr を含む */
|
||||
|
|
@ -182,12 +185,13 @@ struct cmsghdr {
|
|||
.Pp
|
||||
.Ed
|
||||
たとえば、これを使用して XNS/SPP において
|
||||
データストリームの変化を知ることができます。また、ISO において
|
||||
データストリームの変化を知ることができます。
|
||||
また、ISO において
|
||||
.Fn accept
|
||||
呼び出しの直後に、データバッファを伴わずに recvmsg を要求して、
|
||||
ユーザ接続要求データを得ることができるでしょう。
|
||||
.Pp
|
||||
オープンされたファイル記述子はこれで
|
||||
オープンファイル記述子はこれで
|
||||
.Dv AF_UNIX
|
||||
ドメインソケット用の補助データとして引き渡され、その際、
|
||||
.Fa cmsg_level
|
||||
|
|
@ -205,14 +209,15 @@ struct cmsghdr {
|
|||
を使用して、プロセスの認証情報を
|
||||
.Dv AF_UNIX
|
||||
ドメインソケット用の補助データとして
|
||||
渡すこともできます。このケースでは、
|
||||
渡すこともできます。
|
||||
このケースでは、
|
||||
.Fa cmsg_data
|
||||
は、構造体
|
||||
.Fa cmsgcred
|
||||
である必要があります。これは
|
||||
次のように
|
||||
である必要があります。
|
||||
これは次のように
|
||||
.Ao Pa sys/socket.h Ac
|
||||
内で定義されています。
|
||||
内で定義されています:
|
||||
.Pp
|
||||
.Bd -literal
|
||||
struct cmsgcred {
|
||||
|
|
@ -245,7 +250,7 @@ struct cmsgcred {
|
|||
.Sh 戻り値
|
||||
これらの呼び出しは受信したバイト数を返し、エラーが起きた場合は -1 を返します。
|
||||
.Sh エラー
|
||||
呼び出しは次の場合に失敗します。
|
||||
呼び出しは次の場合に失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EBADF
|
||||
引数
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@
|
|||
.Rv -std rename
|
||||
.Sh エラー
|
||||
.Fn rename
|
||||
は次の場合に失敗し、いずれの引数ファイルも影響を受けません。
|
||||
は次の場合に失敗し、いずれの引数ファイルも影響を受けません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENAMETOOLONG
|
||||
いずれかのパス名の構成要素が 255 文字を越えているか、またはいずれかの
|
||||
|
|
@ -188,4 +188,4 @@
|
|||
.Fn rename
|
||||
関数は
|
||||
.St -p1003.1-96
|
||||
に準拠しています。
|
||||
に適合しています。
|
||||
|
|
|
|||
|
|
@ -52,10 +52,10 @@
|
|||
.Fn revoke
|
||||
関数は、
|
||||
.Fa path
|
||||
によって指定されたファイルの、システム内に現在オープンされているすべての
|
||||
ファイル記述子を無効にします。
|
||||
そのような記述子についての後続の操作は全て失敗します。ただし、
|
||||
キャラクタ型デバイスファイルへの
|
||||
によって指定されたファイルの、システム内に現在ある
|
||||
すべてのオープンファイル記述子を無効にします。
|
||||
そのような記述子についての後続の操作は全て失敗します。
|
||||
ただし、キャラクタ型デバイスファイルへの
|
||||
.Fn read
|
||||
がカウント 0 (ファイルの終了) を返すのと、
|
||||
.Fn close
|
||||
|
|
@ -68,14 +68,14 @@
|
|||
ファイルへのアクセスはその所有者または
|
||||
スーパユーザによってだけ無効にされます。
|
||||
.Fn revoke
|
||||
関数は現時点ではブロック型およびキャラクタ型特殊ファイルについてだけ
|
||||
関数は、現時点ではブロック型およびキャラクタ型特殊ファイルについてのみ
|
||||
サポートされています。
|
||||
これは通常、新しいログインセッション用に端末デバイスを準備するとき、
|
||||
以前の端末使用者によるアクセスを防止するために使用されます。
|
||||
.Sh 戻り値
|
||||
.Rv -std revoke
|
||||
.Sh エラー
|
||||
次の場合を除いて、指定ファイルへのアクセスは無効にされます。
|
||||
次の場合を除いて、指定ファイルへのアクセスは無効にされます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
|
|||
|
|
@ -29,11 +29,11 @@ fork, vfork, rfork
|
|||
プロセスが他のプロセスについてファイルを開閉することを
|
||||
許容します) およびオープンファイルが含まれます。
|
||||
.Fa flags
|
||||
は次の項目の倫理和 (OR) です。
|
||||
は次の項目の論理和 (OR) です:
|
||||
.Bl -tag -width "RFCNAMEG" -compact -offset indent
|
||||
.It RFPROC
|
||||
設定されている場合、新しいプロセスが
|
||||
作成されます。そうでない場合、変更が現在のプロセスに影響を及ぼします。
|
||||
設定されている場合、新しいプロセスが作成されます。
|
||||
そうでない場合、変更が現在のプロセスに影響を及ぼします。
|
||||
現在の実装は、このフラグが必ず設定されていることを要求します。
|
||||
.It RFNOWAIT
|
||||
設定されている場合、子プロセスは親プロセスから分離されます。
|
||||
|
|
@ -46,38 +46,34 @@ fork, vfork, rfork
|
|||
を参照) がコピーされます。
|
||||
そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。
|
||||
.It RFCFDG
|
||||
設定されている場合、新しいプロセスは新しいファイル記述子テーブルで
|
||||
設定されている場合、新しいプロセスは新しいファイル記述子テーブルを持って
|
||||
開始します。
|
||||
.Dv RFFDG
|
||||
とは互いに排他的です。
|
||||
.It RFMEM
|
||||
設定されている場合、
|
||||
通常、ハードウェアのページテーブルを直接共有することで、
|
||||
カーネルはアドレス空間全体の共有を強制します。
|
||||
子は、このような方法で、
|
||||
親プロセスが所有しているすべてのセグメントを、
|
||||
それが普段共有可能であるか否かに関係なく、
|
||||
継承し共有します。
|
||||
カーネルはアドレス空間全体を強制的に共有します。
|
||||
子は、このような方法で、親プロセスが所有しているすべてのセグメントを、
|
||||
それが普段共有可能であるか否かに関係なく、継承し共有します。
|
||||
スタックセグメントは分割されない
|
||||
(親と子の両方が同じスタック上に復帰する)
|
||||
ので、
|
||||
RFMEM フラグを指定した
|
||||
(親と子の両方が同じスタック上に復帰する) ので、RFMEM フラグを指定した
|
||||
.Fn rfork
|
||||
は一般に、C 言語を含む高級言語から直接呼び出すことはできません。
|
||||
共に設定可能なフラグは
|
||||
.Dv RFPROC
|
||||
だけです。
|
||||
この問題を解決し、提供されたスタック上で新しいプロセスを
|
||||
走らせるために補助関数が提供されています。詳しくは
|
||||
走らせるために補助関数が提供されています。
|
||||
詳しくは
|
||||
.Fn rfork_thread 3
|
||||
を参照してください。
|
||||
.It RFSIGSHARE
|
||||
設定されている場合、カーネルは、親子間で sigacts 構造体を共有することを
|
||||
強制します。
|
||||
設定されている場合、カーネルは、親子間で sigacts 構造体を強制的に共有します。
|
||||
.It RFLINUXTHPN
|
||||
設定されている場合、カーネルは、
|
||||
子についてのスレッド終了時に、SIGCHILD の代わりに
|
||||
SIGUSR1 を返します。これは特定の Linux クローン動作を模倣するためです。
|
||||
設定されている場合、カーネルは、子についてのスレッド終了時に、
|
||||
SIGCHILD の代わりに SIGUSR1 を返します。
|
||||
これは特定の Linux クローン動作を模倣するためです。
|
||||
.El
|
||||
.Pp
|
||||
共有ファイル記述子テーブル内のファイル記述子は、
|
||||
|
|
@ -89,11 +85,11 @@ SIGUSR1
|
|||
親プロセス内で返される値は子プロセスのプロセス ID です。
|
||||
子プロセス内で返される値は 0 です。
|
||||
.Dv RFPROC
|
||||
がない場合、戻り値は 0 です。プロセス ID の範囲は
|
||||
1 から最大整数値
|
||||
がない場合、戻り値は 0 です。
|
||||
プロセス ID の範囲は 1 から最大整数値
|
||||
.Ft ( int )
|
||||
です。必要であれば、要求されたプロセスリソースが
|
||||
利用できるようになるまで
|
||||
です。
|
||||
必要であれば、要求されたプロセスリソースが利用できるようになるまで
|
||||
.Fn rfork
|
||||
は待機します。
|
||||
.Pp
|
||||
|
|
@ -106,14 +102,14 @@ SIGUSR1
|
|||
正常に完了した場合、
|
||||
.Fn rfork
|
||||
は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに
|
||||
返します。そうでない場合、子プロセスは作成されずに、
|
||||
値 -1 が親プロセスに返され、
|
||||
返します。
|
||||
そうでない場合、子プロセスは作成されずに、値 -1 が親プロセスに返され、
|
||||
エラーを示すためにグローバル変数
|
||||
.Va errno
|
||||
が設定されます。
|
||||
.Sh エラー
|
||||
.Fn rfork
|
||||
は、次の場合に処理を失敗し、子プロセスは作成されません。
|
||||
は、次の場合に処理を失敗し、子プロセスは作成されません:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EAGAIN
|
||||
実行中のプロセスの合計数がシステムの課す制限を超過してしまいます。
|
||||
|
|
@ -124,9 +120,9 @@ MIB
|
|||
によって指定されます (スーパユーザを除いて、制限は実際には
|
||||
これより 10 個少なくなります)。
|
||||
.It Bq Er EAGAIN
|
||||
ユーザがスーパユーザではなく、
|
||||
1 人のユーザによる実行中のプロセスの合計数がシステムの課した制限を
|
||||
超過してしまいます。制限は、
|
||||
ユーザがスーパユーザではなく、1 人のユーザによる実行中の
|
||||
プロセスの合計数がシステムの課した制限を超過してしまいます。
|
||||
制限は、
|
||||
.Xr sysctl 3
|
||||
MIB 変数
|
||||
.Dv KERN_MAXPROCPERUID
|
||||
|
|
@ -154,13 +150,13 @@ RFFDG
|
|||
.Xr rfork_thread 3
|
||||
.Sh バグ
|
||||
.Fx
|
||||
は native な
|
||||
では、ネイティブな
|
||||
.Fn clone
|
||||
ライブラリコールを未だに実装されていませんし、
|
||||
ライブラリコールは未だに実装されていませんし、
|
||||
現在の pthreads 実装は RFMEM を指定した
|
||||
.Fn rfork
|
||||
を利用していません。
|
||||
linux スレッドライブラリの native port である、
|
||||
linux スレッドライブラリのネイティブポートである、
|
||||
.Pa /usr/ports/devel/linuxthreads
|
||||
は RFMEM を利用して動作する
|
||||
.Fn clone
|
||||
|
|
@ -171,6 +167,4 @@ linux
|
|||
の代わりとして利用することができます。
|
||||
.Sh 歴史
|
||||
.Fn rfork
|
||||
関数は
|
||||
Plan9
|
||||
ではじめて登場しました。
|
||||
関数は Plan9 ではじめて登場しました。
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@
|
|||
.Sh 戻り値
|
||||
.Rv -std rmdir
|
||||
.Sh エラー
|
||||
次の場合を除いて、指定されたファイルが削除されます。
|
||||
次の場合を除いて、指定されたファイルが削除されます:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er ENOTDIR
|
||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||
|
|
@ -80,11 +80,10 @@
|
|||
.It Bq Er EACCES
|
||||
削除するリンクが入っているディレクトリの書込みが許可されていません。
|
||||
.It Bq Er EPERM
|
||||
削除するディレクトリが入っているディレクトリは
|
||||
スティッキービットが設定されており、
|
||||
削除したいディレクトリを含んでいるディレクトリ
|
||||
または削除するディレクトリの
|
||||
どちらかあるいは両方の所有者が実効ユーザ ID とは異なっています。
|
||||
削除するディレクトリが入っているディレクトリはスティッキービットが
|
||||
設定されており、削除したいディレクトリを含んでいるディレクトリ
|
||||
または削除するディレクトリのどちらかあるいは両方の所有者が
|
||||
実効ユーザ ID とは異なっています。
|
||||
.It Bq Er EBUSY
|
||||
削除しようとしているディレクトリは、
|
||||
ファイルシステムがマウントされているマウントポイントです。
|
||||
|
|
|
|||
|
|
@ -45,18 +45,19 @@
|
|||
.Fn rtprio "int function" "pid_t pid" "struct rtprio *rtp"
|
||||
.Sh 解説
|
||||
.Fn rtprio
|
||||
を使用して、
|
||||
プロセスのリアルタイム / アイドル優先順位を取得または変更します。
|
||||
を使用して、プロセスのリアルタイム / アイドル優先順位を取得または変更します。
|
||||
.Pp
|
||||
.Fa function
|
||||
で実行する操作を指定します。現在の優先順位を取得するには
|
||||
RTP_LOOKUP、優先順位を設定するには RTP_SET です。
|
||||
で実行する操作を指定します。
|
||||
現在の優先順位を取得するには RTP_LOOKUP、優先順位を設定するには RTP_SET です。
|
||||
.Fa pid
|
||||
は、対象のプロセスを指定します。現在のプロセスを指定するには 0 を使います。
|
||||
は、対象のプロセスを指定します。
|
||||
現在のプロセスを指定するには 0 を使います。
|
||||
.Pp
|
||||
.Fa *rtp
|
||||
は、優先順位と優先順位のタイプを指定するのに使用する struct rtprio を指す
|
||||
ポインタです。この構造体は次の型です。
|
||||
ポインタです。
|
||||
この構造体は次の型です:
|
||||
.Bd -literal
|
||||
struct rtprio {
|
||||
u_short type;
|
||||
|
|
@ -71,7 +72,8 @@ struct rtprio {
|
|||
.Nm prio
|
||||
によって指定する優先順位は、0 から
|
||||
.Dv RTP_PRIO_MAX (通常は 31)
|
||||
の範囲になります。0 が指定可能な最高の優先順位です。
|
||||
の範囲になります。
|
||||
0 が指定可能な最高の優先順位です。
|
||||
.Pp
|
||||
リアルタイム優先順位とアイドル優先順位は、
|
||||
fork() と exec() を通じて継承されます。
|
||||
|
|
@ -89,7 +91,7 @@ fork()
|
|||
.Rv -std rtprio
|
||||
.Sh エラー
|
||||
.Fn rtprio
|
||||
は次の場合に処理を失敗します。
|
||||
は次の場合に処理を失敗します:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
指定された
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue