PATHCONF(2)

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

ライブラリ
libc

書式
<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 を返します。

_PC_NO_TRUNC
    KERN_NAME_MAX より長いファイル名が切り捨てられる場合は 1 を返します。

_PC_VDISABLE
    端末制御文字を無効にするための値を返します。

戻り値
pathconf() または fpathconf() の呼び出しが正常に完了しない場合は -1 が返され、 errno が適切な値に設定されます。 変数に結び付けられた機能がシステム内に限界を持たないとき、 -1 が返され、 errno は修正されません。 それ以外の場合、現在の変数値が返されます。

エラー
次の条件のどれかが起きた場合、 pathconf() 関数と fpathconf() 関数は -1 を返し、 errno に対応する値を設定します。

[EINVAL]
    name 引数の値が無効です。

[EINVAL]
    このファイルとこの変数との結び付きは、実装されていません。

pathconf() は次の場合に失敗します。

[ENOTDIR]
    パスの構成要素中にディレクトリ以外のものが含まれています。

[ENAMETOOLONG]
    パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。

[ENOENT]
    指定されたファイルが存在しません。

[EACCES]
    指定されたパスには、検索が許可されていないディレクトリが含まれています。

[ELOOP]
    パス名を変換するときに検出されたシンボリックリンクが多すぎます。

[EIO]
    ファイルシステムに読み書きしている間に入出力エラーが発生しました。

fpathconf() は次の場合に失敗します。

[EBADF]
    fd は有効なオープンファイル記述子ではありません。

[EIO]
    ファイルシステムに読み書きしている間に入出力エラーが発生しました。

関連項目
sysctl(3)

歴史
pathconf() 関数と fpathconf() 関数は 4.4BSD ではじめて登場しました。