Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго




Скачать 17.46 Mb.
НазваниеUnix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго
страница8/143
Дата конвертации11.01.2013
Размер17.46 Mb.
ТипДокументы
1   ...   4   5   6   7   8   9   10   11   ...   143
Глава 2. Стандарты и реализации UNIX

2.5.1. Пределы ISO С

Все пределы, которые определены стандартом ISO С, являются пределами времени компиляции. В табл. 2.6 приведены пределы, задаваемые стандар­том языка С и определенные в файле . Эти константы всегда опре­деляются заголовочным файлом и не изменяются. В третьей колонке указа­ны минимально допустимые значения, определяемые стандартом ISO С. Они были выбраны с учетом 16-битной целочисленной арифметики с поразряд­ным дополнением до единицы (one's-complement). В четвертой колонке при­водятся значения для системы Linux, использующей 32-битную целочислен­ную арифметику с поразрядным дополнением до двойки (two's-complement). Обратите внимание на то, что для целочисленных типов без знака не приво­дится минимальное значение, так как оно всегда будет равно 0. В 64-битных системах максимальное значение для типа long соответствует максимально­му значению для типа long long.

Таблица 2.6. Пределы значений целочисленных типов из файла



Имя

Описание

Минимально допустимое значение

Типовое значение

CHAR BIT CHAR_MAX CHAR_MIN SCHAR.MAX

SCHAR_MIN

UCHAR_MAX

Количество бит на символ

Максимальное зна­чение типа char

Минимальное зна­чение типа char

Максимальное зна­чение типа signed char

Минимальное зна­чение типа signed char

Максимальное зна­чение типа un­signed char

8

(см. ниже)

(см. ниже)

127

-127 255

8

127

-128

127

-128 255

INT_MAX INTJIIN UINT.MAX

Максимальное зна­чение типа int

Минимальное зна­чение типа int

Максимальное зна­чение типа unsigned int

32 767

-32 767

65 535

2 147 483 647

-2 147 483 648

4 294 967 295

SHRT_MAX SHRT_MIN

Максимальное зна­чение типа short

Минимальное зна­чение типа sho rt

32 767 -32 767

32 767 -32 768

2.5. Пределы 71



Имя

Описание

Минимально допустимое значение

Типовое значение

USHRT.MAX

Максимальное зна­чение типа unsig­ned short

65 535

65 535

LONG.MAX LONG_MIN ULONG_MAX

Максимальное зна­чение типа long

Минимальное зна­чение типа long

Максимальное зна­чение типа unsig­ned long

2 147 483 647

-2147 483 647

4 294 967 295

2 147 483 647

-2 147 483 648

4 294 967 295

LLONG.MAX LLONG.MIN ULLONG.MAX

Максимальное зна­чение типа long long

Минимальное зна­чение типа long long

Максимальное зна­чение типа unsig­ned long long

9 223 372 036 854 775 807 -9 223 372036 854 775807 18446 744073 709 551615

9 223 372 036 854 775 807 -9 223 372 036 854 775 808 18446 744073 709 551615

MB_LEN_MAX

Максимальное ко­личество байт в многобайтных сим­волах

1

16

Одно из различий между системами, с которым мы столкнемся, состоит в том, как система представляет тип cha r - со знаком или без него. В четвертой колон­ке табл. 2.6 мы видим, что в данной системе тип char представлен как целое со знаком. Значение константы CHAR J1IN эквивалентно SCHAR JIIN, a CHAR_MAX экви­валентно SCHAR_MAX. Если тип char в системе представляется как целое без зна­ка, следовательно, значение CHAR_MIN будет равно 0, a CHAR_MAX равно UCHAR_MAX.

Предельные значения для типов чисел с плавающей точкой определяются в заголовочном файле подобным же образом. Каждый, кто всерьез занимается вычислениями с плавающей точкой, должен ознакомиться с со­держимым этого файла.

Еще одна константа стандарта ISO С, с которой мы встретимся, - это F0PEN_MAX. Она определяет гарантированное системой минимальное количество стан­дартных потоков ввода-вывода, которые могут быть открыты одновременно. Это значение хранится в заголовочном файле и не может быть меньше 8. Согласно стандарту POSIX.1 константа STREAM_MAX, если таковая определена, должна иметь то же самое значение.

