remaining updates to 4.2-20010112-STABLE
Submitted by:SUZUKI Koichi <metal@vc-net.ne.jp> Reviewed by:HIRATA Tadashi <heita@mb.infoweb.ne.jp>
This commit is contained in:
parent
c9c0c2bc1e
commit
475f484887
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=9055
13 changed files with 272 additions and 261 deletions
|
@ -36,7 +36,7 @@
|
||||||
.Os BSD 4
|
.Os BSD 4
|
||||||
.Sh 名称
|
.Sh 名称
|
||||||
.Nm open
|
.Nm open
|
||||||
.Nd 読取りまたは書込み用にファイルを開くかまたは作成する
|
.Nd 読取りまたは書込み用にファイルをオープンする、または作成する
|
||||||
.Sh ライブラリ
|
.Sh ライブラリ
|
||||||
.Lb libc
|
.Lb libc
|
||||||
.Sh 書式
|
.Sh 書式
|
||||||
|
@ -45,18 +45,20 @@
|
||||||
.Fn open "const char *path" "int flags" "..."
|
.Fn open "const char *path" "int flags" "..."
|
||||||
.Sh 解説
|
.Sh 解説
|
||||||
.Fa path
|
.Fa path
|
||||||
によって指定されるファイルは、引数
|
によって指定されるファイルを、引数
|
||||||
.Fa flags
|
.Fa flags
|
||||||
によって指定されたように読取りまたは書込み (またはその両方) 用に開かれ、
|
によって指定されたように読取りまたは書込み
|
||||||
そのファイル記述子は呼び出し元プロセスに返されます。
|
(またはその両方) 用にオープンし、
|
||||||
|
そのファイル記述子を呼び出し元プロセスに返します。
|
||||||
|
ファイルが存在しない場合にはファイルを
|
||||||
|
作成するように、
|
||||||
.Fa flags
|
.Fa flags
|
||||||
引数で、
|
引数で指示できます
|
||||||
.Dv ( O_CREAT
|
.Dv ( O_CREAT
|
||||||
フラグを指定することによって) ファイルが存在しない場合にファイルを
|
フラグを指定する)。
|
||||||
作成するように指示できます。
|
|
||||||
この場合、
|
この場合、
|
||||||
.Nm
|
.Nm
|
||||||
は 3 番目の引数
|
には 3 番目の引数
|
||||||
.Fa "mode_t mode"
|
.Fa "mode_t mode"
|
||||||
が必要であり、ファイルは
|
が必要であり、ファイルは
|
||||||
.Xr chmod 2
|
.Xr chmod 2
|
||||||
|
@ -72,20 +74,21 @@
|
||||||
で作成されます。
|
で作成されます。
|
||||||
.Pp
|
.Pp
|
||||||
.Bd -literal -offset indent -compact
|
.Bd -literal -offset indent -compact
|
||||||
O_RDONLY 読取り専用で開く
|
O_RDONLY 読取り専用でオープン
|
||||||
O_WRONLY 書込み専用で開く
|
O_WRONLY 書込み専用でオープン
|
||||||
O_RDWR 読取りと書込み用に開く
|
O_RDWR 読取りと書込み用にオープン
|
||||||
O_NONBLOCK 開くときにブロックしない
|
O_NONBLOCK オープンするときにブロックしない
|
||||||
O_APPEND 書込みのたびに末尾に追加する
|
O_APPEND 書込みのたびに末尾に追加する
|
||||||
O_CREAT ファイルが存在しない場合、作成する
|
O_CREAT ファイルが存在しない場合、作成する
|
||||||
O_TRUNC サイズを 0 に切り捨てる
|
O_TRUNC サイズを 0 に切り捨てる
|
||||||
O_EXCL ファイルを作成し、存在する場合はエラー
|
O_EXCL 作成するファイルが既に存在した場合、エラーとする
|
||||||
O_SHLOCK 共有ロックを自動的に取得する
|
O_SHLOCK 共有ロックを自動的に取得する
|
||||||
O_EXLOCK 排他的ロックを自動的に取得する
|
O_EXLOCK 排他的ロックを自動的に取得する
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
.Dv O_APPEND
|
.Dv O_APPEND
|
||||||
を設定してファイルを開くと、ファイルへ書込むごとに末尾に追加されます。
|
を設定してファイルをオープンすると、
|
||||||
|
ファイルへの書込みはすべてファイルの末尾に追加されます。
|
||||||
.Dv O_TRUNC
|
.Dv O_TRUNC
|
||||||
が指定されていてファイルが存在する場合、ファイルは長さ 0 に
|
が指定されていてファイルが存在する場合、ファイルは長さ 0 に
|
||||||
切り捨てられます。
|
切り捨てられます。
|
||||||
|
@ -99,29 +102,28 @@ O_EXLOCK
|
||||||
実現できます。
|
実現できます。
|
||||||
.Dv O_EXCL
|
.Dv O_EXCL
|
||||||
が設定されていてパス名の最後の構成要素がシンボリックリンクの場合、
|
が設定されていてパス名の最後の構成要素がシンボリックリンクの場合、
|
||||||
シンボリックリンクが存在しない名前を指していても
|
たとえシンボリックリンクが存在しない名前を指していたとしても
|
||||||
.Fn open
|
.Fn open
|
||||||
は処理に失敗します。
|
は処理に失敗します。
|
||||||
.Dv O_NONBLOCK
|
.Dv O_NONBLOCK
|
||||||
フラグが指定されていて
|
フラグが指定されていて
|
||||||
.Fn open
|
.Fn open
|
||||||
呼び出しの結果が何らかの理由でプロセスがブロックされると (たとえば、
|
呼び出しの結果、プロセスが何らかの理由でブロックされると (たとえば、
|
||||||
ダイアルアップ回線でのキャリアの待機)、
|
ダイアルアップ回線でキャリアを待っている場合)、
|
||||||
.Fn open
|
.Fn open
|
||||||
は即座に戻ります。プロセスが開いたファイルに
|
は即座に戻ります。プロセスがオープンしたファイルに
|
||||||
最初に入出力しようとしたとき、プロセスはブロックします
|
最初に入出力しようとしたとき、プロセスはブロックします
|
||||||
(現時点では実装されていません)。
|
(現時点では実装されていません)。
|
||||||
.Pp
|
.Pp
|
||||||
ファイルを開くときに、共有ロックについては
|
ファイルをオープンするときに、
|
||||||
|
.Xr flock 2
|
||||||
|
を使ったロックを得るには、共有ロックについては
|
||||||
.Dv O_SHLOCK 、
|
.Dv O_SHLOCK 、
|
||||||
排他的ロックについては
|
排他的ロックについては
|
||||||
.Dv O_EXLOCK
|
.Dv O_EXLOCK
|
||||||
を
|
を設定します。
|
||||||
設定することによって
|
|
||||||
.Xr flock 2
|
|
||||||
によってロックが得られます。
|
|
||||||
.Dv O_CREAT
|
.Dv O_CREAT
|
||||||
でファイルを作成する場合、ロックについての要求は処理に失敗すること
|
でファイルを作成する場合、ロック要求が失敗すること
|
||||||
はありません (ただし、下層にあるファイルシステムが
|
はありません (ただし、下層にあるファイルシステムが
|
||||||
ロックをサポートしている場合に限ります)。
|
ロックをサポートしている場合に限ります)。
|
||||||
.Pp
|
.Pp
|
||||||
|
@ -131,19 +133,19 @@ O_EXLOCK
|
||||||
処理に失敗すると -1 を返します。ファイル内の現在の位置をマークする
|
処理に失敗すると -1 を返します。ファイル内の現在の位置をマークする
|
||||||
ファイルポインタはファイルの先頭に設定されます。
|
ファイルポインタはファイルの先頭に設定されます。
|
||||||
.Pp
|
.Pp
|
||||||
新しいファイルが作成されるとき、そのファイルにはそれが含まれている
|
新しいファイルが作成される場合、そのグループは
|
||||||
ディレクトリのグループが与えられます。
|
ファイルが含まれるディレクトリのグループに設定されます。
|
||||||
.Pp
|
.Pp
|
||||||
新しい記述子は
|
新しい記述子は
|
||||||
.Xr execve 2
|
.Xr execve 2
|
||||||
システムコールを通じて開いたままに設定されます。
|
システムコールを通じてオープンされたままであるように設定されます。
|
||||||
.Xr close 2
|
.Xr close 2
|
||||||
と
|
と
|
||||||
.Xr fcntl 2
|
.Xr fcntl 2
|
||||||
を参照してください。
|
を参照してください。
|
||||||
.Pp
|
.Pp
|
||||||
システムには、1 つのプロセスによって同時に開けるファイル記述子数に
|
システムには、1 つのプロセスによって同時にオープンできる
|
||||||
制限があります。
|
ファイル記述子数に制限があります。
|
||||||
.Xr getdtablesize 2
|
.Xr getdtablesize 2
|
||||||
は現在のシステム制限を返します。
|
は現在のシステム制限を返します。
|
||||||
.Pp
|
.Pp
|
||||||
|
@ -174,7 +176,7 @@ O_EXLOCK
|
||||||
.Va errno
|
.Va errno
|
||||||
が設定されます。
|
が設定されます。
|
||||||
.Sh エラー
|
.Sh エラー
|
||||||
指定のファイルは次の場合を除いて開かれます。
|
指定のファイルは次の場合を除いてオープンされます。
|
||||||
.Bl -tag -width Er
|
.Bl -tag -width Er
|
||||||
.It Bq Er ENOTDIR
|
.It Bq Er ENOTDIR
|
||||||
パスの構成要素中にディレクトリ以外のものが含まれています。
|
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||||
|
@ -182,12 +184,13 @@ O_EXLOCK
|
||||||
パス名の構成要素が 255 文字を越えているか、
|
パス名の構成要素が 255 文字を越えているか、
|
||||||
またはパス名全体が 1023 文字を越えています。
|
またはパス名全体が 1023 文字を越えています。
|
||||||
.It Bq Er ENOENT
|
.It Bq Er ENOENT
|
||||||
|
指定されたファイルが存在せず、
|
||||||
.Dv O_CREAT
|
.Dv O_CREAT
|
||||||
が設定されてなく、指定されたファイルが存在しません。
|
も設定されていません。
|
||||||
.It Bq Er ENOENT
|
.It Bq Er ENOENT
|
||||||
存在しなければならないパス名の構成要素が存在しません。
|
存在しなければならないパス名の構成要素が存在しません。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
前置パス名の構成要素について検索許可が拒否されています。
|
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
要求されたパーミッション (読取りまたは書込み用、または両方) が
|
要求されたパーミッション (読取りまたは書込み用、または両方) が
|
||||||
指定のフラグに拒否されています。
|
指定のフラグに拒否されています。
|
||||||
|
@ -198,22 +201,24 @@ O_EXLOCK
|
||||||
.It Bq Er ELOOP
|
.It Bq Er ELOOP
|
||||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||||
.It Bq Er EISDIR
|
.It Bq Er EISDIR
|
||||||
指定のファイルがディレクトリであり、引数が書込み用に開くことを
|
指定のファイルがディレクトリであり、これを書込み用に
|
||||||
指定しています。
|
オープンするように引数が指定されています。
|
||||||
.It Bq Er EROFS
|
.It Bq Er EROFS
|
||||||
指定されたファイルは読取り専用ファイルシステム上にあり、
|
指定されたファイルは読取り専用ファイルシステム上にあり、
|
||||||
そのファイルを修正しようとしています。
|
そのファイルを修正しようとしています。
|
||||||
.It Bq Er EMFILE
|
.It Bq Er EMFILE
|
||||||
プロセスは、開いたファイル記述子に関する制限に達しています。
|
プロセスは、すでにオープンできるファイル記述子に関する
|
||||||
|
制限に達しています。
|
||||||
.It Bq Er ENFILE
|
.It Bq Er ENFILE
|
||||||
システムファイルテーブルが満杯です。
|
システムファイルテーブルが満杯です。
|
||||||
.It Bq Er ENXIO
|
.It Bq Er ENXIO
|
||||||
指定のファイルはキャラクタ型特殊ファイルまたはブロック型特殊
|
指定のファイルはキャラクタ型特殊ファイルまたはブロック型特殊
|
||||||
ファイルであり、この特殊ファイルに対応するデバイスは存在していません。
|
ファイルであり、この特殊ファイルに結び付けられたデバイスは
|
||||||
|
存在していません。
|
||||||
.It Bq Er ENXIO
|
.It Bq Er ENXIO
|
||||||
指定されたファイルは FIFO パイプで、どのプロセスからも
|
指定されたファイルは FIFO パイプで、どのプロセスからも
|
||||||
読取り用にオープンされていないにも関らず、
|
読取り用にオープンされていないにも関らず、
|
||||||
書込み用にオープンしようとしました。
|
これを書込み用にオープンしようとしました。
|
||||||
.It Bq Er EINTR
|
.It Bq Er EINTR
|
||||||
.Fn open
|
.Fn open
|
||||||
操作がシグナルによって割り込みされました。
|
操作がシグナルによって割り込みされました。
|
||||||
|
@ -254,9 +259,9 @@ O_EXLOCK
|
||||||
.Dv O_CREAT
|
.Dv O_CREAT
|
||||||
用の inode を割当て中に入出力エラーが発生しました。
|
用の inode を割当て中に入出力エラーが発生しました。
|
||||||
.It Bq Er ETXTBSY
|
.It Bq Er ETXTBSY
|
||||||
ファイルは実行中の純粋な手続き (共有テキスト) ファイルであり、
|
ファイルは純粋な手続き (共有テキスト) ファイルで、
|
||||||
.Fn open
|
.Fn open
|
||||||
呼び出しは書込みアクセスを要求しています。
|
が書込みアクセスを要求しましたが、ファイルは実行中です。
|
||||||
.It Bq Er EFAULT
|
.It Bq Er EFAULT
|
||||||
.Fa path
|
.Fa path
|
||||||
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||||
|
@ -266,13 +271,13 @@ O_EXLOCK
|
||||||
.Dv O_EXCL
|
.Dv O_EXCL
|
||||||
が指定されていて、ファイルが存在します。
|
が指定されていて、ファイルが存在します。
|
||||||
.It Bq Er EOPNOTSUPP
|
.It Bq Er EOPNOTSUPP
|
||||||
ソケットを開こうとしました (現時点では実装されていません)。
|
ソケットをオープンしようとしました (現時点では実装されていません)。
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
.Dv O_RDONLY ,
|
.Dv O_RDONLY ,
|
||||||
.Dv O_WRONLY
|
.Dv O_WRONLY
|
||||||
および
|
および
|
||||||
.Dv O_RDWR
|
.Dv O_RDWR
|
||||||
の不正な組合わせで記述子を開こうとしました。
|
の不正な組合わせで記述子をオープンしようとしました。
|
||||||
.El
|
.El
|
||||||
.Sh 関連項目
|
.Sh 関連項目
|
||||||
.Xr chmod 2 ,
|
.Xr chmod 2 ,
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
.Fn pathconf
|
.Fn pathconf
|
||||||
関数と
|
関数と
|
||||||
.Fn fpathconf
|
.Fn fpathconf
|
||||||
関数は、構成可能なシステム限界の現在値、またはパス名または
|
関数は、構成可能なシステム限界の現在値、またはパス名や
|
||||||
ファイル記述子に対応するオプション変数を
|
ファイル記述子に対応するオプション変数を
|
||||||
アプリケーションが判定する方法を提供します。
|
アプリケーションが判定する方法を提供します。
|
||||||
.Pp
|
.Pp
|
||||||
|
@ -76,9 +76,9 @@
|
||||||
.It Li _PC_LINK_MAX
|
.It Li _PC_LINK_MAX
|
||||||
最大のファイルリンクカウント。
|
最大のファイルリンクカウント。
|
||||||
.It Li _PC_MAX_CANON
|
.It Li _PC_MAX_CANON
|
||||||
端末標準入力回線の最大バイト数。
|
端末の標準モード入力待ち行列の最大バイト数。
|
||||||
.It Li _PC_MAX_INPUT
|
.It Li _PC_MAX_INPUT
|
||||||
端末入力待ち行列内空間で利用できる最小の最大バイト数。
|
端末入力待ち行列内空間で利用できる最大バイト数の最小値。
|
||||||
.It Li _PC_NAME_MAX
|
.It Li _PC_NAME_MAX
|
||||||
ファイル名の最大バイト数。
|
ファイル名の最大バイト数。
|
||||||
.It Li _PC_PATH_MAX
|
.It Li _PC_PATH_MAX
|
||||||
|
@ -86,14 +86,13 @@
|
||||||
.It Li _PC_PIPE_BUF
|
.It Li _PC_PIPE_BUF
|
||||||
パイプに自動的に書込まれる最大バイト数。
|
パイプに自動的に書込まれる最大バイト数。
|
||||||
.It Li _PC_CHOWN_RESTRICTED
|
.It Li _PC_CHOWN_RESTRICTED
|
||||||
該当する特権が
|
|
||||||
.Xr chown 2
|
.Xr chown 2
|
||||||
システムコールについて要求される場合は 1 を
|
システムコールを実行するのに、適切な特権が必要な場合は 1 を
|
||||||
返し、そうでない場合は 0 を返します。
|
返し、そうでない場合は 0 を返します。
|
||||||
.It Li _PC_NO_TRUNC
|
.It Li _PC_NO_TRUNC
|
||||||
KERN_NAME_MAX より長いファイル名で切り捨てられる場合は 1 を返します。
|
KERN_NAME_MAX より長いファイル名が切り捨てられる場合は 1 を返します。
|
||||||
.It Li _PC_VDISABLE
|
.It Li _PC_VDISABLE
|
||||||
値を無効にする終了文字を返します。
|
端末制御文字を無効にするための値を返します。
|
||||||
.El
|
.El
|
||||||
.Sh 戻り値
|
.Sh 戻り値
|
||||||
.Fn pathconf
|
.Fn pathconf
|
||||||
|
@ -101,8 +100,9 @@ KERN_NAME_MAX
|
||||||
.Fn fpathconf
|
.Fn fpathconf
|
||||||
の呼び出しが正常に完了しない場合は -1 が返され、
|
の呼び出しが正常に完了しない場合は -1 が返され、
|
||||||
.Va errno
|
.Va errno
|
||||||
が適宜設定されます。
|
が適切な値に設定されます。
|
||||||
変数がシステム内に限界のない機能に対応していると、-1 が返され、
|
変数に結び付けられた機能がシステム内に限界を持たないとき、
|
||||||
|
-1 が返され、
|
||||||
.Va errno
|
.Va errno
|
||||||
は修正されません。
|
は修正されません。
|
||||||
それ以外の場合、現在の変数値が返されます。
|
それ以外の場合、現在の変数値が返されます。
|
||||||
|
@ -119,7 +119,7 @@ KERN_NAME_MAX
|
||||||
.Fa name
|
.Fa name
|
||||||
引数の値が無効です。
|
引数の値が無効です。
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
対応するファイルと変数名の対応付けは実装されていません。
|
このファイルとこの変数との結び付きは、実装されていません。
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
.Fn pathconf
|
.Fn pathconf
|
||||||
|
@ -133,7 +133,7 @@ KERN_NAME_MAX
|
||||||
.It Bq Er ENOENT
|
.It Bq Er ENOENT
|
||||||
指定されたファイルが存在しません。
|
指定されたファイルが存在しません。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
前置パス名の構成要素について検索許可が拒否されています。
|
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||||
.It Bq Er ELOOP
|
.It Bq Er ELOOP
|
||||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||||
.It Bq Er EIO
|
.It Bq Er EIO
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
.Os BSD 4
|
.Os BSD 4
|
||||||
.Sh 名称
|
.Sh 名称
|
||||||
.Nm pipe
|
.Nm pipe
|
||||||
.Nd プロセス間通信について記述子のペアを作成する
|
.Nd プロセス間通信のための記述子のペアを作成する
|
||||||
.Sh ライブラリ
|
.Sh ライブラリ
|
||||||
.Lb libc
|
.Lb libc
|
||||||
.Sh 書式
|
.Sh 書式
|
||||||
|
@ -51,35 +51,36 @@
|
||||||
.Em pipe
|
.Em pipe
|
||||||
を作成し、ペアのファイル記述子を割り当てます。
|
を作成し、ペアのファイル記述子を割り当てます。
|
||||||
.Pp
|
.Pp
|
||||||
慣習により 1 番めの記述子が通常、パイプの
|
慣習により、通常は 1 番めの記述子がパイプの
|
||||||
.Em read end
|
.Em 読取り側
|
||||||
として使用され、2 番めの記述子が通常、
|
として使用され、2 番めの記述子が
|
||||||
.Em write end
|
.Em 書込み側
|
||||||
なので、
|
として使用されます。ですので、
|
||||||
.Fa fildes[1]
|
.Fa fildes[1]
|
||||||
に書込まれたデータが
|
に書込まれたデータが
|
||||||
.Fa fildes[0]
|
.Fa fildes[0]
|
||||||
に現れます (すなわち、
|
に現れます (すなわち、
|
||||||
.Fa fildes[0]
|
.Fa fildes[0]
|
||||||
から読取れます)。
|
から読取れます)。
|
||||||
これによって 1 つのプログラムの出力が別のプログラムに送信できます。
|
これを使えば 1 つのプログラムの出力を別のプログラムに送信できます。
|
||||||
ソースの標準出力はパイプの書込み終端であるようにセットアップされ、
|
送信側の標準出力をパイプの書込み側としてセットアップし、
|
||||||
シンクの標準入力はパイプの読取り終端であるようにセットアップされます。
|
受信側の標準入力をパイプの読取り側としてセットアップしてください。
|
||||||
パイプ自体は、すべての対応する記述子が閉じるまで持続します。
|
パイプ自体は、すべての対応する記述子がクローズされるまで持続します。
|
||||||
.Pp
|
.Pp
|
||||||
1 端が閉じているパイプは
|
一端が閉じているパイプは
|
||||||
.Em widowed
|
.Em widowed
|
||||||
(相手を失った) と見なされます。このようなパイプに書込みをすると、
|
(相手を失った) と見なされます。このようなパイプに書込みをすると、
|
||||||
書込みプロセスは
|
書込みプロセスは
|
||||||
.Dv SIGPIPE
|
.Dv SIGPIPE
|
||||||
信号を受信します。読取り側にファイルの終了を伝える方法は、
|
シグナルを受信します。読取り側にファイルの終了を伝える方法は、
|
||||||
書込み側のパイプを閉じてしまうしかありません。
|
書込み側のパイプをクローズするしかありません。
|
||||||
読取り側がバッファに入っているデータを使用した後、相手を失ったパイプを
|
読取り側がバッファに入っているデータを使い切った後、相手を失ったパイプを
|
||||||
読取ると 0 カウントが返されます。
|
読取ると 0 カウントが返されます。
|
||||||
.Pp
|
.Pp
|
||||||
実装したパイプのこの双方向という性質は古いシステムには移植できないので、
|
このパイプの実装における双方向という性質は、
|
||||||
一方向にパイプを使用する
|
古いシステムと互換性がありません。
|
||||||
ときは、従来の方法で端点を使用する慣習を使用することをお勧めします。
|
ですので、パイプを一方向にしか使用しないときには、
|
||||||
|
従来の方法で端点を使用するこの慣習に従うことをお勧めします。
|
||||||
.Sh 戻り値
|
.Sh 戻り値
|
||||||
パイプの作成が正常に完了すると、0 を返します。そうでない場合は -1 が返され、
|
パイプの作成が正常に完了すると、0 を返します。そうでない場合は -1 が返され、
|
||||||
エラーを示すために変数
|
エラーを示すために変数
|
||||||
|
|
|
@ -44,11 +44,11 @@
|
||||||
.Sh 解説
|
.Sh 解説
|
||||||
.Fn poll
|
.Fn poll
|
||||||
はファイル記述子の集合を調査して、
|
はファイル記述子の集合を調査して、
|
||||||
それらのいずれかが入出力の準備ができているか否かを調べます。
|
それらのいずれかで入出力の準備ができているか否かを調べます。
|
||||||
.Fa fds
|
.Fa fds
|
||||||
引数は
|
引数は
|
||||||
.Aq Pa poll.h
|
.Aq Pa poll.h
|
||||||
に定義された pollfd 配列を指す
|
で定義された pollfd 配列を指す
|
||||||
ポインタ (後述) です。
|
ポインタ (後述) です。
|
||||||
.Fa nfds
|
.Fa nfds
|
||||||
引数は
|
引数は
|
||||||
|
@ -66,11 +66,11 @@ struct pollfd {
|
||||||
構造体のフィールドは次のとおりです:
|
構造体のフィールドは次のとおりです:
|
||||||
.Bl -tag -width XXXrevents
|
.Bl -tag -width XXXrevents
|
||||||
.It fd
|
.It fd
|
||||||
ポールするファイル記述子。もし fd が -1 なら
|
調査するファイル記述子。もし fd が -1 なら
|
||||||
.Fa revents
|
.Fa revents
|
||||||
はクリアされ (0 に設定)、pollfd はチェックされません。
|
はクリアされ (0 に設定)、pollfd はチェックされません。
|
||||||
.It events
|
.It events
|
||||||
ポールするイベント (後述)。
|
調査するイベント (後述)。
|
||||||
.It revents
|
.It revents
|
||||||
発生したイベント (後述)。
|
発生したイベント (後述)。
|
||||||
.El
|
.El
|
||||||
|
@ -118,10 +118,12 @@ POLLOUT
|
||||||
.Pp
|
.Pp
|
||||||
.Fa timeout
|
.Fa timeout
|
||||||
が 0 でも INFTIM (-1) でもない場合、
|
が 0 でも INFTIM (-1) でもない場合、
|
||||||
いずれかのファイル記述子が準備完了になるのを
|
この値はいずれかのファイル記述子が準備完了になるのを
|
||||||
待機する最大インターバル (ミリ秒単位) を指定します。
|
待機する最大インターバル (ミリ秒単位) です。
|
||||||
.Fa timeout
|
.Fa timeout
|
||||||
が INFTIM (-1) の場合、ポールは永久にブロックします。
|
が INFTIM (-1) の場合、
|
||||||
|
.Fn poll
|
||||||
|
は永久にブロックします。
|
||||||
.Fa timeout
|
.Fa timeout
|
||||||
が 0 の場合
|
が 0 の場合
|
||||||
.Fn poll
|
.Fn poll
|
||||||
|
@ -138,14 +140,14 @@ POLLOUT
|
||||||
.Fa fds
|
.Fa fds
|
||||||
配列は変更されません。
|
配列は変更されません。
|
||||||
.Sh 互換性
|
.Sh 互換性
|
||||||
この実装は、ある指定のファイル記述子においては
|
この実装は、ファイル記述子によって
|
||||||
.Fn poll
|
.Fn poll
|
||||||
がエラー付きで戻らない場合があるという点で、
|
がエラーにならないという点で、
|
||||||
過去のものと異なっています。
|
過去のものと異なっています。
|
||||||
過去の実装ではこのようなエラー付きで戻るであろう場合
|
過去の実装においてエラーになるであろう場合
|
||||||
(たとえば
|
(たとえば
|
||||||
.Xr revoke 2
|
.Xr revoke 2
|
||||||
された記述子を検査しようとした場合)では、この実装は代わりに
|
された記述子を検査しようとした場合)、この実装は代わりに
|
||||||
.Fa events
|
.Fa events
|
||||||
ビットマスクを
|
ビットマスクを
|
||||||
.Fa revents
|
.Fa revents
|
||||||
|
@ -161,9 +163,9 @@ POLLOUT
|
||||||
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||||
.It Bq Er EINTR
|
.It Bq Er EINTR
|
||||||
時間切れになる前に、そして選択されたイベントが発生する前に
|
時間切れになる前に、そして選択されたイベントが発生する前に
|
||||||
シグナルが配信されました。
|
シグナルを受信しました。
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
指定の時間制限が負です。
|
時間制限として負の値が指定されました。
|
||||||
.El
|
.El
|
||||||
.Sh 関連項目
|
.Sh 関連項目
|
||||||
.Xr accept 2 ,
|
.Xr accept 2 ,
|
||||||
|
|
|
@ -89,15 +89,15 @@
|
||||||
.Fa samples
|
.Fa samples
|
||||||
に不正なアドレスが入っている場合、
|
に不正なアドレスが入っている場合、
|
||||||
.Fn profil
|
.Fn profil
|
||||||
は -1 を返し、プロファイルは終了し、
|
は -1 を返し、プロファイルは終了して
|
||||||
.Va errno
|
.Va errno
|
||||||
は適宜設定されます。そうでない場合、
|
が設定されます。そうでない場合、
|
||||||
.Fn profil
|
.Fn profil
|
||||||
は 0 を返します。
|
は 0 を返します。
|
||||||
.Sh ファイル
|
.Sh ファイル
|
||||||
.Bl -tag -width /usr/lib/gcrt0.o -compact
|
.Bl -tag -width /usr/lib/gcrt0.o -compact
|
||||||
.It Pa /usr/lib/gcrt0.o
|
.It Pa /usr/lib/gcrt0.o
|
||||||
プロファイル C ランタイムスタートアップファイル
|
プロファイリング用の C ランタイムスタートアップファイル
|
||||||
.It Pa gmon.out
|
.It Pa gmon.out
|
||||||
プロファイル出力ファイルの従来の名前
|
プロファイル出力ファイルの従来の名前
|
||||||
.El
|
.El
|
||||||
|
|
|
@ -25,44 +25,44 @@
|
||||||
.\".Em traced
|
.\".Em traced
|
||||||
(トレース
|
(トレース
|
||||||
されるプロセス) を制御できます。
|
されるプロセス) を制御できます。
|
||||||
ほとんどの場合、トレースされるプロセスは正常に実行されますが、
|
ほとんどの場合、トレースされるプロセスは正常に実行されます。
|
||||||
シグナルを受信すると
|
ただし、トレースされるプロセスはシグナルを受信すると
|
||||||
.Po
|
.Po
|
||||||
.Xr sigaction 2
|
.Xr sigaction 2
|
||||||
を参照
|
を参照
|
||||||
.Pc 、
|
.Pc
|
||||||
停止します。トレースのプロセスは、
|
停止します。トレースするプロセスは、
|
||||||
.Xr wait 2
|
.Xr wait 2
|
||||||
または
|
または
|
||||||
.Dv SIGCHLD
|
.Dv SIGCHLD
|
||||||
シグナルの配信によって認識し、停止されたプロセスの状態を調査し、
|
シグナルによってこれを検知し、停止されたプロセスの状態を調査して、
|
||||||
適宜それが終了するかまたは継続するようにします。
|
それを終了させるか、または適切な形で実行を継続させます。
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
は、これらすべてが行なわれるメカニズムです。
|
は、これらすべてを制御するメカニズムです。
|
||||||
.Pp
|
.Pp
|
||||||
.Fa request
|
.Fa request
|
||||||
引数は、どの操作が実行中であるかを指定します。
|
引数は、どの操作を実行するかを指定します。
|
||||||
残りの引数の意味は操作で決まりますが、
|
残りの引数の意味は操作によって異なります。
|
||||||
後述する 1 つの特殊なケースを除いて、
|
後述する 1 つの特殊なケースを除いて、
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
呼び出しはすべてトレースするプロセスによって行われ、
|
呼び出しはすべてトレースするプロセスによって行われ、
|
||||||
.Fa pid
|
.Fa pid
|
||||||
引数がトレースされるプロセスのプロセス ID を指定します。
|
引数はトレースされるプロセスのプロセス ID を指定します。
|
||||||
.Fa request
|
.Fa request
|
||||||
は次のものにできます。
|
は次のものにできます。
|
||||||
.Bl -tag -width 12n
|
.Bl -tag -width 12n
|
||||||
.It Dv PT_TRACE_ME
|
.It Dv PT_TRACE_ME
|
||||||
この要求は、トレースされているプロセスが使用する唯一の要求です。
|
この要求は、トレースされるプロセスが使用する唯一の要求です。
|
||||||
この要求は、
|
この要求は、
|
||||||
プロセスがその親によってトレースされると予想されることを宣言します。
|
プロセスがその親によってトレースされることを宣言します。
|
||||||
他の引数はすべて無視され
|
他の引数はすべて無視され
|
||||||
ます (親プロセスが子プロセスをトレースすると予想できない場合は、
|
ます (親プロセスが子プロセスをトレースしない場合は、
|
||||||
それはおそらく結果によって
|
かなり混乱した結果になります。
|
||||||
混乱されています。トレースされているプロセスが停止すると、このプロセスは、
|
トレースされるプロセスが停止すると、このプロセスは、
|
||||||
.Eo \&
|
.Eo \&
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
.Ec \&
|
.Ec \&
|
||||||
によってしか継続するようにできません)。プロセスがこの要求を使用し、
|
によってしか実行を継続できません)。プロセスがこの要求を使用し、
|
||||||
.Xr execve 2
|
.Xr execve 2
|
||||||
またはそれに組み込まれているルーチン
|
またはそれに組み込まれているルーチン
|
||||||
.Po
|
.Po
|
||||||
|
@ -70,11 +70,11 @@
|
||||||
.Xr execv 3
|
.Xr execv 3
|
||||||
.Pc
|
.Pc
|
||||||
を呼び出した場合、
|
を呼び出した場合、
|
||||||
そのプロセスは新しいイメージの最初の指示を実行する前に停止します。
|
そのプロセスは新しいイメージの最初の命令を実行する前に停止します。
|
||||||
また、実行中の実行可能モジュールについて
|
また、実行される実行可能モジュールの
|
||||||
setuid または setgid ビットは無視されます。
|
setuid または setgid ビットは無視されます。
|
||||||
.It Dv PT_READ_I , Dv PT_READ_D
|
.It Dv PT_READ_I , Dv PT_READ_D
|
||||||
これらの要求は、トレースされたプロセスのアドレス空間から 1 つの
|
これらの要求は、トレースされるプロセスのアドレス空間から 1 つの
|
||||||
.Li int
|
.Li int
|
||||||
データを読み取ります。従来、
|
データを読み取ります。従来、
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
|
@ -87,9 +87,10 @@ setuid
|
||||||
.Fx
|
.Fx
|
||||||
システムでは、これらの 2 つの要求は完全に同一です。
|
システムでは、これらの 2 つの要求は完全に同一です。
|
||||||
.Fa addr
|
.Fa addr
|
||||||
引数が、読み取りが行われる (トレースされたプロセスの仮想アドレス空間内の)
|
引数が、読み取りが行われる (トレースされるプロセスの仮想アドレス空間内の)
|
||||||
アドレスを指定します。
|
アドレスを指定します。
|
||||||
このアドレスはどのような整列制約を満たす必要はありません。読み取られた値は
|
このアドレスはどのような境界調整制約も満たす必要はありません。
|
||||||
|
読み取られた値は
|
||||||
.Eo \&
|
.Eo \&
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
.Ec
|
.Ec
|
||||||
|
@ -100,22 +101,22 @@ setuid
|
||||||
.Dv PT_READ_I
|
.Dv PT_READ_I
|
||||||
および
|
および
|
||||||
.Dv PT_READ_D
|
.Dv PT_READ_D
|
||||||
と平行しますが、読取るのでは
|
と同様ですが、読み取るのではなく
|
||||||
なく書き込むところが異なります。
|
書き込むところが異なります。
|
||||||
.Fa data
|
.Fa data
|
||||||
引数が書き込まれる値を指定します。
|
引数で書き込まれる値を指定します。
|
||||||
.It Dv PT_READ_U
|
.It Dv PT_READ_U
|
||||||
この要求は、トレースされるプロセスのユーザ構造体から 1 つの
|
この要求は、トレースされるプロセスのユーザ構造体から 1 つの
|
||||||
.Li int
|
.Li int
|
||||||
を読み取ります。
|
を読み取ります。
|
||||||
.Fa addr
|
.Fa addr
|
||||||
引数は、
|
引数は、
|
||||||
ユーザ構造体のベースに相対的に
|
ユーザ構造体のベースから相対的な
|
||||||
int の位置を指定します。この引数は、通常、明示的にまたは
|
int の位置を指定します。この引数は通常、明示的または
|
||||||
.Eo \&
|
.Eo \&
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
.Ec
|
.Ec
|
||||||
のプロトタイプの存在のどちらかによって
|
のプロトタイプの存在によって
|
||||||
.Li caddr_t
|
.Li caddr_t
|
||||||
にキャストされる整数値です。
|
にキャストされる整数値です。
|
||||||
.Dv PT_READ_I
|
.Dv PT_READ_I
|
||||||
|
@ -125,7 +126,7 @@ int
|
||||||
.Fa addr
|
.Fa addr
|
||||||
は
|
は
|
||||||
.Li int
|
.Li int
|
||||||
境界に整列されている必要があります。読取られた値は
|
境界に調整されている必要があります。読み取られた値は
|
||||||
.Eo \&
|
.Eo \&
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
.Ec
|
.Ec
|
||||||
|
@ -135,25 +136,25 @@ int
|
||||||
.Li int
|
.Li int
|
||||||
を書き込みます。
|
を書き込みます。
|
||||||
.Fa addr
|
.Fa addr
|
||||||
は
|
には
|
||||||
.Dv PT_READ_U
|
.Dv PT_READ_U
|
||||||
についてとまったく同じようにオフセットを指定し、
|
と同じようにオフセットを指定し、
|
||||||
.Fa data
|
.Fa data
|
||||||
は
|
には
|
||||||
.Dv PT_WRITE_I
|
.Dv PT_WRITE_I
|
||||||
および
|
および
|
||||||
.Dv PT_WRITE_D
|
.Dv PT_WRITE_D
|
||||||
とまったく同じように書き込まれる値を指定します。
|
と同じように書き込まれる値を指定します。
|
||||||
.It Dv PT_CONTINUE
|
.It Dv PT_CONTINUE
|
||||||
トレースされるプロセスは実行を継続します。
|
トレースされるプロセスは実行を継続します。
|
||||||
.Fa addr
|
.Fa addr
|
||||||
は、実行が再開される場所 (プログラムカウンタには新しい値)、
|
は、実行が再開される場所 (プログラムカウンタの新しい値)、
|
||||||
または実行が停止されたところで再開されることを示す
|
または実行が停止されたところで再開されることを示す
|
||||||
.Li (caddr_t)1
|
.Li (caddr_t)1
|
||||||
を指定します。
|
を指定します。
|
||||||
.Fa data
|
.Fa data
|
||||||
は、実行を再開するときにトレースされるプロセスに配信されるシグナル番号、
|
には、トレースされるプロセスが実行を再開するときに受信するシグナル番号、
|
||||||
またはシグナルが送信されない場合は 0 を提供します。
|
またはシグナルを送信しない場合には 0 を指定します。
|
||||||
.It Dv PT_STEP
|
.It Dv PT_STEP
|
||||||
トレースされるプロセスは 1 命令ずつステップ実行されます。
|
トレースされるプロセスは 1 命令ずつステップ実行されます。
|
||||||
.Fa addr
|
.Fa addr
|
||||||
|
@ -161,37 +162,37 @@ int
|
||||||
.Fa data
|
.Fa data
|
||||||
フィールドは使用されません。
|
フィールドは使用されません。
|
||||||
.It Dv PT_KILL
|
.It Dv PT_KILL
|
||||||
トレースされるプロセスは、
|
トレースされるプロセスは、あたかも
|
||||||
.Dv PT_CONTINUE
|
|
||||||
が、配信されるシグナルとして与えられた
|
|
||||||
.Dv SIGKILL
|
.Dv SIGKILL
|
||||||
とともに使用されたかのように終了します。
|
を配信シグナルとして
|
||||||
|
.Dv PT_CONTINUE
|
||||||
|
が使用されたかのように、終了します。
|
||||||
.It Dv PT_ATTACH
|
.It Dv PT_ATTACH
|
||||||
この要求は、さもなければ無関係のプロセスの制御を取得し、
|
この要求は、他の無関係なプロセスの制御を取得し、
|
||||||
それをトレース開始するように
|
そのトレースを開始します。
|
||||||
します。トレースされるプロセスからの協力は必要としません。このケースでは、
|
トレースされるプロセスからの協力は必要としません。このケースでは、
|
||||||
.Fa pid
|
.Fa pid
|
||||||
がトレースされるプロセスのプロセス ID を指定し、
|
にトレースされるプロセスのプロセス ID を指定し、
|
||||||
他の 2 つの引数は無視されます。
|
他の 2 つの引数は無視されます。
|
||||||
この要求では、ターゲットプロセスにトレースする
|
この要求では、ターゲットプロセスがトレースする
|
||||||
プロセスと同じリアル UID があること、
|
プロセスと同じ実 UID を持つこと、
|
||||||
それが setuid または setgid 実行可能モジュールを実行している必要が
|
それが setuid または setgid された実行可能モジュールでないこと
|
||||||
あることが要求されます (トレースしているプロセスがルートとして実行されている
|
が要求されます (トレースするプロセスが root として実行されている
|
||||||
場合、これらの制約は該当しません)。
|
場合、これらの制約は適用されません)。
|
||||||
トレースしているプロセスは、新たにトレースされるプロセスが停止させ、
|
トレースするプロセスは、新たにトレースされるプロセスを停止させ、
|
||||||
次に、これがずっとトレースされているかのように制御できます。
|
あたかも最初からずっとトレースしていたかのように制御できます。
|
||||||
.It Dv PT_DETACH
|
.It Dv PT_DETACH
|
||||||
この要求は PT_CONTINUE と類似していますが、実行を継続する別の場所を
|
この要求は PT_CONTINUE と類似していますが、実行を継続する別の場所を
|
||||||
指定できないこと、
|
指定できないこと、
|
||||||
およびそれが継続した後、トレースされたプロセスがトレースされなくなり、
|
および要求が成功した後、トレースされていたプロセスはもはや
|
||||||
通常どおり実行を継続することが異なります。
|
トレースされず、通常どおり実行を継続することが異なります。
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
さらにマシンに固有の要求が存在することがあります。i386
|
さらにマシンに固有の要求が存在することがあります。i386
|
||||||
では、これらは次のとおりです。
|
では、これらは次のとおりです。
|
||||||
.Bl -tag -width 12n
|
.Bl -tag -width 12n
|
||||||
.It Dv PT_GETREGS
|
.It Dv PT_GETREGS
|
||||||
この要求は、トレースされたプロセスのマシンレジスタを、
|
この要求は、トレースされるプロセスのマシンレジスタを、
|
||||||
.Fa addr
|
.Fa addr
|
||||||
が指す
|
が指す
|
||||||
.Dq Li "struct reg"
|
.Dq Li "struct reg"
|
||||||
|
@ -206,7 +207,7 @@ int
|
||||||
.Dq Li "struct reg"
|
.Dq Li "struct reg"
|
||||||
.Pf ( Aq Pa machine/reg.h
|
.Pf ( Aq Pa machine/reg.h
|
||||||
内に定義されています)
|
内に定義されています)
|
||||||
からトレースされたプロセスのマシンレジスタをロードします。
|
からトレースされるプロセスのマシンレジスタをロードします。
|
||||||
.It Dv PT_GETFPREGS
|
.It Dv PT_GETFPREGS
|
||||||
この要求はトレースされるプロセスの浮動小数点レジスタを
|
この要求はトレースされるプロセスの浮動小数点レジスタを
|
||||||
.Fa addr
|
.Fa addr
|
||||||
|
@ -223,7 +224,7 @@ int
|
||||||
.Dq Li "struct fpreg"
|
.Dq Li "struct fpreg"
|
||||||
.Pf ( Aq Pa machine/reg.h
|
.Pf ( Aq Pa machine/reg.h
|
||||||
内に定義されています)
|
内に定義されています)
|
||||||
からトレースされたプロセスの浮動小数点レジスタをロードします。
|
からトレースされるプロセスの浮動小数点レジスタをロードします。
|
||||||
.It Dv PT_GETDBREGS
|
.It Dv PT_GETDBREGS
|
||||||
この要求はトレースされるプロセスのデバッグレジスタを
|
この要求はトレースされるプロセスのデバッグレジスタを
|
||||||
.Fa addr
|
.Fa addr
|
||||||
|
@ -231,7 +232,7 @@ int
|
||||||
.Dq Li "struct dbreg"
|
.Dq Li "struct dbreg"
|
||||||
.Pf ( Aq Pa machine/reg.h
|
.Pf ( Aq Pa machine/reg.h
|
||||||
内に定義されています)
|
内に定義されています)
|
||||||
に読みとります。
|
に読み取ります。
|
||||||
.It Dv PT_SETDBREGS
|
.It Dv PT_SETDBREGS
|
||||||
この要求は
|
この要求は
|
||||||
.Dv PT_GETDBREGS
|
.Dv PT_GETDBREGS
|
||||||
|
@ -241,35 +242,35 @@ int
|
||||||
.Dq Li "struct dbreg"
|
.Dq Li "struct dbreg"
|
||||||
.Pf ( Aq Pa machine/reg.h
|
.Pf ( Aq Pa machine/reg.h
|
||||||
内に定義されています)
|
内に定義されています)
|
||||||
からトレースされたプロセスのデバッグレジスタにロードします。
|
からトレースされるプロセスのデバッグレジスタにロードします。
|
||||||
.El
|
.El
|
||||||
.Sh 戻り値
|
.Sh 戻り値
|
||||||
要求にはエラーでない値として
|
いくつかの要求で
|
||||||
.Li -1
|
|
||||||
を
|
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
に返させるものもあります。
|
はエラー以外の場合にも
|
||||||
曖昧さをなくすために、呼び出しの前に
|
.Li -1
|
||||||
|
を返します。
|
||||||
|
曖昧さをなくすためには、呼び出しの前に
|
||||||
.Va errno
|
.Va errno
|
||||||
を 0 に設定し、後でチェックできます。
|
を 0 に設定し、後でチェックします。
|
||||||
.Sh エラー
|
.Sh エラー
|
||||||
.Fn ptrace
|
.Fn ptrace
|
||||||
関数は次の場合に処理に失敗することがあります。
|
関数は次の場合に処理に失敗します。
|
||||||
.Bl -tag -width Er
|
.Bl -tag -width Er
|
||||||
.It Bq Er ESRCH
|
.It Bq Er ESRCH
|
||||||
.Bl -bullet -compact
|
.Bl -bullet -compact
|
||||||
.It
|
.It
|
||||||
指定のプロセス ID があるプロセスが存在しません。
|
指定されたプロセス ID を持つプロセスが存在しません。
|
||||||
.El
|
.El
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
.Bl -bullet -compact
|
.Bl -bullet -compact
|
||||||
.It
|
.It
|
||||||
プロセスが自身の上に
|
プロセスが自分自身に対して
|
||||||
.Dv PT_ATTACH
|
.Dv PT_ATTACH
|
||||||
を使おうとしました。
|
を使おうとしました。
|
||||||
.It
|
.It
|
||||||
.Fa request
|
.Fa request
|
||||||
は正しい要求の 1 つではありませんでした。
|
が正しい要求の 1 つではありませんでした。
|
||||||
.It
|
.It
|
||||||
.Dv PT_READ_U
|
.Dv PT_READ_U
|
||||||
または
|
または
|
||||||
|
@ -279,12 +280,12 @@ int
|
||||||
が
|
が
|
||||||
.\".Li int Ns \&-aligned.
|
.\".Li int Ns \&-aligned.
|
||||||
.Li int
|
.Li int
|
||||||
で整列していませんでした。
|
境界に調節されていませんでした。
|
||||||
.It
|
.It
|
||||||
.Dv PT_CONTINUE
|
.Dv PT_CONTINUE
|
||||||
へのシグナル番号
|
へのシグナル番号
|
||||||
.Fa ( data
|
.Fa ( data )
|
||||||
内) が、0 ではないか、または正しいシグナル番号ではありませんでした。
|
が 0 でないか、または正しいシグナル番号ではありませんでした。
|
||||||
.It
|
.It
|
||||||
.Dv PT_GETREGS ,
|
.Dv PT_GETREGS ,
|
||||||
.Dv PT_SETREGS ,
|
.Dv PT_SETREGS ,
|
||||||
|
@ -293,17 +294,16 @@ int
|
||||||
.Dv PT_GETDBREGS
|
.Dv PT_GETDBREGS
|
||||||
または
|
または
|
||||||
.Dv PT_SETDBREGS
|
.Dv PT_SETDBREGS
|
||||||
が、有効なレジスタを設定せずに
|
が、有効なレジスタを設定せずに使用されました
|
||||||
プロセスについて試みられました
|
(これらは通常、システムプロセスについてのみ使用されます)。
|
||||||
(これは通常、システムプロセスについてだけ真です)。
|
|
||||||
.El
|
.El
|
||||||
.It Bq Er EBUSY
|
.It Bq Er EBUSY
|
||||||
.Bl -bullet -compact
|
.Bl -bullet -compact
|
||||||
.It
|
.It
|
||||||
.Dv PT_ATTACH
|
.Dv PT_ATTACH
|
||||||
が既にトレース中のプロセスについて試みられました。
|
が既にトレース中のプロセスについて使用されました。
|
||||||
.It
|
.It
|
||||||
要求をしているプロセス以外のプロセスによってトレースされているプロセスを
|
要求をしているプロセス以外のプロセスによって、トレースされるプロセスを
|
||||||
操作しようとする要求が試みられました。
|
操作しようとする要求が試みられました。
|
||||||
.It
|
.It
|
||||||
要求
|
要求
|
||||||
|
@ -319,7 +319,7 @@ int
|
||||||
.It
|
.It
|
||||||
前述の
|
前述の
|
||||||
.Dv PT_ATTACH
|
.Dv PT_ATTACH
|
||||||
でリストした要求を侵犯してプロセスについて
|
で説明した条件を満たさないプロセスについて
|
||||||
.Dv PT_ATTACH
|
.Dv PT_ATTACH
|
||||||
を使おうとしました。
|
を使おうとしました。
|
||||||
.El
|
.El
|
||||||
|
|
|
@ -58,11 +58,11 @@
|
||||||
システムコールは、
|
システムコールは、
|
||||||
ファイルシステムの割り当て制限を有効や無効にしたり、操作します。
|
ファイルシステムの割り当て制限を有効や無効にしたり、操作します。
|
||||||
.Fa cmd
|
.Fa cmd
|
||||||
で与えられた割り当て制限制御コマンドは、指定のユーザ
|
で与えられた割り当て制限制御コマンドは、
|
||||||
.Fa id
|
.Fa id
|
||||||
に対して
|
で指定されたユーザと
|
||||||
.Fa path
|
.Fa path
|
||||||
で指定されたファイルを操作します (注釈:
|
で指定されたファイルに対して動作します (注:
|
||||||
.Fa cmd
|
.Fa cmd
|
||||||
の値を明確に表すために、
|
の値を明確に表すために、
|
||||||
.Ao Pa ufs/ufs/quota.h Ac
|
.Ao Pa ufs/ufs/quota.h Ac
|
||||||
|
@ -77,18 +77,20 @@ QCMD
|
||||||
.Dq ufs
|
.Dq ufs
|
||||||
ファイルシステムについてのみサポートされています。
|
ファイルシステムについてのみサポートされています。
|
||||||
.Dq ufs
|
.Dq ufs
|
||||||
の場合、コマンドは、主たるコマンド (後述) および
|
の場合、コマンドは主たるコマンド (後述) および
|
||||||
.Fa id
|
.Fa id
|
||||||
引数の解釈方法を指示するコマンドタイプで構成されます。
|
引数の解釈方法を指示するコマンドタイプで構成されます。
|
||||||
コマンドタイプは、ユーザ識別子 (USRQUOTA) と
|
コマンドタイプは、
|
||||||
グループ識別子 (GRPQUOTA) を解釈するものがサポートされています。
|
.Fa id
|
||||||
|
をユーザ識別子として解釈する (USRQUOTA) と、
|
||||||
|
グループ識別子として解釈する (GRPQUOTA) がサポートされています。
|
||||||
.Dq ufs
|
.Dq ufs
|
||||||
固有のコマンドは次のとおりです。
|
固有のコマンドは次のとおりです。
|
||||||
.Bl -tag -width Q_QUOTAOFFxx
|
.Bl -tag -width Q_QUOTAOFFxx
|
||||||
.It Dv Q_QUOTAON
|
.It Dv Q_QUOTAON
|
||||||
.Fa path
|
.Fa path
|
||||||
で指定されるファイルシステム用のディスク割り当て制限を有効にします。
|
で指定されるファイルシステム用のディスク割り当て制限を有効にします。
|
||||||
コマンドタイプには有効になっている割り当て制限の種類を指定します。
|
コマンドタイプには有効にする割り当て制限の種類を指定します。
|
||||||
.Fa addr
|
.Fa addr
|
||||||
引数には、割り当て制限情報を取り出すファイルを指定します。
|
引数には、割り当て制限情報を取り出すファイルを指定します。
|
||||||
割り当て制限を記録したファイルが存在している必要があります。
|
割り当て制限を記録したファイルが存在している必要があります。
|
||||||
|
@ -157,10 +159,10 @@ QCMD
|
||||||
パラメータは無視されます。
|
パラメータは無視されます。
|
||||||
.El
|
.El
|
||||||
.Sh 戻り値
|
.Sh 戻り値
|
||||||
処理が正常に完了すると 0 を返します。
|
処理が正常に完了すると、値 0 が返されます。
|
||||||
そうでない場合は、値 -1 が返され、グローバル変数
|
そうでない場合は -1 が返され、エラーを示すためにグローバル変数
|
||||||
.Va errno
|
.Va errno
|
||||||
が失敗の理由を示します。
|
が設定されます。
|
||||||
.Sh エラー
|
.Sh エラー
|
||||||
.Fn quotactl
|
.Fn quotactl
|
||||||
呼び出しは次の場合に失敗します。
|
呼び出しは次の場合に失敗します。
|
||||||
|
@ -178,14 +180,14 @@ QCMD
|
||||||
.Dv Q_QUOTAON
|
.Dv Q_QUOTAON
|
||||||
において、割り当て制限情報ファイルがプレーンファイルではありません。
|
において、割り当て制限情報ファイルがプレーンファイルではありません。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
前置パス名の構成要素について検索許可が拒否されています。
|
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||||
.It Bq Er ENOTDIR
|
.It Bq Er ENOTDIR
|
||||||
前置パス名の構成要素がディレクトリではありません。
|
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||||
.It Bq Er ENAMETOOLONG
|
.It Bq Er ENAMETOOLONG
|
||||||
パス名の構成要素が 255 文字を越えているか、
|
パス名の構成要素が 255 文字を越えているか、
|
||||||
またはパス名全体が 1023 文字を越えています。
|
またはパス名全体が 1023 文字を越えています。
|
||||||
.It Bq Er ENOENT
|
.It Bq Er ENOENT
|
||||||
ファイル名が存在しません。
|
指定されたファイルが存在しません。
|
||||||
.It Bq Er ELOOP
|
.It Bq Er ELOOP
|
||||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||||
.It Bq Er EROFS
|
.It Bq Er EROFS
|
||||||
|
@ -200,13 +202,13 @@ QCMD
|
||||||
無効な
|
無効な
|
||||||
.Fa addr
|
.Fa addr
|
||||||
が指定されました。
|
が指定されました。
|
||||||
対応する構造体を、カーネル内またはカーネル外にコピーできませんでした。
|
対応する構造体をカーネルに、またはカーネルからコピーできませんでした。
|
||||||
.It Bq Er EFAULT
|
.It Bq Er EFAULT
|
||||||
.Fa path
|
.Fa path
|
||||||
が、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
が、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||||
.It Bq Er EPERM
|
.It Bq Er EPERM
|
||||||
特権が必要な呼び出しであったにも関わらず、
|
特権が必要な呼び出しであったにも関わらず、
|
||||||
スーパユーザでないユーザによって呼ばれました。
|
スーパユーザ以外のユーザによって呼び出されました。
|
||||||
.El
|
.El
|
||||||
.Sh 関連項目
|
.Sh 関連項目
|
||||||
.Xr quota 1 ,
|
.Xr quota 1 ,
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
.Fa nbytes
|
.Fa nbytes
|
||||||
のデータを読取ろうとします。
|
のデータを読取ろうとします。
|
||||||
.Fn readv
|
.Fn readv
|
||||||
は同様の処理を実行しようとしますが、配列
|
は同様の処理を実行しますが、配列
|
||||||
.Fa iov
|
.Fa iov
|
||||||
: iov[0], iov[1], ..., iov[iovcnt\|\-\|1]
|
: iov[0], iov[1], ..., iov[iovcnt\|\-\|1]
|
||||||
のメンバで指定される
|
のメンバで指定される
|
||||||
|
@ -69,8 +69,8 @@
|
||||||
個のバッファに入力データを分散
|
個のバッファに入力データを分散
|
||||||
させます。
|
させます。
|
||||||
.Fn pread
|
.Fn pread
|
||||||
は同様の機能を果たしますが、ファイルポインタを変更せずに
|
は同様の機能を実行しますが、ファイル内の指定の位置から読取った後、
|
||||||
ファイル内の指定の位置から読取ります。
|
ファイルポインタを変更しません。
|
||||||
.Pp
|
.Pp
|
||||||
.Fn readv
|
.Fn readv
|
||||||
に対する
|
に対する
|
||||||
|
@ -94,16 +94,16 @@ struct iovec {
|
||||||
.Fn read
|
.Fn read
|
||||||
は
|
は
|
||||||
.Fa d
|
.Fa d
|
||||||
に対応するポインタが指定する位置から開始
|
に結び付けられたポインタが指定する位置から開始
|
||||||
します
|
します
|
||||||
.Pf ( Xr lseek 2
|
.Pf ( Xr lseek 2
|
||||||
を参照)。
|
を参照)。
|
||||||
.Fn read
|
.Fn read
|
||||||
からの戻り時に、ポインタは、実際に読取られたバイト数
|
からの戻り時に、ポインタは実際に読取られたバイト数
|
||||||
だけ増加させられます。
|
だけ増加させられます。
|
||||||
.Pp
|
.Pp
|
||||||
シークできないオブジェクトは必ず現在の位置から読取られます。
|
シークできないオブジェクトは必ず現在の位置から読取られます。
|
||||||
そのようなオブジェクトに対応するポインタの値は未定義です。
|
そのようなオブジェクトに結び付けられたポインタの値は未定義です。
|
||||||
.Pp
|
.Pp
|
||||||
処理が成功すると、
|
処理が成功すると、
|
||||||
.Fn read ,
|
.Fn read ,
|
||||||
|
@ -118,13 +118,13 @@ struct iovec {
|
||||||
.Pp
|
.Pp
|
||||||
.Sh システムの注意事項
|
.Sh システムの注意事項
|
||||||
.Pp
|
.Pp
|
||||||
非スレッドライブラリ
|
非スレッドライブラリでは、
|
||||||
.Fn read
|
.Fn read
|
||||||
は
|
は
|
||||||
.Va read
|
.Va read
|
||||||
システムコールとして実装されています。
|
システムコールとして実装されています。
|
||||||
.Pp
|
.Pp
|
||||||
スレッドライブラリの場合、
|
スレッドライブラリでは、
|
||||||
.Va read
|
.Va read
|
||||||
システムコールは
|
システムコールは
|
||||||
.Fn _thread_sys_read
|
.Fn _thread_sys_read
|
||||||
|
@ -143,13 +143,13 @@ struct iovec {
|
||||||
.Fa d
|
.Fa d
|
||||||
をアンロックします。
|
をアンロックします。
|
||||||
.Pp
|
.Pp
|
||||||
非スレッドライブラリ
|
非スレッドライブラリでは、
|
||||||
.Fn readv
|
.Fn readv
|
||||||
は
|
は
|
||||||
.Va readv
|
.Va readv
|
||||||
システムコールとして実装されています。
|
システムコールとして実装されています。
|
||||||
.Pp
|
.Pp
|
||||||
スレッドライブラリの場合、
|
スレッドライブラリでは、
|
||||||
.Va readv
|
.Va readv
|
||||||
システムコールは
|
システムコールは
|
||||||
.Fn _thread_sys_readv
|
.Fn _thread_sys_readv
|
||||||
|
@ -194,7 +194,7 @@ struct iovec {
|
||||||
割り込まれました。
|
割り込まれました。
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
.Fa d
|
.Fa d
|
||||||
に対応するポインタが負でした。
|
に結び付けられたポインタが負でした。
|
||||||
.It Bq Er EAGAIN
|
.It Bq Er EAGAIN
|
||||||
ファイルは非ブロッキング入出力とマークされており、
|
ファイルは非ブロッキング入出力とマークされており、
|
||||||
読取りの準備ができたデータがありません。
|
読取りの準備ができたデータがありません。
|
||||||
|
@ -206,7 +206,7 @@ struct iovec {
|
||||||
.Bl -tag -width Er
|
.Bl -tag -width Er
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
.Fa iovcnt
|
.Fa iovcnt
|
||||||
が 0 に等しいかまたは 0 未満であるか、または 16 より大きくなっています。
|
が 0 以下であるか、または 16 より大きくなっています。
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
.Fa iov
|
.Fa iov
|
||||||
配列の中の
|
配列の中の
|
||||||
|
@ -228,7 +228,7 @@ struct iovec {
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
指定のファイルオフセットが有効ではありません。
|
指定のファイルオフセットが有効ではありません。
|
||||||
.It Bq Er ESPIPE
|
.It Bq Er ESPIPE
|
||||||
ファイル記述子がパイプ、ソケット、または FIFO に対応しています。
|
ファイル記述子がパイプ、ソケット、または FIFO に結び付けられています。
|
||||||
.El
|
.El
|
||||||
.Sh 関連項目
|
.Sh 関連項目
|
||||||
.Xr dup 2 ,
|
.Xr dup 2 ,
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
.Dv NUL
|
.Dv NUL
|
||||||
文字を追加しません。
|
文字を追加しません。
|
||||||
.Sh 戻り値
|
.Sh 戻り値
|
||||||
呼び出しは正常に完了すると文字のカウントをバッファ内に配置して戻ります。
|
呼び出しが正常に完了した場合、バッファ内に配置した文字数を返します。
|
||||||
エラーが起きた場合は -1 を返し、エラーコードがグローバル変数
|
エラーが起きた場合は -1 を返し、エラーコードがグローバル変数
|
||||||
.Va errno
|
.Va errno
|
||||||
に設定されます。
|
に設定されます。
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
.It Bq Er ENOENT
|
.It Bq Er ENOENT
|
||||||
指定されたファイルが存在しません。
|
指定されたファイルが存在しません。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
前置パス名の構成要素について検索許可が拒否されています。
|
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||||
.It Bq Er ELOOP
|
.It Bq Er ELOOP
|
||||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||||
.It Bq Er EINVAL
|
.It Bq Er EINVAL
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
.Fn reboot "int howto"
|
.Fn reboot "int howto"
|
||||||
.Sh 解説
|
.Sh 解説
|
||||||
.Fn reboot
|
.Fn reboot
|
||||||
は、システムをリブートします。スーパユーザだけが必要に応じてマシンを
|
はシステムをリブートします。スーパユーザだけが必要に応じてマシンを
|
||||||
リブートできます。しかし、回復不可能なシステム障害の場合は、
|
リブートできます。しかし、回復不可能なシステム障害の場合は、
|
||||||
リブートは自動的に起動されます。
|
リブートは自動的に起動されます。
|
||||||
.Pp
|
.Pp
|
||||||
|
@ -92,7 +92,7 @@ init
|
||||||
.Pa /sbin/init
|
.Pa /sbin/init
|
||||||
以外の init プログラム
|
以外の init プログラム
|
||||||
.Pf ( Xr init 8
|
.Pf ( Xr init 8
|
||||||
を参照) が実行されるよう指定するオプション。
|
を参照) が実行されるよう指定するオプションです。
|
||||||
このスイッチは現時点では無効です。
|
このスイッチは現時点では無効です。
|
||||||
.It Dv RB_KDB
|
.It Dv RB_KDB
|
||||||
シンボルテーブルをロードし、システム内の組み込みデバッガを有効にします。
|
シンボルテーブルをロードし、システム内の組み込みデバッガを有効にします。
|
||||||
|
|
|
@ -55,13 +55,13 @@
|
||||||
.Fn recvfrom
|
.Fn recvfrom
|
||||||
と
|
と
|
||||||
.Fn recvmsg
|
.Fn recvmsg
|
||||||
は、ソケットからのメッセージを受信するのに使用され、
|
は、ソケットからのメッセージを受信するのに使用されます。
|
||||||
ソケットが接続指向であるかどうかと無関係にソケット上のデータを
|
ソケットが接続指向であるかどうかにかかわらず、ソケット上のデータを
|
||||||
受信するのに使用できます。
|
受信するのに使用できます。
|
||||||
.Pp
|
.Pp
|
||||||
.Fa from
|
.Fa from
|
||||||
が nil でなく、ソケットが接続指向でない場合、
|
が nil でなく、ソケットが接続指向でない場合、
|
||||||
メッセージのソースアドレスが記入されます。
|
ここにはメッセージのソースアドレスが保存されます。
|
||||||
.Fa fromlen
|
.Fa fromlen
|
||||||
は「値-結果」パラメータであり、
|
は「値-結果」パラメータであり、
|
||||||
.Fa from
|
.Fa from
|
||||||
|
@ -81,32 +81,32 @@
|
||||||
と同一です。これは冗長なので、将来のリリースでは
|
と同一です。これは冗長なので、将来のリリースでは
|
||||||
サポートされない可能性があります。
|
サポートされない可能性があります。
|
||||||
.Pp
|
.Pp
|
||||||
これら 3 つのルーチンは正常に完了するとメッセージの長さを返してきます。
|
これら 3 つのルーチンは正常に完了するとメッセージの長さを返します。
|
||||||
メッセージが長すぎて指定のバッファに入らない場合は、
|
メッセージが長すぎて指定のバッファに収まらない場合、
|
||||||
メッセージを受信したソケットのタイプによっては
|
メッセージを受信したソケットのタイプによっては
|
||||||
超過分のバイトは破棄されるでしょう。
|
超過分のバイトが破棄されることがあります。
|
||||||
.Pf ( Xr socket 2
|
.Pf ( Xr socket 2
|
||||||
を参照)。
|
を参照)。
|
||||||
.Pp
|
.Pp
|
||||||
ソケットにメッセージが無い場合は、ソケットがノンブロッキング
|
ソケットにメッセージが無い場合は、ソケットが非ブロッキング
|
||||||
.Pf ( Xr fcntl 2
|
.Pf ( Xr fcntl 2
|
||||||
を参照) の場合を除き、呼出しはメッセージが到着するのを待ちます。
|
を参照) の場合を除き、呼出しはメッセージが到着するのを待ちます。
|
||||||
ソケットがノンブロッキングの場合、値 -1 が返され、外部変数
|
ソケットが非ブロッキングの場合、値 -1 が返され、外部変数
|
||||||
.Va errno
|
.Va errno
|
||||||
が
|
が
|
||||||
.Er EAGAIN
|
.Er EAGAIN
|
||||||
に設定されます。通常受信呼出しは、要求された量を受信するまで待たずに、
|
に設定されます。通常、受信呼出しは要求された量を受信するまで待たずに、
|
||||||
得られたデータを要求された量を上限として返します。この動作は、
|
要求された量を上限として得られたデータを返します。この動作は、
|
||||||
.Xr getsockopt 2
|
.Xr getsockopt 2
|
||||||
で説明したソケットレベルの
|
で解説されているソケットレベルのオプション
|
||||||
オプション
|
|
||||||
.Dv SO_RCVLOWAT
|
.Dv SO_RCVLOWAT
|
||||||
および
|
および
|
||||||
.Dv SO_RCVTIMEO
|
.Dv SO_RCVTIMEO
|
||||||
によって影響を受けます。
|
によって影響を受けます。
|
||||||
.Pp
|
.Pp
|
||||||
|
次のデータがいつ到着するかを判定するには
|
||||||
.Xr select 2
|
.Xr select 2
|
||||||
呼出しは、さらなるデータがいつ到着するかを判定するのに使うことができます。
|
呼出しを使うことができます。
|
||||||
.Pp
|
.Pp
|
||||||
recv 呼出しへの
|
recv 呼出しへの
|
||||||
.Fa flags
|
.Fa flags
|
||||||
|
@ -117,20 +117,21 @@ recv
|
||||||
.Bl -column MSG_WAITALL -offset indent
|
.Bl -column MSG_WAITALL -offset indent
|
||||||
.It Dv MSG_OOB プロセス帯域外データ
|
.It Dv MSG_OOB プロセス帯域外データ
|
||||||
.It Dv MSG_PEEK 着信メッセージの覗き見 (peek)
|
.It Dv MSG_PEEK 着信メッセージの覗き見 (peek)
|
||||||
.It Dv MSG_WAITALL 完全な要求またはエラーを待つ
|
.It Dv MSG_WAITALL 要求の完全な実行、またはエラーを待つ
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
.Dv MSG_OOB
|
.Dv MSG_OOB
|
||||||
フラグは、帯域外データの受信を要求し、
|
フラグは帯域外データの受信を要求し、
|
||||||
通常のデータストリームは受信されません。
|
通常のデータストリームからは受信しません。
|
||||||
急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、
|
急送データを通常のデータ待ち行列の先頭に配置するプロトコルもありますが、
|
||||||
このフラグはそのようなプロトコルでは使用できません。MSG_PEEK フラグは、
|
このフラグはそのようなプロトコルでは使用できません。MSG_PEEK フラグは
|
||||||
受信操作が、データを待ち行列から除去せずにそのデータを受信待ち行列の先頭から
|
受信待ち行列の先頭からデータを除去することなく、そのデータを
|
||||||
返すようにします。したがって、後続の受信呼出しは同じデータ
|
返します。したがって、後続の受信呼出しは同じデータ
|
||||||
を返します。MSG_WAITALL フラグは、完全な要求が満たされるまで操作のブロックを
|
を返します。MSG_WAITALL フラグは要求が完全に満たされるまで
|
||||||
要求します。しかし、シグナルが補足された場合、エラーまたは切断が発生した場合、
|
ブロックするように要求します。
|
||||||
または受信する次のデータが返されたものと異なるタイプ
|
しかし、シグナルが補足された場合、エラーまたは切断が発生した場合、
|
||||||
である場合、呼出しは要求されたより少ないデータを返す可能性があります。
|
または受信する次のデータが返されたタイプと異なる
|
||||||
|
場合、呼出しは要求されたより少ないデータを返す可能性があります。
|
||||||
.Pp
|
.Pp
|
||||||
.Fn recvmsg
|
.Fn recvmsg
|
||||||
呼び出しは、
|
呼び出しは、
|
||||||
|
@ -142,11 +143,11 @@ recv
|
||||||
.Pp
|
.Pp
|
||||||
.Bd -literal
|
.Bd -literal
|
||||||
struct msghdr {
|
struct msghdr {
|
||||||
caddr_t msg_name; /* オプションのアドレス */
|
caddr_t msg_name; /* アドレス(オプション) */
|
||||||
u_int msg_namelen; /* アドレスのサイズ */
|
u_int msg_namelen; /* アドレスのサイズ */
|
||||||
struct iovec *msg_iov; /* スキャッタ/ギャザー配列 */
|
struct iovec *msg_iov; /* スキャッタ/ギャザー配列 */
|
||||||
u_int msg_iovlen; /* msg_iov の要素数 */
|
u_int msg_iovlen; /* msg_iov の要素数 */
|
||||||
caddr_t msg_control; /* 補助データ、後述。 */
|
caddr_t msg_control; /* 補助データ、後述 */
|
||||||
u_int msg_controllen; /* 補助データのバッファ長 */
|
u_int msg_controllen; /* 補助データのバッファ長 */
|
||||||
int msg_flags; /* 受信されたメッセージ上のフラグ */
|
int msg_flags; /* 受信されたメッセージ上のフラグ */
|
||||||
};
|
};
|
||||||
|
@ -157,7 +158,7 @@ struct msghdr {
|
||||||
と
|
と
|
||||||
.Fa msg_namelen
|
.Fa msg_namelen
|
||||||
は、ソケットが接続されていない場合に、宛先アドレスを指定します。
|
は、ソケットが接続されていない場合に、宛先アドレスを指定します。
|
||||||
名前が望まれない場合や必要でない場合、
|
名前を要求しない場合や必要でない場合、
|
||||||
.Fa msg_name
|
.Fa msg_name
|
||||||
は NULL ポインタとして指定できます。
|
は NULL ポインタとして指定できます。
|
||||||
.Fa msg_iov
|
.Fa msg_iov
|
||||||
|
@ -165,11 +166,11 @@ struct msghdr {
|
||||||
.Fa msg_iovlen
|
.Fa msg_iovlen
|
||||||
は
|
は
|
||||||
.Xr read 2
|
.Xr read 2
|
||||||
で説明されているようにスキャッタ/ギャザの場所を記述します。
|
で説明されているようにスキャッタ/ギャザーの場所を記述します。
|
||||||
.Fa msg_control
|
.Fa msg_control
|
||||||
は、長さが
|
は、長さが
|
||||||
.Fa msg_controllen
|
.Fa msg_controllen
|
||||||
で、他のプロトコル制御に関連するメッセージまたはその他の
|
の、他のプロトコル制御に関連するメッセージまたはその他の
|
||||||
各種補助データ用のバッファを指しています。メッセージは次の形式です。
|
各種補助データ用のバッファを指しています。メッセージは次の形式です。
|
||||||
.Bd -literal
|
.Bd -literal
|
||||||
struct cmsghdr {
|
struct cmsghdr {
|
||||||
|
@ -186,7 +187,7 @@ struct cmsghdr {
|
||||||
呼び出しの直後に、データバッファを伴わずに recvmsg を要求して、
|
呼び出しの直後に、データバッファを伴わずに recvmsg を要求して、
|
||||||
ユーザ接続要求を得ることができるでしょう。
|
ユーザ接続要求を得ることができるでしょう。
|
||||||
.Pp
|
.Pp
|
||||||
開いたファイル記述子はこれで
|
オープンされたファイル記述子はこれで
|
||||||
.Dv AF_UNIX
|
.Dv AF_UNIX
|
||||||
ドメインソケット用の補助データとして引き渡され、その際、
|
ドメインソケット用の補助データとして引き渡され、その際、
|
||||||
.Fa cmsg_level
|
.Fa cmsg_level
|
||||||
|
@ -201,7 +202,7 @@ struct cmsghdr {
|
||||||
.Dv SCM_CREDS
|
.Dv SCM_CREDS
|
||||||
の
|
の
|
||||||
.Fa cmsg_type
|
.Fa cmsg_type
|
||||||
を使用して、プロセスのクレデンシャルを
|
を使用して、プロセスの認証情報を
|
||||||
.Dv AF_UNIX
|
.Dv AF_UNIX
|
||||||
ドメインソケット用の補助データとして
|
ドメインソケット用の補助データとして
|
||||||
渡すこともできます。このケースでは、
|
渡すこともできます。このケースでは、
|
||||||
|
@ -224,13 +225,13 @@ struct cmsgcred {
|
||||||
};
|
};
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
カーネルは送信プロセスのクレデンシャル情報を記入し、それを受信側へ配信します。
|
カーネルは送信プロセスの認証情報を記入し、それを受信側へ配信します。
|
||||||
.Pp
|
.Pp
|
||||||
.Fa msg_flags
|
.Fa msg_flags
|
||||||
フィールドは受信済みメッセージに従って戻り時に設定されます。
|
フィールドは受信済みメッセージに従って戻り時に設定されます。
|
||||||
.Dv MSG_EOR
|
.Dv MSG_EOR
|
||||||
はレコードの終了を示します: 返されたデータがレコードを完了しました (一般には、
|
は end-of-record、つまり返されたデータでレコードが
|
||||||
タイプ
|
完結していることを示します (一般には、タイプ
|
||||||
.Dv SOCK_SEQPACKET
|
.Dv SOCK_SEQPACKET
|
||||||
のソケットとともに使用されます)。
|
のソケットとともに使用されます)。
|
||||||
.Dv MSG_TRUNC
|
.Dv MSG_TRUNC
|
||||||
|
@ -252,7 +253,7 @@ struct cmsgcred {
|
||||||
.Fa s
|
.Fa s
|
||||||
が有効な記述子ではありません。
|
が有効な記述子ではありません。
|
||||||
.It Bq Er ENOTCONN
|
.It Bq Er ENOTCONN
|
||||||
ソケットは接続指向プロトコルと関係付けられていますが、接続されていません
|
ソケットは接続指向プロトコルと結び付けられていますが、接続されていません
|
||||||
.Pf ( Xr connect 2
|
.Pf ( Xr connect 2
|
||||||
と
|
と
|
||||||
.Xr accept 2
|
.Xr accept 2
|
||||||
|
@ -262,12 +263,12 @@ struct cmsgcred {
|
||||||
.Fa s
|
.Fa s
|
||||||
はソケットを参照していません。
|
はソケットを参照していません。
|
||||||
.It Bq Er EAGAIN
|
.It Bq Er EAGAIN
|
||||||
ソケットはノンブロッキングとマークされており、
|
ソケットが非ブロッキングとマークされているとき、
|
||||||
受信操作はブロックするでしょう。
|
受信操作でブロックしました。
|
||||||
あるいは、受信時間切れが設定されていて、
|
あるいは、受信タイムアウトが設定されていて、
|
||||||
データが受信される前に時間切れになりました。
|
データが受信される前にタイムアウトになりました。
|
||||||
.It Bq Er EINTR
|
.It Bq Er EINTR
|
||||||
データが得られるようになる前にシグナルの配信によって受信は割込まれました。
|
データが受信可能になる前に、受信がシグナルによって割込まれました。
|
||||||
.It Bq Er EFAULT
|
.It Bq Er EFAULT
|
||||||
受信バッファポインタが、プロセスに割り当てられたアドレス空間の
|
受信バッファポインタが、プロセスに割り当てられたアドレス空間の
|
||||||
範囲外を指しています。
|
範囲外を指しています。
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
.Fa to
|
.Fa to
|
||||||
に変更します。
|
に変更します。
|
||||||
.Fa to
|
.Fa to
|
||||||
が存在する場合は、先に削除します。
|
がすでに存在する場合は、先にこれを削除します。
|
||||||
.Fa from
|
.Fa from
|
||||||
と
|
と
|
||||||
.Fa to
|
.Fa to
|
||||||
|
@ -66,8 +66,9 @@
|
||||||
のインスタンスが必ず存在することを保証します。
|
のインスタンスが必ず存在することを保証します。
|
||||||
.Pp
|
.Pp
|
||||||
.Fa from
|
.Fa from
|
||||||
の最終構成要素がシンボリックリンクの場合、指しているファイルまたは
|
の最後の構成要素がシンボリックリンクの場合、それが指している
|
||||||
ディレクトリではなく、そのシンボリックリンクの名前を変更します。
|
ファイルまたはディレクトリではなく、
|
||||||
|
そのシンボリックリンクの名前が変更されます。
|
||||||
.\".Sh CAVEAT
|
.\".Sh CAVEAT
|
||||||
.\"The system can deadlock if a loop in the file system graph is present.
|
.\"The system can deadlock if a loop in the file system graph is present.
|
||||||
.\"This loop takes the form of an entry in directory
|
.\"This loop takes the form of an entry in directory
|
||||||
|
@ -97,12 +98,12 @@
|
||||||
.Sh 戻り値
|
.Sh 戻り値
|
||||||
操作が正常に完了すると値 0 が返されます。そうでない場合、
|
操作が正常に完了すると値 0 が返されます。そうでない場合、
|
||||||
.Fn rename
|
.Fn rename
|
||||||
は -1 を返し、グローバル変数
|
は -1 を返し、エラーを示すためにグローバル変数
|
||||||
.Va errno
|
.Va errno
|
||||||
は失敗の理由を示します。
|
が設定されます。
|
||||||
.Sh エラー
|
.Sh エラー
|
||||||
.Fn rename
|
.Fn rename
|
||||||
は次の場合、処理に失敗し、いずれの引数ファイルも影響を受けません。
|
は次の場合に失敗し、いずれの引数ファイルも影響を受けません。
|
||||||
.Bl -tag -width Er
|
.Bl -tag -width Er
|
||||||
.It Bq Er ENAMETOOLONG
|
.It Bq Er ENAMETOOLONG
|
||||||
いずれかのパス名の構成要素が 255 文字を越えているか、またはいずれかの
|
いずれかのパス名の構成要素が 255 文字を越えているか、またはいずれかの
|
||||||
|
@ -113,10 +114,10 @@
|
||||||
.Fa to
|
.Fa to
|
||||||
の前置パス名が存在しません。
|
の前置パス名が存在しません。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
いずれかの前置パス名の構成要素について検索許可が拒否されています。
|
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
要求されたリンクは、書込み許可を拒否するモードの
|
指定されたリンクは、書込みが許可されていない
|
||||||
ディレクトリに書込みすることを要求しています。
|
ディレクトリへの書込みを要求しています。
|
||||||
.It Bq Er EPERM
|
.It Bq Er EPERM
|
||||||
.Fa from
|
.Fa from
|
||||||
ファイルを含むディレクトリにスティッキービットが設定されており、
|
ファイルを含むディレクトリにスティッキービットが設定されており、
|
||||||
|
@ -134,7 +135,7 @@
|
||||||
.It Bq Er ELOOP
|
.It Bq Er ELOOP
|
||||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||||
.It Bq Er ENOTDIR
|
.It Bq Er ENOTDIR
|
||||||
いずれかの前置パス名の構成要素がディレクトリではありません。
|
パスの構成要素中にディレクトリ以外のものが含まれています。
|
||||||
.It Bq Er ENOTDIR
|
.It Bq Er ENOTDIR
|
||||||
.Fa from
|
.Fa from
|
||||||
はディレクトリですが、
|
はディレクトリですが、
|
||||||
|
@ -155,16 +156,16 @@
|
||||||
返らないことに注意してください。
|
返らないことに注意してください。
|
||||||
.It Bq Er ENOSPC
|
.It Bq Er ENOSPC
|
||||||
ディレクトリを格納しているファイルシステム上の空間が枯渇したため、
|
ディレクトリを格納しているファイルシステム上の空間が枯渇したため、
|
||||||
新しい名前を入れるエントリが置かれるディレクトリを拡張できません。
|
新しい名前のためのエントリを置くディレクトリを拡張できません。
|
||||||
.It Bq Er EDQUOT
|
.It Bq Er EDQUOT
|
||||||
ディレクトリを格納しているファイルシステム上のディスクブロックのユーザの
|
ディレクトリを格納しているファイルシステム上のディスクブロックのユーザの
|
||||||
クォータが枯渇したため、
|
クォータが枯渇したため、
|
||||||
新しい名前を入れるエントリが置かれるディレクトリを拡張できません。
|
新しい名前のためのエントリを置くディレクトリを拡張できません。
|
||||||
.It Bq Er EIO
|
.It Bq Er EIO
|
||||||
ディレクトリエントリを作成または更新している間に入出力エラーが発生しました。
|
ディレクトリエントリを作成または更新している間に入出力エラーが発生しました。
|
||||||
.It Bq Er EROFS
|
.It Bq Er EROFS
|
||||||
要求されたリンクは、読取り専用ファイルシステム上のディレクトリに
|
指定されたリンクは、読取り専用ファイルシステム上のディレクトリへの
|
||||||
書込みすることを要求しています。
|
書込みを要求しています。
|
||||||
.It Bq Er EFAULT
|
.It Bq Er EFAULT
|
||||||
.Em path
|
.Em path
|
||||||
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。
|
||||||
|
|
|
@ -50,27 +50,26 @@
|
||||||
.Fn revoke
|
.Fn revoke
|
||||||
関数は、
|
関数は、
|
||||||
.Fa path
|
.Fa path
|
||||||
によって指定されたファイルについて、システム内の現在の開いているすべての
|
によって指定されたファイルの、システム内に現在オープンされているすべての
|
||||||
ファイル記述子を無効にします。
|
ファイル記述子を無効にします。
|
||||||
そのような記述子についての後続の操作は、
|
そのような記述子についての後続の操作は全て失敗します。ただし、
|
||||||
解除されたキャラクタ型デバイスファイルからの
|
キャラクタ型デバイスファイルへの
|
||||||
.Fn read
|
.Fn read
|
||||||
がカウント 0 (ファイルの終了) を返して、後続する
|
がカウント 0 (ファイルの終了) を返すのと、
|
||||||
.Fn close
|
.Fn close
|
||||||
呼び出しが成功する場合を例外として、
|
呼び出しが成功するのは例外です。
|
||||||
処理を失敗します。
|
指定されたファイルが
|
||||||
ただし、ファイルが開かれたデバイスについての特殊ファイルである場合、
|
あるデバイスについてのオープンされた特殊ファイルであった場合、
|
||||||
デバイスを閉じる関数は、ファイルへのすべての開かれていた参照が
|
そのファイルへのすべての参照がクローズされたかのように、
|
||||||
閉じられたものであったかのように呼び出されます。
|
デバイスをクローズする関数が呼び出されます。
|
||||||
.Pp
|
.Pp
|
||||||
ファイルへのアクセスはその所有者または
|
ファイルへのアクセスはその所有者または
|
||||||
スーパユーザによってだけ無効にされます。
|
スーパユーザによってだけ無効にされます。
|
||||||
.Fn revoke
|
.Fn revoke
|
||||||
関数は現時点ではブロック型およびキャラクタ型特殊ファイルについてだけ
|
関数は現時点ではブロック型およびキャラクタ型特殊ファイルについてだけ
|
||||||
サポートされています。
|
サポートされています。
|
||||||
これは通常、端末の前の使用者によるアクセスを防止し、
|
これは通常、新しいログインセッション用に端末デバイスを準備するとき、
|
||||||
新しいログインセッション用に端末デバイスを準備
|
以前の端末使用者によるアクセスを防止するために使用されます。
|
||||||
するのに使用されます。
|
|
||||||
.Sh 戻り値
|
.Sh 戻り値
|
||||||
値 0 は呼び出しが正常に完了したことを示します。
|
値 0 は呼び出しが正常に完了したことを示します。
|
||||||
戻り値 -1 はエラーが起こったことを示し、理由を示すために
|
戻り値 -1 はエラーが起こったことを示し、理由を示すために
|
||||||
|
@ -85,9 +84,9 @@
|
||||||
パス名の構成要素が 255 文字を越えているか、
|
パス名の構成要素が 255 文字を越えているか、
|
||||||
またはパス名全体が 1024 文字を越えています。
|
またはパス名全体が 1024 文字を越えています。
|
||||||
.It Bq Er ENOENT
|
.It Bq Er ENOENT
|
||||||
指定されたファイルまたはパス名の構成要素が存在しません。
|
指定されたファイルまたはパス名が存在しません。
|
||||||
.It Bq Er EACCES
|
.It Bq Er EACCES
|
||||||
前置パス名の構成要素について検索許可が拒否されています。
|
指定されたパスには、検索が許可されていないディレクトリが含まれています。
|
||||||
.It Bq Er ELOOP
|
.It Bq Er ELOOP
|
||||||
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
|
||||||
.It Bq Er EFAULT
|
.It Bq Er EFAULT
|
||||||
|
|
Loading…
Reference in a new issue