標準
標準/拡張機能 |
C/C++ |
依存項目 |
POSIX.1
XPG4
XPG4.2
Single UNIX Specification、バージョン 2
Single UNIX Specification、バージョン 3
|
両方 |
|
形式
#define _POSIX_SOURCE
#include <unistd.h>
long sysconf(int name);
機能説明
構成可能なシステム・オプションの値を判別します。
- int name
-
取得するシステム構成オプションを指定します。name に指定できる値は、unistd.h ヘッダー・ファイルに定義されたシンボルの次のセットのいずれか 1 つ
であり、各シンボルが 1 つのシステム構成オプションに対応しています。
以下は _POSIX_SOURCE が定義されているときに使用可能です。
- _SC_ARG_MAX
- exec 関数で渡すことができる
引数の最大バイト数および環境データ
である ARG_MAX を (sysconf() で戻された値によって定義され
たように) 表示します。
- _SC_CHILD_MAX
- 実ユーザー ID (UID) で同時に実行することができるプロセス
の最大数 CHILD_MAX を (sysconf() で戻された値で
定義されたように) 表示します。
- _SC_CLK_TCK
- time.h ヘッダー・ファイルで定義された CLK_TCK マクロを
表します。クロック・チックの数は秒数です。
- _SC_JOB_CONTROL
- unistd.h ヘッダー・ファイルで定義
できる _POSIX_JOB_CONTROL マクロを表します。これで、一定のジョブ制御操作は、オペレーティング・システムのこの
バージョンによってインプリメントされることが示されます。_POSIX_JOB_CONTROL が定義されると、各種の関数 (例えば
、setpgid()) は、マクロが定義されないときより多くの機能
をもちます。
- _SC_NGROUPS_MAX
- プロセスと関連付けることができる補足グループ ID (GID) の
最大数である NGROUPS_MAX を (sysconf() で戻された値によって
定義されたように) 表示します。
- _SC_OPEN_MAX
- 単一プロセスが一度にオープンできるファイルの最大数
である OPEN_MAX を (sysconf() で戻された値によって
定義されたように) 表示します。
- _SC_SAVED_IDS
- _POSIX_SAVED_IDS マクロを表します。unistd.h ヘッダー・ファイルで定義されることがあり、この POSIX インプリメンテーション
に保管セット UID および保管セット GID があることを示します。
このシンボルは、setuid() や setgid() などの関数の動作に影響を与えます。
- _SC_STREAM_MAX
- _STREAM_MAX マクロを表します。unistd.h ヘッダー・ファイルで定義されることがあり、プロセスで一度に
オープンできるストリームの最大数を示します。
- _SC_THREADS_MAX_NP
- 呼び出し元のプロセスの実行中スレッド、キューに入れられるスレッド、お
よび終了済みの切り離されていないスレッドを含む、pthread_create() で
処理される並行スレッド
の最大数である THREAD_MAX マクロを (sysconf() で戻された値
によって定義されたように) 表示します。
- _SC_THREAD_TASKS_MAX_NP
- 呼び出し元のプロセス内の pthread_create() により処理されるスレッドで、同時に使用中の MVS™ タスクの最大数である THREAD_TASKS_MAX マクロ
を (sysconf() で戻された値で定義されたように) 表示します。
- _SC_TTY_GROUP
- TTYGROUP() 初期設定パラメーターと関連したグループ番号を検索します。
- _SC_TZNAME_MAX
- _TZNAME_MAX マクロを表します。unistd.h ヘッダー・ファイルで定義されることがあり、時間帯名の最大長
を示します。
- _SC_VERSION
- _POSIX_VERSION マクロを表します。unistd.h ヘッダー・ファイルで定義され、システムで標準化
される POSIX.1 標準のバージョンを示します。
さらに _POSIX_SOURCE で公開されたシンボルに加え、_XOPEN_SOURCE が定義されると以下が可視になります。
- _SC_XOPEN_CRYPT
- _XOPEN_CRYPT を表し、インプリメンテーションが X/Open Encryption
Option Group をサポートします。
- _SC_XOPEN_VERSION
- _XOPEN_VERSION を表し、インプリメンテーションが準拠する X/Open Portability Guide のバージョンを示す整数値です。
- _SC_PASS_MAX
-
sysconf() によって戻される値で定義されるように、PASS_MAX を表します。
これは、パスワード、パスチケット、またはパスワード・フレーズに許容される最大
バイト数です。
注:
これは Single UNIX Specification、バージョン 2 のレガシー機能でしたが、
既に廃止され、Single UNIX Specification、バージョン 3 の一部として
サポートされていません。
Single UNIX Specification、バージョン 3 のために
書かれたアプリケーションで、この関数を引き続き使う必要がある場合は、
標準システム・ヘッダーを組み込む前に、フィーチャー・テスト・マクロ _UNIX03_WITHDRAWN を
定義してください。マクロは、Single UNIX Specification、バージョン 3 に移動された
すべてのインターフェースおよびシンボルを公開します。
さらに _XOPEN_SOURCE で公開されたシンボルに加え、_XOPEN_SOURCE_EXTENDED が 1 に定義されると以下が可視になります。
- _SC_PAGE_SIZE
- 現行のページ・サイズ (バイト単位) を戻します。
- _SC_PAGESIZE
- 現行のページ・サイズ (バイト単位) を戻します。
さらに _POSIX_SOURCE で公開されたシンボルに加え、_POSIX_C_SOURCE が 2 に定義されると以下が可視になります。
- _SC_2_C_BIND
- _POSIX2_C_BIND を表し、インプリメンテーションが C 言語バインディング・オプションをサポートします。
- _SC_2_C_DEV
- _POSIX2_C_DEV を表し、インプリメンテーションが C 言語開発ユーティリティー・オプションをサポートします。
- _SC_2_LOCALEDEF
- _POSIX2_LOCALEDEF を表し、インプリメンテーションが localedef ユーティリティーを使用したロケールの作成をサポートします。
- _SC_2_UPE
- _POSIX2_UPE を表し、インプリメンテーションがユーザー移植性ユーティリティー・オプションをサポートします。.
- _SC_2_VERSION
- _POSIX2_VERSION を表し、インプリメンテーションが準拠するシェルおよびユーティリティーのバージョンを示す整数値です。
さらに 2 に定義された _POSIX_C_SOURCE で公開されたシンボルに加え、_POSIX_C_SOURCE が 200112L に定義されると以下が可視になります。
- _SC_HOST_NAME_MAX
- HOST_NAME_MAX を表し、gethostname() 関数から戻されたホスト名の最大長 (終端ヌルは含まない) です。
- _SC_IPV6
- _POSIX_IPV6 を表し、インプリメンテーションが IPv6 オプションをサポートします。
- _SC_LOGIN_NAME_MAX
- LOGIN_NAME_MAX を表し、ログイン名の最大長です。
- _SC_READER_WRITER_LOCKS
- _POSIX_READER_WRITER_LOCKS を表し、インプリメンテーションが読み取り/書き込みロック・オプションをサポートします。スレッド・オプションがサポートされている場合、これは常にゼロよりも大きい値に設定されます。
- _SC_REGEXP
- _POSIX_REGEXP を表し、インプリメンテーションが正規表現処理オプションをサポートします。
- _SC_SHELL
- _POSIX_SHELL を表し、インプリメンテーションが POSIX シェルをサポートします。
- _SC_SYMLOOP_MAX
- SYMLOOP_MAX を表し、ループすることのないパス名の解決で、信頼して全探索できるシンボリック・リンクの最大数。
- _SC_THREAD_ATTR_STACKSIZE
- _POSIX_THREAD_ATTR_STACKSIZE を表し、インプリメンテーションがスレッド・スタック・サイズ属性オプションをサポートします。
- _SC_THREAD_KEYS_MAX
- PTHREAD_KEYS_MAX を表し、プロセスで作成可能なデータ・キーの最大数です。
- _SC_THREAD_PROCESS_SHARED
- _POSIX_THREAD_PROCESS_SHARED を表し、インプリメンテーションがスレッド・プロセス共用同期オプションをサポートします。
- _SC_THREAD_SAFE_FUNCTIONS
- _POSIX_THREAD_SAFE_FUNCTIONS を表し、インプリメンテーションがスレッド・セーフ関数オプションをサポートします。
- _SC_THREAD_STACK_MIN
- PTHREAD_STACK_MIN を表し、スレッド・スタック・ストレージの最小サイズ (バイト) です。
- _SC_THREAD_THREADS_MAX
- PTHREAD_THREADS_MAX を表し、プロセスごとに作成可能なスレッドの最大数です。
- _SC_THREADS
- _POSIX_THREADS を表し、インプリメンテーションがスレッド・オプションをサポートします。
- _SC_TTY_NAME_MAX
- TTY_NAME_MAX を表し、端末装置名の最大長です。
- _SC_V6_ILP32_OFF32
- _POSIX_V6_ILP32_OFF32 を表し、インプリメンテーションが、32 ビット int 型、long 型、ポインター型、および off_t 型の C 言語コンパイル環境を提供します。
- _SC_V6_ILP32_OFFBIG
- _POSIX_V6_ILP32_OFFBIG を表し、インプリメンテーションが、32 ビット int 型、long 型、ポインター型、および少なくとも 64 ビットを使用した off_t 型の C 言語コンパイル環境を提供します。
- _SC_V6_LP64_OFF64
- _POSIX_V6_LP64_OFF64 を表し、インプリメンテーションが、32 ビット int 型、および 64 ビット long 型、ポインター型、および off_t 型の C 言語コンパイル環境を提供します。
- _SC_V6_LPBIG_OFFBIG
- _POSIX_V6_LPBIG_OFFBIG を表し、インプリメンテーションが、少なくとも 32 ビットを使用した int 型、および少なくとも 64 ビットを使用した long 型、ポインター型、および off_t 型の C 言語コンパイル環境を提供します。
- _SC_XOPEN_LEGACY
- _XOPEN_LEGACY を表し、インプリメンテーションがレガシー・オプション・グループをサポートします。
以下のシンボルは、_XOPEN_SOURCE 500 で使用可能です。
- _SC_GETPW_R_SIZE_MAX
- getpwuid_r() および getpwnam_r() データ・バッファーの最大サイズ
- _SC_GETGR_R_SIZE_MAX
- getgrgid_r() および getgrnam_r() データ・バッファーの最大サイズ
戻り値
正常に実行された場合、sysconf() は、指定オプションと関連した値を戻します。
name に対応する変数が存在するが、システムでサポート
されない場合には、sysconf() は -1 を戻しますが、errno の値は変更されません。その他の原因で sysconf() が失敗した場合は、-1 が戻されます。
正常に実行されなかった場合、sysconf() は errno を次のいずれかの
値に設定します。
- エラー・コード
- 説明
- EINVAL
- 引数 name の指定した値は、誤りです。
例
CELEBS61 ⁄* CELEBS61
This example determines the value of ARG_MAX.
*⁄
#define _POSIX_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
main() {
long result;
errno = 0;
puts("examining ARG_MAX limit");
if ((result = sysconf(_SC_ARG_MAX)) == -1)
if (errno == 0)
puts("ARG_MAX is not supported.");
else perror("sysconf() error");
else
printf("ARG_MAX is %ld¥n", result);
}
出力:examining ARG_MAX limit
ARG_MAX is 1048576