Man page - sysconf(3)

Packages contains this manual

Available languages:

en fr pl cs ja ru de

Manual

SYSCONF

名 前
書 式
説 明
POSIX.1 変 数
POSIX.2 変 数
返 り 値
エ ラ ー
属 性
準 拠
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

sysconf - 動 作 中 に 設 定 情 報 を 取 得 す る

書 式

#include <unistd.h>

long sysconf(int name );

説 明

POSIX で は 、 ア プ リ ケ ー シ ョ ン が コ ン パ イ ル 時 や 実 行 時 に 、 特 定 の オ プ シ ョ ン が サ ポ ー ト さ れ て い る か や 、 設 定 可 能 な 特 定 の 定 数 や 制 限 (limits) が ど ん な 値 か を テ ス ト す る こ と が で き る 。

コ ン パ イ ル 時 に 行 う に は 、 <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) で 返 さ れ る ホ ス ト 名 の 最 大 長 。 末 尾 の ヌ ル バ イ ト は 長 さ に 含 ま れ な い 。 _POSIX_HOST_NAME_MAX (255) 未 満 で あ っ て は な ら な い 。

LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX

ロ グ イ ン 名 の 長 さ の 最 大 値 。 末 尾 の ヌ ル バ イ ト も 長 さ に 含 ま れ る 。 _POSIX_LOGIN_NAME_MAX (9) 未 満 で あ っ て は な ら な い 。

NGROUPS_MAX - _SC_NGROUPS_MAX

補 助 グ ル ー プ ID の 最 大 数 。

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 - _SC_PAGE_SIZE

A synonym for PAGESIZE / _SC_PAGESIZE . (Both PAGESIZE and PAGE_SIZE are specified in POSIX.)

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

端 末 デ バ イ ス 名 の 最 大 長 。 長 さ に は 末 尾 の ヌ ル バ イ ト も 含 ま れ る 。 _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

設 定 さ れ た プ ロ セ ッ サ 数 。 get_nprocs_conf (3) も 参 照 。

- _SC_NPROCESSORS_ONLN

現 在 オ ン ラ イ ン の (利 用 可 能 な ) プ ロ セ ッ サ 数 。 get_nprocs_conf (3) も 参 照 。

返 り 値

The return value of sysconf () is one of the following:

*

On error, -1 is returned and errno is set to indicate the cause of the error (for example, EINVAL , indicating that name is invalid).

*

If name corresponds to a maximum or minimum limit, and that limit is indeterminate, -1 is returned and errno is not changed. (To distinguish an indeterminate limit from an error, set errno to zero before the call, and then check whether errno is nonzero when -1 is returned.)

*

If name corresponds to an option, a positive value is returned if the option is supported, and -1 is returned if the option is not supported.

*

Otherwise, the current value of the option or limit is returned. This value will not be more restrictive than the corresponding value that was described to the application in <unistd.h> or <limits.h> when the application was compiled.

エ ラ ー

EINVAL

name が 無 効 で あ る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-18005-1.png

準 拠

POSIX.1-2001, POSIX.1-2008.

バ グ

ARG_MAX を 使 う の は 難 し い 、 な ぜ な ら 、 exec (3) の 引 数 領 域 (argument space) の う ち ど れ く ら い が ユ ー ザ ー の 環 境 変 数 に よ っ て 使 わ れ る か は 分 か ら な い か ら で あ る 。

い く つ か の 返 り 値 は と て も 大 き く な る こ と が あ る 。 こ れ ら を 使 っ て メ モ リ ー の 割 り 当 て を 行 う の は 適 当 で は な い 。

関 連 項 目

bc (1), expr (1), getconf (1), locale (1), confstr (3), fpathconf (3), pathconf (3), posixoptions (7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。