.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified Sat Jul 24 17:51:42 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Tue Aug 17 11:42:20 1999 by Ariel Scolnicov (ariels@compugen.co.il) .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 1998 ISHIKAWA Mutsumi, all rights reserved. .\" Translated 1998-06-03, ISHIKAWA Mutsumi .\" Updated 1999-12-08, Kentaro Shirakata .\" Updated 2002-10-16, Kentaro Shirakata .\" Updated 2005-03-15, Akihiro MOTOKI .\" .TH SYSCONF 3 2014\-03\-20 GNU "Linux Programmer's Manual" .SH 名前 sysconf \- 動作中に設定情報を取得する .SH 書式 .nf \fB#include \fP .sp \fBlong sysconf(int \fP\fIname\fP\fB);\fP .fi .SH 説明 POSIX では、アプリケーションがコンパイル時や実行時に、 特定のオプションがサポートされているかや、 設定可能な特定の定数や制限がどんな値かをテストすることができる。 .LP コンパイル時に行うには、 \fI\fP と \fI\fP の両方もしくは一方をインクルードし、 特定のマクロの値を確認する。 .LP 実行時には、ここで説明する関数 \fBsysconf\fP() を使って数値を問い合わせることができる。 ファイルが存在するファイルシステムに関する数値は、 \fBfpathconf\fP(3) と \fBpathconf\fP(3) を使って確認できる。 文字列の値は \fBconfstr\fP(3) を使って確認できる。 .LP .\" except that sysconf(_SC_OPEN_MAX) may change answer after a call .\" to setrlimit( ) which changes the RLIMIT_NOFILE soft limit これらの関数で取得される値は設定可能なシステム定数である。 これらはプロセスの生存期間の間は変化しない。 .LP .\" and 999 to indicate support for options no longer present in the latest .\" standard. (?) オプションを確認できるように、たいていは \fI\fP で定数 \fB_POSIX_FOO\fP が定義されている。 定義されていないときは、実行時に問い合わせを行う必要がある。 その値が \-1 に定義されているときは、そのオプションはサポートされていない。 0 に定義されているときは、関連する関数やヘッダファイルが存在するが、 どの程度サポートされているかは実行時に確認しなければならない。 \-1 でも 0 でもない値に定義されているときは、そのオプションがサポート されている。通常は、そのオプションについて記載した POSIX の改訂年月 を示す値になっている (例えば 200112L)。 glibc では 1 が設定されていると、そのオプションはサポートされているが、 POSIX の改訂版がまだ発行されていないことを示す。 \fBsysconf\fP() の引き数には \fB_SC_FOO\fP を指定する。 オプションのリストについては \fBposixoptions\fP(7) を参照のこと。 .LP 変数や制限を確認できるように、たいていは、 \fI\fP で定数 \fB_FOO\fP が、 \fI\fP で \fB_POSIX_FOO\fP が定義されている。 制限が規定されていない場合は定数は定義されない。 定数が定義されているときには、その定数は保証できる値であり、 実際にはもっと大きな値がサポートされていることもある。 アプリケーションがシステム毎に変化する値を利用したい場合には、 \fBsysconf\fP() を呼び出すことで実現できる。 \fBsysconf\fP() の引き数には \fB_SC_FOO\fP を指定する。 .SS "POSIX.1 変数" 変数名、その値を取得するのに使われる \fBsysconf\fP() のパラメータ名、簡単な説明を以下に示す。 .LP .\" [for the moment: only the things that are unconditionally present] .\" .TP .\" .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX .\" (if _POSIX_ASYNCHRONOUS_IO) .\" Maximum number of I/O operations in a single list I/O call. .\" Must not be less than _POSIX_AIO_LISTIO_MAX. .\" .TP .\" .BR AIO_MAX " - " _SC_AIO_MAX .\" (if _POSIX_ASYNCHRONOUS_IO) .\" Maximum number of outstanding asynchronous I/O operations. .\" Must not be less than _POSIX_AIO_MAX. .\" .TP .\" .BR AIO_PRIO_DELTA_MAX " - " _SC_AIO_PRIO_DELTA_MAX .\" (if _POSIX_ASYNCHRONOUS_IO) .\" The maximum amount by which a process can decrease its .\" asynchronous I/O priority level from its own scheduling priority. .\" Must be nonnegative. まず POSIX.1 互換の変数を示す。 .TP \fBARG_MAX\fP \- \fB_SC_ARG_MAX\fP \fBexec\fP(3) 関数群の引き数の最大長。 \fB_POSIX_ARG_MAX\fP (4096) 未満であってはならない。 .TP \fBCHILD_MAX\fP \- \fB_SC_CHILD_MAX\fP ユーザID あたりの同時に存在できるプロセスの最大数。 \fB_POSIX_CHILD_MAX\fP (25) 未満であってはならない。 .TP \fBHOST_NAME_MAX\fP \- \fB_SC_HOST_NAME_MAX\fP \fBgethostname\fP(2) で返されるホスト名の最大長。末尾のヌルバイトは長さに含まれない。 \fB_POSIX_HOST_NAME_MAX\fP (255) 未満であってはならない。 .TP \fBLOGIN_NAME_MAX\fP \- \fB_SC_LOGIN_NAME_MAX\fP ログイン名の長さの最大値。末尾のヌルバイトも長さに含まれる。 \fB_POSIX_LOGIN_NAME_MAX\fP (9) 未満であってはならない。 .TP clock ticks \- \fB_SC_CLK_TCK\fP 1秒あたりのクロックティック数。 対応する変数は廃止された。この変数は当然ながら \fBCLK_TCK\fP と呼ばれていた。 (注意: マクロ \fBCLOCKS_PER_SEC\fP からは情報は得られない: この値は 1000000 でなければならない) .TP \fBOPEN_MAX\fP \- \fB_SC_OPEN_MAX\fP 一つのプロセスが同時にオープンできるファイル数の上限。 \fB_POSIX_OPEN_MAX\fP (20) 未満であってはならない。 .TP \fBPAGESIZE\fP \- \fB_SC_PAGESIZE\fP バイト単位でのページサイズ。 1 より小さくなってはならない。 (この代わりに PAGE_SIZE を使うシステムもある) .TP \fBRE_DUP_MAX\fP \- \fB_SC_RE_DUP_MAX\fP \fBregexec\fP(3) と \fBregcomp\fP(3) で許容されている BRE (Basic Regular Expression; 基本正規表現) の繰り返し出現回数の最大値。 \fB_POSIX2_RE_DUP_MAX\fP (255) 未満であってはならない。 .TP \fBSTREAM_MAX\fP \- \fB_SC_STREAM_MAX\fP 一つのプロセスが同時にオープンできるストリーム数の上限。 定義されていた場合には、この値は標準 C マクロの \fBFOPEN_MAX\fP と同じである。 \fB_POSIX_STREAM_MAX\fP (8) 未満であってはならない。 .TP \fBSYMLOOP_MAX\fP \- \fB_SC_SYMLOOP_MAX\fP パス名の解決時に現れてもよいシンボリックリンクの最大数。 この数を超えると、パス名解決時に \fBELOOP\fP が返される。 \fB_POSIX_SYMLOOP_MAX\fP (8) 未満であってはならない。 .TP \fBTTY_NAME_MAX\fP \- \fB_SC_TTY_NAME_MAX\fP 端末デバイス名の最大長。長さには末尾のヌルバイトも含まれる。 \fB_POSIX_TTY_NAME_MAX\fP (9) 未満であってはならない。 .TP \fBTZNAME_MAX\fP \- \fB_SC_TZNAME_MAX\fP タイムゾーン名として使えるバイト数の最大値。 \fB_POSIX_TZNAME_MAX\fP (6) 未満であってはならない。 .TP \fB_POSIX_VERSION\fP \- \fB_SC_VERSION\fP POSIX.1 標準が承認された年月。 \fBYYYYMML\fP という書式である。 \fB199009L\fP という値は、1990年 9月 改訂であることを示す。 .SS "POSIX.2 変数" 次に、POSIX.2 の値を示す。 これらは各ユーティリティに対する制限を指定する。 .TP \fBBC_BASE_MAX\fP \- \fB_SC_BC_BASE_MAX\fP \fBbc\fP(1) ユーティリティで許容される \fIobase\fP の最大値。 .TP \fBBC_DIM_MAX\fP \- \fB_SC_BC_DIM_MAX\fP \fBbc\fP(1) で許容される一つの配列中の要素数の最大値。 .TP \fBBC_SCALE_MAX\fP \- \fB_SC_BC_SCALE_MAX\fP \fBbc\fP(1) で許される \fIscale\fP の最大値。 .TP \fBBC_STRING_MAX\fP \- \fB_SC_BC_STRING_MAX\fP \fBbc\fP(1) で許容される文字列の最大長。 .TP \fBCOLL_WEIGHTS_MAX\fP \- \fB_SC_COLL_WEIGHTS_MAX\fP ロケール定義ファイル中の \fBLC_COLLATE order\fP キーワードのエントリに割り当て可能な重みの最大値。 .TP \fBEXPR_NEST_MAX\fP \- \fB_SC_EXPR_NEST_MAX\fP \fBexpr\fP(1) において、括弧で入れ子にできる式の最大数。 .TP \fBLINE_MAX\fP \- \fB_SC_LINE_MAX\fP ユーティリティの入力行の最大長。標準入力だけでなく、ファイルからの入力にも 適用される。長さには行の末尾の改行文字も含まれる。 .TP \fBRE_DUP_MAX\fP \- \fB_SC_RE_DUP_MAX\fP 正規表現で区間表記 (interval notation) \fB\e{m,n\e}\fP が使用されたときに許容される繰り返し出現回数の最大値。 .TP \fBPOSIX2_VERSION\fP \- \fB_SC_2_VERSION\fP POSIX.2 標準のバージョン。YYYYMML という書式で表記される。 .TP \fBPOSIX2_C_DEV\fP \- \fB_SC_2_C_DEV\fP POSIX.2 の C 言語開発機能がサポートされているかを示す。 .TP \fBPOSIX2_FORT_DEV\fP \- \fB_SC_2_FORT_DEV\fP POSIX.2 の FORTRAN 開発ユーティリティがサポートされているかを示す。 .TP \fBPOSIX2_FORT_RUN\fP \- \fB_SC_2_FORT_RUN\fP POSIX.2 の FORTRAN ランタイムユーティリティがサポートされているかを示す。 .TP \fB_POSIX2_LOCALEDEF\fP \- \fB_SC_2_LOCALEDEF\fP \fBlocaledef\fP(1) を使った、POSIX.2 のロケールの作成をサポートしているかを示す。 .TP \fBPOSIX2_SW_DEV\fP \- \fB_SC_2_SW_DEV\fP POSIX.2 ソフトウェア開発ユーティリティオプションがサポートされているかを示す。 .PP 以下の値も存在するが、標準には含まれていない。 .TP \- \fB_SC_PHYS_PAGES\fP 物理メモリのページ数。 この値と \fB_SC_PAGESIZE\fP 値の積は桁溢れする可能性があるので注意すること。 .TP \- \fB_SC_AVPHYS_PAGES\fP 現在利用可能な物理メモリのページ数。 .TP \- \fB_SC_NPROCESSORS_CONF\fP 設定されたプロセッサ数。 .TP \- \fB_SC_NPROCESSORS_ONLN\fP 現在オンラインの (利用可能な) プロセッサ数。 .SH 返り値 \fIname\fP が不正な場合、\-1 が返され、 \fIerrno\fP に \fBEINVAL\fP が設定される。 それ以外の場合、システムリソースの値が返り値として返され、 \fIerrno\fP は変更されない。問い合わせがオプションについてであれば、 そのオプションが利用できるときは正の値が返され、 利用できないときは \-1 が返される。問い合わせが 制限について場合は、制限が設定されていないときに \-1 が返される。 .SH 準拠 POSIX.1\-2001. .SH バグ \fBARG_MAX\fP を使うのは難しい、なぜなら、 \fBexec\fP(3) の引き数領域 (argument space) のうちどれくらいが ユーザの環境変数によって使われるかは分からないからである。 .PP いくつかの返り値はとても大きくなることがある。これらを使って メモリの割り当てを行うのは適当ではない。 .SH 関連項目 \fBbc\fP(1), \fBexpr\fP(1), \fBgetconf\fP(1), \fBlocale\fP(1), \fBconfstr\fP(3), \fBfpathconf\fP(3), \fBpathconf\fP(3), \fBposixoptions\fP(7) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。