PATHCONF(2) | FreeBSD System Calls Manual | PATHCONF(2) |
名称
pathconf, lpathconf, fpathconf — 構成可能なパス名変数を取得するライブラリ
Standard C Library (libc, -lc)書式
#include < unistd.h> long
pathconf( const char *path, int name);
long
lpathconf( const char *path, int name);
long
fpathconf( int fd, int name);
解説
pathconf(), lpathconf() と fpathconf() システムコールは、構成可能なシステム限界の現在値、またはパス名やファイル記述子に対応するオプション変数をアプリケーションが判定する方法を提供します。 pathconf() と lpathconf() に関して、 path 引数は、ファイルまたはディレクトリの名前です。 fpathconf() の場合、 fd 引数は、オープンファイルの記述子です。 name 引数は、照会するシステム変数を指定します。それぞれの名前に関するシンボリック定数は、インクルードファイル <unistd.h>
にあります。
lpathconf() システムコールは、指定されたファイルがシンボリックリンクである場合を除いて、 pathconf() に似ています、シンボリックリンクの場合、 lpathconf() は、リンクの情報を返し、一方、 pathconf() は、リンクを参照するファイルの情報を返します。
利用可能な値は、次の通りです:
-
_PC_LINK_MAX
- 最大のファイルリンクカウント。
-
_PC_MAX_CANON
- 端末の標準モード入力待ち行列の最大バイト数。
-
_PC_MAX_INPUT
- 端末入力待ち行列内空間で利用できる最大バイト数の最小値。
-
_PC_NAME_MAX
- ファイル名の最大バイト数。
-
_PC_PATH_MAX
- パス名の最大バイト数。
-
_PC_PIPE_BUF
- パイプに不可分に書き込まれる最大バイト数。
-
_PC_CHOWN_RESTRICTED
- chown(2) システムコールを実行するのに、適切な特権が必要な場合は、 1 を返し、そうでない場合は、0 を返します。全ての場合において IEEE Std 1003.1-2001 (“POSIX.1”) は、適切な特権を要求しますが、この動作は、この規格の前の版ではオプションでした。
-
_PC_NO_TRUNC
- 構成要素が{ NAME_MAX}よりも長いパス名を使用しようとすると[ ENAMETOOLONG]エラーを引き起こす場合は、0 より大きい値を返します。そうでない場合には、このような構成要素は、{ NAME_MAX}に切り詰められます。全ての場合において IEEE Std 1003.1-2001 (“POSIX.1”) は、適切なエラーを要求しますが、この動作は、この規格の前の版ではオプションでした。また、 POSIX に縛られていないファイルシステムは、この動作をサポートしません。
-
_PC_VDISABLE
- 端末制御文字を無効にするための値を返します。
-
_PC_ASYNC_IO
- 非同期 I/O がサポートされている場合は、1 を返し、そうでなければ 0 を返します。
-
_PC_PRIO_IO
- このファイルに対して優先 I/O がサポートされている場合は、1 を返し、そうでなければ 0 を返します。
-
_PC_SYNC_IO
- このファイルに対して同期 I/O がサポートされている場合は、1 を返し、そうでなければ 0 を返します。
-
_PC_ALLOC_SIZE_MIN
- ファイルの一部を格納するために確保される領域の最小バイト数。
-
_PC_FILESIZEBITS
- 最大ファイルサイズを表現するのに必要なビット数。
-
_PC_REC_INCR_XFER_SIZE
- ファイル転送サイズの、 _PC_REC_MIN_XFER_SIZE から _PC_REC_MAX_XFER_SIZE への推奨増加量。
-
_PC_REC_MAX_XFER_SIZE
- 推奨ファイル転送サイズの最大値。
-
_PC_REC_MIN_XFER_SIZE
- 推奨ファイル転送サイズの最小値。
-
_PC_REC_XFER_ALIGN
- ファイル転送バッファの推奨アラインメント。
-
_PC_SYMLINK_MAX
- シンボリックリンクに使われる最大バイト数。
-
_PC_ACL_EXTENDED
- 指定されたファイルに対してアクセス制御リスト (ACL) が設定できる場合は、1 を返し、そうでなければ 0 を返します。
-
_PC_ACL_NFS4
- 指定されたファイルで NFSv4 ACL を設定することができるなら、1 を返し、そうでなければ、0 を返します。
-
_PC_ACL_PATH_MAX
- ACL エントリのファイル毎の最大数。
-
_PC_CAP_PRESENT
- 指定されたファイルに対してケーパビリティ状態が設定できる場合は、1 を返し、そうでなければ 0 を返します。
-
_PC_INF_PRESENT
- 指定されたファイルに対して情報ラベルが設定できる場合は、1 を返し、そうでなければ 0 を返します。
-
_PC_MAC_PRESENT
- 指定されたファイルに対して強制アクセス制御 (MAC) ラベルが設定できる場合は、1 を返し、そうでなければ 0 を返します。
-
_PC_MIN_HOLE_SIZE
- ファイルシステムがホールの報告 ( lseek(2) 参照) をサポートするなら、 pathconf() と fpathconf() は、返された最小のホールのサイズを表す正の数をバイト単位で返します。返されたホールのオフセットは、この同じ値に整列されます。ファイルシステムが最小のホールのサイズを指定しないが、まだホールを報告する、特別な 1 の値が返されます。
戻り値
pathconf() または fpathconf() の呼び出しが正常に完了しない場合は、-1 が返され、 errno が適切な値に設定されます。変数に結び付けられた機能がシステム内に限界を持たないとき、-1 が返され、 errno は、修正されません。それ以外の場合、現在の変数値が返されます。エラー
次の条件のどれかが起きた場合、 pathconf() システムコールと fpathconf() システムコールは、-1 を返し、 errno に対応する値を設定します。- [ EINVAL]
- name 引数の値が無効です。
- [ EINVAL]
- このファイルとこの変数との結び付きは、実装されていません。
pathconf() システムコールは、次の場合に失敗します:
- [ ENOTDIR]
- パスの構成要素中にディレクトリ以外のものが含まれています。
- [ ENAMETOOLONG]
- パス名の構成要素が{ NAME_MAX}の文字数を越えているか (ただし上記の _PC_NO_TRUNC を参照)、またはパス名全体が{ PATH_MAX}の文字数を越えています。
- [ ENOENT]
- 指定されたファイルが存在しません。
- [ EACCES]
- 指定されたパスには、検索が許可されていないディレクトリが含まれています。
- [ ELOOP]
- パス名を変換するときに検出されたシンボリックリンクが多すぎます。
- [ EIO]
- ファイルシステムに読み書きしている間に入出力エラーが発生しました。
fpathconf() システムコールは、次の場合に失敗します:
- [ EBADF]
- fd 引数が有効なオープンファイル記述子ではありません。
- [ EIO]
- ファイルシステムに読み書きしている間に入出力エラーが発生しました。
歴史
pathconf() と fpathconf() システムコールは、 4.4BSD ではじめて登場しました。 lpathconf() システムコールは、 FreeBSD 8.0 ではじめて登場しました。July 7, 2009 | FreeBSD |