SYSCONF(3)

НАЗВАНИЕ
sysconf - считывает информацию о настройках во время работы системы

СИНТАКСИС
#include <unistd.h>

long sysconf(int name);

ОПИСАНИЕ
sysconf() обеспечивает приложение способом определения системных ограничений или настроек во время работы.

Аналогичный макрос описан в <unistd.h>, но он выдает только неизменяемые величины; если приложению потребуются изменяемые величины, то их может выдать вызов sysconf().

Для получения информации о конкретном файле воспользуйтесь fpathconf() или pathconf().

Ниже приведены значения name. Сначала приведем значения, поддерживаемые POSIX.1:

_SC_ARG_MAX
    максимальная длина аргументов семейства функций exec(); соответствующий макрос - ARG_MAX.

_SC_CHILD_MAX
    количество одновременных процессов для одного идентификатора пользователя; соответствующий макрос - CHILD_MAX.

_SC_CLK_TCK
    количество часовых колебаний (тиков) в секунде; соответствующим макросом было CLK_TCK. Этот макрос уже устарел. (Заметим, что макрос CLOCKS_PER_SEC не имеет никакой информативности: он должен быть равен 1000000.)

_SC_STREAM_MAX
    максимальное количество потоков, открытых для процесса в любой момент времени. Макрос, соответствующий POSIX, - STREAM_MAX, соответствующий макрос в C - FOPEN_MAX.

_SC_TZNAME_MAX
    максимальное количество байтов в названии часового пояса; соответствующий макрос - TZNAME_MAX.

_SC_OPEN_MAX
    максимальное количество файлов, которое может открыть процесс; соответствующий макрос - OPEN_MAX.

_SC_JOB_CONTROL
    указывает на то, что управление заданиями производится в стиле POSIX; соответствующий макрос - _POSIX_JOB_CONTROL.

_SC_SAVED_IDS
    указывает, сохраняет ли процесс идентификатор нового пользователя и идентификатор новой группы пользователей; соответствующий макрос - _POSIX_SAVED_IDS.

_SC_VERSION
    указывает на год и месяц принятия стандарта POSIX.1 в формате ГГГГMML; значение 199009L говорит о сентябре 1990. Соответствующим макросом является _POSIX_VERSION.

Значения POSIX.2:

_SC_BC_BASE_MAX
    максимальное значение obase, принимаемое утилитой bc(1); соответствующий макрос - BC_BASE_MAX.

_SC_BC_DIM_MAX
    указывает на максимальное количество элементов в массиве, устанавливаемое bc(1); соответствующий макрос - BC_DIM_MAX.

_SC_BC_SCALE_MAX
    указывает на максимальное значение scale, ограничиваемое bc(1); соответствующий макрос - BC_SCALE_MAX.

_SC_BC_STRING_MAX
    указывает на максимальную длину строки, обрабатываемой bc(1); соответствующий макрос - BC_STRING_MAX.

_SC_COLL_WEIGHTS_MAX
    максимальное количество единиц веса, которые можно определить в поле order LC_COLLATE файла определений локали; соответствующий макрос - COLL_WEIGHTS_MAX.

_SC_EXPR_NEST_MAX
    указывает на максимальное количество выражений, которые можно разместить в круглых скобках expr(1). Соответствующий макрос - EXPR_NEST_MAX.

_SC_LINE_MAX
    указывает на максимальную длину обрабатываемой входящей строки как стандартного потока, так и файла. Эта длина также включает в себя символ новой строки. Соответствующий макрос - LINE_MAX.

_SC_RE_DUP_MAX
    максимальное количество повторений регулярного выражения при использовании интервалов \{m,n\}. Соответствующий макрос - RE_DUP_MAX.

_SC_2_VERSION
    указывает на дату версии POSIX.2 в формате ГГГГMML. Соответствующий макрос - POSIX2_VERSION.

_SC_2_DEV
    указывает, поддерживаются ли средства разработки языка С стандарта POSIX.2. Соответствующий макрос - POSIX2_C_DEV.

_SC_2_FORT_DEV
    указывает, поддерживаются ли средства разработки языка FORTRAN стандарта POSIX.2. Соответствующий макрос - POSIX2_FORT_RUN.

_SC_2_FORT_RUN
    указывает, поддерживаются ли утилиты рабочего цикла FORTRAN стандарта POSIX.2. Соответствующий макрос - POSIX2_FORT_RUN.

_SC_2_LOCALEDEF
    указывает, поддерживается ли создание локалей стандарта POSIX.2 при помощи localedef(1). Соответствующий макрос - _POSIX2_LOCALEDEF.

_SC_2_SW_DEV
    указывает, поддерживаются ли утилиты разработки программного обеспечения, согласно стандарту POSIX.2. Соответствующий макрос - POSIX2_SW_DEV.

SUSv2 включает в себя:

_SC_PAGESIZE _SC_PAGE_SIZE
    размер страницы (в байтах).

Существуют величины, которые могут оказаться нестандартными.

_SC_PHYS_PAGES
    количество страниц физической памяти. Заметим что, возможно, произведение этой величины и _SC_PAGE_SIZE приведет к появлению "переполнения".

_SC_AVPHYS_PAGES
    количество доступных страниц физической памяти в данный момент.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Если name некорректно, то возвращается -1 и переменная errno устанавливается в EINVAL. Иначе возвращаемое значение является обозначением ресурсов системы, 1 если опция проверки включена, 0 если нет, -1 при ошибках, а переменная errno не изменяется.

СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1.

НАЙДЕННЫЕ ОШИБКИ
Затруднительно использовать ARG_MAX , поскольку не указывается, какое количество места для аргумента exec() используется переменными окружения, указанными пользователем.

Некоторые возвращаемые значения могут быть очень большими: размер их может превышать зарезервированную для них область памяти.

СМ. ТАКЖЕ
bc(1), expr(1), locale(1), fpathconf(3), pathconf(3)