В файле стандарт ISO С определяет также константу ТМР_МАХ. Это мак­симальное количество уникальных имен файла, которые могут быть сгенери­рованы функцией tmpnam. Более подробно мы поговорим об этом в разделе 5.13.

72

Глава 2. Стандарты и реализации UNIX

В табл. 2,7 приводятся значения F0PEN_MAX и ТМР_МАХ для всех четырех плат­форм, обсуждаемых в данной книге.

Таблица 2.7. Пределы, определяемые стандартом ISO для различных платформ



Предел

FreeBSD 5.2.1

Linux 2.4.22

Mac OS X 10.3

Solaris 9

F0PEN.MAX ТМР_МАХ

20

308 915 776

16 238 328

20

308 915 776

20 17 576

Стандарт ISO С определяет также константу FILENAME_MAX, но мы избегаем ее исполь­зования, поскольку в некоторых операционных системах ее значение слишком мало для применения на практике.

2.5.2. Пределы POSIX

Стандарт POSIX.1 определяет многочисленные константы, связанные с пре­дельными значениями. К сожалению, это один из самых запутанных аспек­тов POSIX.1. Хотя POSIX.1 и определяет огромное количество констант и предельных значений, тем не менее мы сосредоточим свое внимание лишь на тех из них, которые затрагивают базовые интерфейсы POSIX.1. Эти пре­делы и константы подразделяются на следующие категории:

  1. Неизменяемые минимальные значения: 19 констант, список которых приводится в табл. 2.8.

  1. Неизменяемое значение SSIZEJ1AX.

  1. Значения, которые могут быть увеличены во время выполнения: CHAR-CLASS_NAME_MAX, COLL_WEIGHTS_MAX, LINE.MAX, NGROUPS_MAX и RE_DUP_MAX.

  2. Значения, не изменяемые во время выполнения, возможно неопределен­ные: ARGJ1AX, CHILD_MAX, HOST_NAME_MAX, LOGIN_NAME_MAX, OPEN.MAX, PAGESIZE, RE.DUP.MAX, STREAM_MAX, SYMLOOP.MAX, TTY_NAME_MAX и TZNAME_MAX.

  3. Изменяемые значения, связанные с размером строки пути, возможно не­определенные: FILESIZEBITS, LINK_MAX, MAX_CAN0N, MAXJENPUT, NAME_MAX, PATH_MAX, PIPEJUF, SYMLINK.MAX.

Из этих 44 пределов и констант некоторые могут быть определены в файле , а другие могут быть и не определены - в зависимости от некото­рых условий. Пределы и константы, которые не обязательно должны быть определены, мы рассмотрим в разделе 2.5.4, когда будем говорить о функци­ях sysconf, pathconf и f pathconf. Девятнадцать неизменяемых минимальных значений приведены в табл. 2.8.

Эти значения являются неизменяемыми и не зависят от конкретной реали­зации операционной системы. Они задают большинство ограничений, на­кладываемых на функциональные возможности. Реализации, претендую­щие на звание POSIX-совместимых, должны обеспечивать значения не ниже указанных. Именно поэтому они называются минимально допустимыми, хотя в их именах присутствует постфикс МАХ. Кроме того, чтобы обеспечить максимальную переносимость, приложения, строго следующие стандарту,

2.5. Пределы

73

не должны требовать более высоких значений. Описания каждой из этих констант мы будем приводить по мере того, как они будут нам встречаться.

Таблица 2.8. Неизменяемые минимальные значения из файла , определяемые стандартом POSIX.1



Имя

Описание: минимально допустимое значение для

Значение

J>OSIX_ARG_MAX

Длины аргументов функции exec

4 096

_POSIX_CHILD_MAX

Количества дочерних процессов на реальный идентификатор пользователя

25

_POSIX_HOST_NAME_MAX

Максимальной длины имени сетевого узла, возвращаемого функцией get host name

255

_POSIX__LINK__MAX

Количества ссылок на один файл

8

_POSIX_LOGIN_NAME_MAX

Максимальной длины имени пользователя

9

_P0SIX_MAX_CAN0N

