スポンサーリンク

PATHCONF(2) FreeBSD システムコールマニュアル PATHCONF(2)

名称

pathconf, fpathconf − 構成可能なパス名変数を取得する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

long

pathconf(const char *path, int name);

long

fpathconf(int fd, int name);

解説

pathconf() システムコールと fpathconf() システムコールは、構成可能なシス テム限界の現在値、またはパス名やファイル記述子に対応するオプション変数を アプリケーションが判定する方法を提供します。

pathconf() の場合、 path 引数はファイルまたはディレクトリの名前です。 fpathconf() の場合、 fd 引数はオープンファイルの記述子です。 name 引数 は、照会するシステム変数を指定します。それぞれの名前に関するシンボリック 定数はインクルードファイル <unistd.h> にあります。

利用可能な値は次のとおりです:

       _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_PATH_MAX
ACL エントリのファイル毎の最大数。

_PC_CAP_PRESENT
指定されたファイルに対してケーパビリティ状態が設定できる場合は 1 を返し、そうでなければ 0 を返します。

_PC_INF_PRESENT
指定されたファイルに対して情報ラベルが設定できる場合は 1 を返し、 そうでなければ 0 を返します。

_PC_MAC_PRESENT
指定されたファイルに対して強制アクセス制御 (MAC) ラベルが設定でき る場合は 1 を返し、そうでなければ 0 を返します。

戻り値

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]
ファイルシステムに読み書きしている間に入出力エラーが発 生しました。

関連項目

sysctl(3)

歴史

pathconf() システムコールと fpathconf() システムコールは 4.4BSD ではじめ て登場しました。

FreeBSD 10.0 November 4, 2002 FreeBSD 10.0

スポンサーリンク