.\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)pathconf.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/pathconf.2,v 1.4.2.6 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt PATHCONF 2 .Os .Sh 名称 .Nm pathconf , .Nm fpathconf .Nd 構成可能なパス名変数を取得する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft long .Fn pathconf "const char *path" "int name" .Ft long .Fn fpathconf "int fd" "int name" .Sh 解説 .Fn pathconf 関数と .Fn fpathconf 関数は、構成可能なシステム限界の現在値、またはパス名や ファイル記述子に対応するオプション変数を アプリケーションが判定する方法を提供します。 .Pp .Fn pathconf の場合、 .Fa path 引数はファイルまたはディレクトリの名前です。 .Fn fpathconf の場合、 .Fa fd 引数はオープンファイルの記述子です。 .Fa name 引数は、照会するシステム変数を指定します。 それぞれの名前に関するシンボリック定数はインクルードファイル .Li にあります。 .Pp 利用可能な値は次のとおりです。 .Pp .Bl -tag -width 6n .Pp .It Li _PC_LINK_MAX 最大のファイルリンクカウント。 .It Li _PC_MAX_CANON 端末の標準モード入力待ち行列の最大バイト数。 .It Li _PC_MAX_INPUT 端末入力待ち行列内空間で利用できる最大バイト数の最小値。 .It Li _PC_NAME_MAX ファイル名の最大バイト数。 .It Li _PC_PATH_MAX パス名の最大バイト数。 .It Li _PC_PIPE_BUF パイプに自動的に書込まれる最大バイト数。 .It Li _PC_CHOWN_RESTRICTED .Xr chown 2 システムコールを実行するのに、適切な特権が必要な場合は 1 を 返し、そうでない場合は 0 を返します。 .It Li _PC_NO_TRUNC KERN_NAME_MAX より長いファイル名が切り捨てられる場合は 1 を返します。 .It Li _PC_VDISABLE 端末制御文字を無効にするための値を返します。 .El .Sh 戻り値 .Fn pathconf または .Fn fpathconf の呼び出しが正常に完了しない場合は -1 が返され、 .Va errno が適切な値に設定されます。 変数に結び付けられた機能がシステム内に限界を持たないとき、 -1 が返され、 .Va errno は修正されません。 それ以外の場合、現在の変数値が返されます。 .Sh エラー 次の条件のどれかが起きた場合、 .Fn pathconf 関数と .Fn fpathconf 関数は -1 を返し、 .Va errno に対応する値を設定します。 .Bl -tag -width Er .It Bq Er EINVAL .Fa name 引数の値が無効です。 .It Bq Er EINVAL このファイルとこの変数との結び付きは、実装されていません。 .El .Pp .Fn pathconf は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Pp .Bl -tag -width Er .Fn fpathconf は次の場合に失敗します。 .It Bq Er EBADF .Fa fd は有効なオープンファイル記述子ではありません。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr sysctl 3 .Sh 歴史 .Fn pathconf 関数と .Fn fpathconf 関数は .Bx 4.4 ではじめて登場しました。