Количества байт в канонической входной очереди терминала

255

_POSIX_MAX_INPUT

Количества байт, доступного во входной очереди терминала

255

_POSIX_NAME__MAX

Количества байт в имени файла, не считая завершающего нулевого символа

14

_POSIX_NGROUPS_MAX

Количества идентификаторов дополнительных групп на процесс

8

_P0SIX_0PEN_MAX

Количества открытых файлов на процесс

20

_POSIX_PATH__MAX

Максимальной длины строки пути к файлу, включая завершающий нулевой символ

256

_POSIX_PIPE_BUF

Количества байт, которые могут быть записаны в канал атомарно

512

_POSIX_RE_DUP_MAX

Количества повторяющихся вхождений для основного регулярного выражения, принимаемого функциями гедехес и гедсошр, при использовании интервальной нотации \{ш, п\}

255

_POSIX_SSIZE_MAX

Значения, которое может быть сохранено в переменной типа ssize_t

32 767

_POSIX_STREAM_MAX -pOSIX_SYMLINK_MAX

Количества одновременно открытых стандартных потоков ввода-вывода на процесс

Количества байт в символической ссылке

8 255

-P0SIX_SYML00P_MAX

Количества переходов по символическим ссылкам допустимого в строке пути

8

~pOSlX_JTY_NAME_MAX

Длины имени терминального устройства, включая завершающий нулевой символ

9

^IX£ZNA^MAX

Количества байт в имени временной зоны

6

74

1   ...   4   5   6   7   8   9   10   11   ...   143

Похожие:

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconСтивене Д. 80 Сознавание: исследуем, экспериментируем, упражняемся/ Пер с англ. А. Пилюгина
Разработка серийного оформления художника В. Щербакова Серия основана в 1999 году

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconРичард Д. Деловые культуры в международном бизнесе. От столкновения к взаимопониманию / Льюис Ричард Д.; пер с англ. Т. А. Нестика
Европа: вчера, сегодня, завтра / ран, Ин-т Европы; отв ред., авт предисл. Н. П. Шмелев. – М.: Экономика, 2002. – 823с

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconРичард Докинз. Эгоистичный ген
Ричард Докинз профессор Оксфордского университета, автор таких известных книг, как "Эгоистический ген", "Слепой часовщик", "Расширенный...

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconСтивен Кинг После заката Стивен Кинг После заката Посвящается Хайди Питлор
Он, бесформенный, присвоил чужую форму. Как такое могло случиться, Остин? Нет, как такое может быть? И почему тогда солнце не померкнет,...

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconРичард Флорида, «Креативный класс: люди, которые меняют будущее». М
Ричард Флорида, «Креативный класс: люди, которые меняют будущее». М.: Классика-xxi, 2005. (Richard Florida, “The Rise of The Creative...

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconРичард Фарсон Менеджмент абсурда. Парадоксы лидерства Публикуется по: © "София", 2001 Перевод с англ. © А. Левицкий Об
Роджерсом (одним из этих проектов был получивший академическую премию документальный фильм "Путешествие в себя"). Ричард Фарсон получил...

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconThe Roles of Intermediaries in Cluster Development: The Thai Experiences from High-Tech and mid-tech manufacturing, knowledge-intensive services, to

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconHigh School/High Tech Program Guide

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconКультура Социогуманитарные исследования Издание второе, дополненное
Борисов С. Б. Человек. Текст. Культура. Социогуманитарные исследования. Издание второе, дополненное. – Шадринск, 2007 – 556 с

Unix профессиональное программирование Второе издание У. Ричард Стивене, Стивен а раго 2007 Серия «High tech» У. Ричард Стивене, Стивен А. Раго iconЕстественно-математические науки. Техника Барр, С. Россыпи головоломок [Текст] / Стивен Барр; пер с англ. Ю. Н. Сударева. М. Мир, 1987. 415 с
Барр, С. Россыпи головоломок [Текст] / Стивен Барр; пер с англ. Ю. Н. Сударева. М. Мир, 1987. 415 с


Разместите кнопку на своём сайте:
lib.convdocs.org


База данных защищена авторским правом ©lib.convdocs.org 2012
обратиться к администрации
lib.convdocs.org
Главная страница