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:
Kazuo Horikawa 2001-03-23 21:32:34 +00:00
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

View file

@ -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 ,

View file

@ -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

View file

@ -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 が返され、
エラーを示すために変数 エラーを示すために変数

View file

@ -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 ,

View file

@ -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

View file

@ -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

View file

@ -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 ,

View file

@ -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 ,

View file

@ -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

View file

@ -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
シンボルテーブルをロードし、システム内の組み込みデバッガを有効にします。 シンボルテーブルをロードし、システム内の組み込みデバッガを有効にします。

View file

@ -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
受信バッファポインタが、プロセスに割り当てられたアドレス空間の 受信バッファポインタが、プロセスに割り当てられたアドレス空間の
範囲外を指しています。 範囲外を指しています。

View file

@ -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
は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 は、プロセスに割り当てられたアドレス空間の範囲外を指しています。

View file

@ -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