В настоящее время актуальный стандарт - это POSIX 2008 и его дополнение POSIX 1003.13 |
Лекция 10: Опрос характеристик хостов и их использование в приложениях
Разного рода лимиты на количество и размеры заданы в заголовочном файле <limits.h>. Стандарт определяет минимально допустимые значения для подобных лимитов, которые поддерживаются реализациями и предоставляются приложениям.
Мобильные приложения не должны полагаться на какие-то конкретные значения лимитов и требовать больше ресурсов, чем предусмотрено минимально допустимыми значениями.
Перечислим наиболее важные из числа лимитирующих конфигурационных констант. В скобках после имени константы указаны имя минимально допустимого значения и само это значение (если, конечно, они определены в стандарте).
ARG_MAX (_POSIX_ARG_MAX = 4096)
Максимально допустимая длина аргумента функций семейства exec*() (включая данные окружения).
ATEXIT_MAX (32)
Максимально допустимое число функций, которые можно зарегистрировать посредством atexit().
CHARCLASS_NAME_MAX (_POSIX2_CHARCLASS_NAME_MAX = 14)
Максимально допустимое число байт в имени класса символов.
CHILD_MAX (_POSIX_CHILD_MAX = 25)
Максимально допустимое число одновременно существующих процессов с одним реальным идентификатором пользователя.
HOST_NAME_MAX (_POSIX_HOST_NAME_MAX = 255)
Максимально допустимая длина имени хоста (без завершающего нулевого байта).
LINE_MAX (_POSIX2_LINE_MAX = 2048)
Максимально допустимое число байт в строке текстового файла.
LOGIN_NAME_MAX (_POSIX_LOGIN_NAME_MAX = 9)
Максимально допустимая длина входного имени (с учетом завершающего нулевого байта). Таким образом, по соображениям мобильности входное имя должно состоять не более чем из восьми байт.
NGROUPS_MAX (_POSIX_NGROUPS_MAX = 8)
Максимально допустимое число дополнительных групп для процесса.
OPEN_MAX (_POSIX_OPEN_MAX = 20)
Максимально допустимое число файлов, одновременно открытых в одном процессе.
PAGESIZE, PAGE_SIZE (1)
Размер страницы оперативной памяти в байтах.
RE_DUP_MAX (_POSIX2_RE_DUP_MAX = 255)
Максимально допустимое число повторных вхождений регулярного выражения при использовании интервальной нотации \{m,n\}.
STREAM_MAX (_POSIX_STREAM_MAX = 8)
Максимально допустимое число потоков, одновременно открытых в одном процессе.
SYMLOOP_MAX (_POSIX_SYMLOOP_MAX = 8)
Максимально допустимое число символьных ссылок, которые могут быть обработаны в случае разрешения маршрутных имен файлов при отсутствии циклов.
TTY_NAME_MAX (_POSIX_TTY_NAME_MAX = 9)
Максимально допустимая длина имени терминального устройства (с учетом завершающего нулевого байта).
TZNAME_MAX (_POSIX_TZNAME_MAX = 6)