Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all 

名前
sysconf - 動作中に設定情報を取得する
書式
#include <unistd.h> long sysconf(int name);
説明
POSIX では、アプリケーションがコンパイル時や実行時に、 特定のオプションがサポートされているかや、 設定可 能な特定の定数や制限がどんな値かをテストすることができる。 コンパイル時に行うには、 <unistd.h> と <limits.h> の両方もしくは一方をインクルードし、 特定のマクロの値を 確認する。 実行時には、ここで説明する関数 sysconf() を使って数値を問い合わせることができる。 ファイルが存在するファ イルシステムに関する数値は、 fpathconf(3) と pathconf(3) を使って確認できる。 文字列の値は confstr(3) を使って確認できる。 これらの関数で取得される値は設定可能なシステム定数である。 これらはプロセスの生存期間の間は変化しない。 オプションを確認できるように、たいていは <unistd.h> で定数 _POSIX_FOO が定義されている。 定義されていない ときは、実行時に問い合わせを行う必要がある。 その値が -1 に定義されているときは、そのオプションはサポート されていない。 0 に定義されているときは、関連する関数やヘッダファイルが存在するが、 どの程度サポートされ ているかは実行時に確認しなければならない。 -1 でも 0 でもない値に定義されているときは、そのオプションがサ ポート されている。通常は、そのオプションについて記載した POSIX の改訂年月 を示す値になっている (例えば 200112L)。 glibc では 1 が設定されていると、そのオプションはサポートされているが、 POSIX の改訂版がまだ発 行されていないことを示す。 sysconf() の引き数には _SC_FOO を指定する。 オプションのリストについては posixoptions(7) を参照のこと。 変数や制限を確認できるように、たいていは、 <limits.h> で定数 _FOO が、 <unistd.h> で _POSIX_FOO が定義さ れている。 制限が規定されていない場合は定数は定義されない。 定数が定義されているときには、その定数は保証 できる値であり、 実際にはもっと大きな値がサポートされていることもある。 アプリケーションがシステム毎に変 化する値を利用したい場合には、 sysconf() を呼び出すことで実現できる。 sysconf() の引き数には _SC_FOO を 指定する。 POSIX.1 変数 変数名、その値を取得するのに使われる sysconf() のパラメータ名、簡単な説明を以下に示す。 まず POSIX.1 互換の変数を示す。 ARG_MAX - _SC_ARG_MAX exec(3) 関数群の引き数の最大長。 _POSIX_ARG_MAX (4096) 未満であってはならない。 CHILD_MAX - _SC_CHILD_MAX ユーザID あたりの同時に存在できるプロセスの最大数。 _POSIX_CHILD_MAX (25) 未満であってはならない。 HOST_NAME_MAX - _SC_HOST_NAME_MAX gethostname(2) で返されるホスト名の最大長。末尾の NULL バイトは長さに含まれない。 _POSIX_HOST_NAME_MAX (255) 未満であってはならない。 LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX ログイン名の長さの最大値。末尾の NULL バイトも長さに含まれる。 _POSIX_LOGIN_NAME_MAX (9) 未満で あってはならない。 clock ticks - _SC_CLK_TCK 1秒あたりのクロックティック数。 対応する変数は廃止された。この変数は当然ながら CLK_TCK と呼ばれて いた。 (注意: マクロ CLOCKS_PER_SEC からは情報は得られない: この値は 1000000 でなければならない) OPEN_MAX - _SC_OPEN_MAX 一つのプロセスが同時にオープンできるファイル数の上限。 _POSIX_OPEN_MAX (20) 未満であってはならな い。 PAGESIZE - _SC_PAGESIZE バイト単位でのページサイズ。 1 より小さくなってはならない。 (この代わりに PAGE_SIZE を使うシステム もある) RE_DUP_MAX - _SC_RE_DUP_MAX regexec(3) と regcomp(3) で許容されている BRE (Basic Regular Expression; 基本正規表現) の繰り返 し出現回数の最大値。 _POSIX2_RE_DUP_MAX (255) 未満であってはならない。 STREAM_MAX - _SC_STREAM_MAX 一つのプロセスが同時にオープンできるストリーム数の上限。 定義されていた場合には、この値は標準 C マ クロの FOPEN_MAX と同じである。 _POSIX_STREAM_MAX (8) 未満であってはならない。 SYMLOOP_MAX - _SC_SYMLOOP_MAX パス名の解決時に現れてもよいシンボリックリンクの最大数。 この数を超えると、パス名解決時に ELOOP が 返される。 _POSIX_SYMLOOP_MAX (8) 未満であってはならない。 TTY_NAME_MAX - _SC_TTY_NAME_MAX 端末デバイス名の最大長。長さには末尾の NULL バイトも含まれる。 _POSIX_TTY_NAME_MAX (9) 未満であっ てはならない。 TZNAME_MAX - _SC_TZNAME_MAX タイムゾーン名として使えるバイト数の最大値。 _POSIX_TZNAME_MAX (6) 未満であってはならない。 _POSIX_VERSION - _SC_VERSION POSIX.1 標準が承認された年月。 YYYYMML という書式である。 199009L という値は、1990年 9月 改訂であ ることを示す。 POSIX.2 変数 次に、POSIX.2 の値を示す。 これらは各ユーティリティに対する制限を指定する。 BC_BASE_MAX - _SC_BC_BASE_MAX bc(1) ユーティリティで許容される obase の最大値。 BC_DIM_MAX - _SC_BC_DIM_MAX bc(1) で許容される一つの配列中の要素数の最大値。 BC_SCALE_MAX - _SC_BC_SCALE_MAX bc(1) で許される scale の最大値。 BC_STRING_MAX - _SC_BC_STRING_MAX bc(1) で許容される文字列の最大長。 COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX ロケール定義ファイル中の LC_COLLATE order キーワードのエントリに割り当て可能な重みの最大値。 EXPR_NEST_MAX - _SC_EXPR_NEST_MAX expr(1) において、括弧で入れ子にできる式の最大数。 LINE_MAX - _SC_LINE_MAX ユーティリティの入力行の最大長。標準入力だけでなく、ファイルからの入力にも 適用される。長さには行 の末尾の改行文字も含まれる。 RE_DUP_MAX - _SC_RE_DUP_MAX 正規表現で区間表記 (interval notation) \{m,n\} が使用されたときに許容される繰り返し出現回数の最大 値。 POSIX2_VERSION - _SC_2_VERSION POSIX.2 標準のバージョン。YYYYMML という書式で表記される。 POSIX2_C_DEV - _SC_2_C_DEV POSIX.2 の C 言語開発機能がサポートされているかを示す。 POSIX2_FORT_DEV - _SC_2_FORT_DEV POSIX.2 の FORTRAN 開発ユーティリティがサポートされているかを示す。 POSIX2_FORT_RUN - _SC_2_FORT_RUN POSIX.2 の FORTRAN ランタイムユーティリティがサポートされているかを示す。 _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF localedef(1) を使った、POSIX.2 のロケールの作成をサポートしているかを示す。 POSIX2_SW_DEV - _SC_2_SW_DEV POSIX.2 ソフトウェア開発ユーティリティオプションがサポートされているかを示す。 以下の値も存在するが、標準には含まれていない。 - _SC_PHYS_PAGES 物理メモリのページ数。 この値と _SC_PAGESIZE 値の積は桁溢れする可能性があるので注意すること。 - _SC_AVPHYS_PAGES 現在利用可能な物理メモリのページ数。 - _SC_NPROCESSORS_CONF 設定されたプロセッサ数。 - _SC_NPROCESSORS_ONLN 現在オンラインの (利用可能な) プロセッサ数。
返り値
name が不正な場合、-1 が返され、 errno に EINVAL が設定される。 それ以外の場合、システムリソースの値が返 り値として返され、 errno は変更されない。問い合わせがオプションについてであれば、 そのオプションが利用で きるときは正の値が返され、 利用できないときは -1 が返される。問い合わせが 制限について場合は、制限が設定 されていないときに -1 が返される。
準拠
POSIX.1-2001.
バグ
ARG_MAX を使うのは難しい、なぜなら、 exec(3) の引き数領域 (argument space) のうちどれくらいが ユーザの環 境変数によって使われるかは分からないからである。 いくつかの返り値はとても大きくなることがある。これらを使って メモリの割り当てを行うのは適当ではない。
関連項目
bc(1), expr(1), getconf(1), locale(1), fpathconf(3), pathconf(3), posixoptions(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告 に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。