GETDTABLESIZE(2)

ИМЯ
getdtablesize - получить размер таблицы дескрипторов

ОБЗОР
#include <unistd.h>

int getdtablesize(void);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

getdtablesize():
    Начиная с glibc 2.12:
        _BSD_SOURCE ||
            !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
    До glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

ОПИСАНИЕ
getdtablesize() возвращает максимальное количество файлов, которое может быть открыто в процессе, на единицу больше, чем наибольшее возможное значение для дескриптора файла.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Текущее ограничение на количество открытых файлов для процесса.

ОШИБКИ
В Linux, getdtablesize() может вернуть любую ошибку из описанных в getrlimit(2); см. ЗАМЕЧАНИЯ далее.

СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD (функция getdtablesize() впервые появилась в 4.2BSD). Она отсутствует в POSIX.1-2001; переносимые приложения вместо неё должны применять sysconf(_SC_OPEN_MAX).

ЗАМЕЧАНИЯ
getdtablesize() реализуется как библиотечная функция libc. glibc вызывает getrlimit(2) и возвращает текущее значение ограничения RLIMIT_NOFILE или OPEN_MAX, если это не удаётся. Версии libc4 и libc5 возвращают OPEN_MAX (установленное в 256, начиная с Linux 0.98.4).

СМОТРИТЕ ТАКЖЕ
close(2), dup(2), getrlimit(2), open(2)