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()
используется переменными окружения, указанными пользователем.
Некоторые возвращаемые значения могут быть очень большими:
размер их может превышать зарезервированную для них область памяти.