.\" 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. .\" .\" @(#)sysconf.3 8.3 (Berkeley) 4/19/94 .\" %FreeBSD: src/lib/libc/gen/sysconf.3,v 1.8.2.6 2001/12/14 18:33:51 ru Exp % .\" .\" $FreeBSD$ .Dd April 19, 1994 .Dt SYSCONF 3 .Os .Sh 名称 .Nm sysconf .Nd コンフィギュレーション可能なシステム変数を取得 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft long .Fn sysconf "int name" .Sh 解説 このインタフェースは、 .St -p1003.1-88 により定義されたものです。 .Xr sysctl 3 を使えば、さらに一層完全なインタフェースを使用することができます。 .Pp .Fn sysconf 関数は、 コンフィギュレーション可能なシステムの制限 (system limit) またはオプション変数の現在の値を、 アプリケーションが調べるための方法を提供します。 引数 .Fa name は、照会するシステム変数を指定します。 それぞれの名前の値に対応するシンボリック定数は、 インクルードファイル .Aq Pa unistd.h の中にあります。 .Pp 使用できる値は次の通りです: .Pp .Bl -tag -width 6n .Pp .It Li _SC_ARG_MAX .Xr execve 2 の引数の最大バイト数。 .It Li _SC_CHILD_MAX 1 ユーザ ID あたりの同時プロセスの最大数。 .It Li _SC_CLK_TCK 1 秒あたりの tick 数で表した統計クロック (statistics clock) の頻度。 .It Li _SC_NGROUPS_Max 追加可能なグループの最大数。 .It Li _SC_OPEN_MAX 1 ユーザ ID 当たりのオープン可能なファイルの最大数。 .It Li _SC_STREAM_MAX 1 つのプロセスが一度にオープンできるストリームの最大数の最小値。 .It Li _SC_TZNAME_MAX 時間帯 (timezone) の名前としてサポートされるタイプの最大数の最小値。 .It Li _SC_JOB_CONTROL このシステムでジョブ制御が利用できるなら 1 を返し、 利用できない場合は \-1 を返します。 .It Li _SC_SAVED_IDS 保存された set-group および保存された set-user ID が 利用できる場合は 1 を返し、そうでない場合は \-1 を返します。 .It Li _SC_VERSION システムが準拠しようと試みる .St -p1003.1 のバージョン。 .It Li _SC_BC_BASE_MAX .Xr bc 1 ユーティリティにおける ibase/obase の最大値。 .It Li _SC_BC_DIM_MAX .Xr bc 1 ユーティリティにおける最大配列サイズ。 .It Li _SC_BC_SCALE_MAX .Xr bc 1 ユーティリティにおける最大スケール値。 .It Li _SC_BC_STRING_MAX .Xr bc 1 ユーティリティにおける最大ストリング長。 .It Li _SC_COLL_WEIGHTS_MAX ロケール定義ファイルにおける LC_COLLATE 順序キーボードのエントリに 割り当てることができる重みの最大数。 .It Li _SC_EXPR_NEST_MAX .Xr expr 1 ユーティリティでの括弧でネストできる式の最大数。 .It Li _SC_LINE_MAX テキスト処理ユーティリティの入力ラインのバイトで表した最大長さ。 .It Li _SC_RE_DUP_MAX インターバル表記を使うときに許される正規表現の繰り返し発生回数の最大数。 .It Li _SC_2_VERSION システムが準拠することを試みる .St -p1003.2 のバージョン。 .It Li _SC_2_C_BIND システムの C 言語開発ファシリティで C 言語構築オプション (C-Language Bindings Option) が サポートされていれば 1 を返し、 サポートされていなければ \-1 を返します。 .It Li _SC_2_C_DEV C 言語開発ユーティリティオプション (C-Language Development Utilities Option) が サポートされていれば 1 を返し、 サポートされていなければ\-1 を返します。 .It Li _SC_2_CHAR_TERM .St -p1003.2 に記述されている全操作が可能な端末タイプが、 最低 1 つサポートされていれば 1 を返し、 そうでなければ \-1 を返します。 .It Li _SC_2_FORT_DEV FORTRAN 開発ユーティリティオプション (FORTRAN Development Utilities Option) が サポートされていれば 1 を返し、 サポートされていなければ \-1 を返します。 .It Li _SC_2_FORT_RUN FORTRAN ランタイムユーティリティオプション (FORTRAN Runtime Utilities Option) が サポートされていれば 1 を返し、 サポートされていなければ \-1 を返します。 .It Li _SC_2_LOCALEDEF ロケールの作成がサポートしていれば 1 を返し、 サポートされていなければ \-1 を返します。 .It Li _SC_2_SW_DEV ソフトウェア開発ユーティリティオプション (Software Development Utilities Option) が サポートされていれば 1 を返し、 サポートされていなければ \-1 を返します。 .It Li _SC_2_UPE ユーザポータビリティユーティリティオプション (User Portability Utilities Option) が サポートされていれば 1 を返し、 サポートされていなければ \-1 を返します。 .El .Sh 戻り値 .Fn sysconf の呼び出しが成功しなかったときは \-1 が返され、 .Va errno が適切な値に設定されます。 そうでないときは、 変数がサポートされていない機能に関連づけられていると \-1 が返され、 .Va errno は修正されません。 それ以外の場合は、現在の変数値が返されます。 .Sh エラー .Fn sysconf 関数が失敗して、ライブラリ関数 .Xr sysctl 3 について記されているエラーのいずれかに対応した .Va errno が設定されることがあります。 さらに、次のようなエラーが報告されることがあります。 .Bl -tag -width Er .It Bq Er EINVAL .Fa name 引数の値が無効です。 .El .Sh 関連項目 .Xr sysctl 3 .Sh バグ _SC_STREAM_MAX の値は最大値の最小値であり、 ANSI C の FOPEN_MAX と同じであることが要求されているので、 戻り値は極めて小さい誤解を招くような値になります。 .Sh 規格 .Fn sysconf の返す値が、呼び出したプロセスが生存している間に変化する 可能性があることを除いては、この関数は .St -p1003.1-88 に準拠しています。 .Sh 歴史 .Fn sysconf 関数は、最初 .Bx 4.4 に現れました。