sysconf()

Вернуть значение системных лимитированных характеристик

Прототип:

#include <unistd.h>
#include <limits.h>
long sysconf( int name );

Аргументы:

name
Имя системного лимита для запроса.

Библиотека:

libc

Описание:

Функция sysconf() возвращает значение конфигурирвемого системного лимита, определяемого аргументом name.

Имена лимитов определены в <confname.h> и включают:

_SC_AIO_PRIO_DELTA_MAX
Максимальная величина, на которую процесс может уменьшить свой приоритет асинхронного ввода-вывода по сравнению с собственным приоритетом планирования.
_SC_ARG_MAX
Максимальная длина в байтах аргументов функций семейства exec*(), включая данные окружения.
_SC_CHILD_MAX
Максимальное число одновременно работающих процессов на каждый реальный идентификатор пользователя (real UID).
_SC_CLK_TCK
Число тиков в секунду, используемое для выражения значения в типе clock_t.
_SC_DELAYTIMER_MAX
Максимальное число переполнений системного таймера, которое может быть выдержано без невозможности его определить.
_SC_GETGR_R_SIZE_MAX
Если определено (не равно -1), характеризует максимальный размер буфера, который нужно предоставить в getgrgid_r() для любой памяти, которую нужно выделить.
_SC_GETPW_R_SIZE_MAX
Если определено (не равно -1), характеризует максимальный размер буфера, который нужно предоставить в getpwent_r(), getpwuid_r(), getspent_r() или getspnam_r() для любой памяти, которую нужно выделить.
_SC_JOB_CONTROL
Если переменная определена, то контроль заданий поддерживается.
_SC_NGROUPS_MAX
Максимальное число доступных дополнительных идентификаторов групп пользователей (GIDs) на процесс.
_SC_OPEN_MAX
Максимальное число открытых в единицу времени файлов в процессе.
_SC_PAGESIZE
_SC_PAGE_SIZE
Размер системной страницы памяти в байтах.
_SC_SAVED_IDS
Если переменная определена, то каждый процесс имеет сохраненный идентификатор пользователя (UID) и сохраненный идентификатор группы (GID).
_SC_SEM_NSEMS_MAX
Максимальное число семафоров в процессе. Функция sysconf() возвращает -1 для демонстрации того, что это значение не определено, поскольку оно применяется одновременно и к именованным и неименованным семафорам. Ядро допускает произвоьное число неименованных семафоров, которые являются объектами синхронизации ядра и их число ограничивается лишь размерами оперативной памяти.
_SC_SIGQUEUE_MAX
Максимальное число необработанных сигналов реального времени, посланных процессу. Фактически является характеристикой размера очереди сигналов.
_SC_THREAD_STACK_MIN
Минимальный размер стека потока.
_SC_TZNAME_MAX
Максимальное количество байт в названии часового пояса. Значение соответствует TZNAME_MAX.
_SC_VERSION
Текущая поддерживаемая версия стандарта POSIX. Значение 198808L соответствует версии стандарта от августа (08) 1988 года, что соответствует моменту одобрения IEEE Standards Board.

Возвращаемое значение:

Значение запрошенного конфигурирвемого системного лимита. Если name не определено, возвращается -1.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <unistd.h>
int main( void )
{
printf( "_SC_ARG_MAX = %ld\n", sysconf( _SC_ARG_MAX ) );
return (EXIT_SUCCESS);
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

confstr(), errno, pathconf()

getconf в Справочнике по Утилитам




Предыдущий раздел: Описание API системной библиотеки