Набор макросов по умолчанию

Мини-картинка

Набор макросов по умолчанию содержит _SVID_S0URCE1, _BSD_S0URCE1, _P0SIX_S0URCE1 и _P0SIX_C_S0URCE199506L. Описание каждой из этих опций можно найти ниже, но все это, по сути, транслируется в поддержку возможностей стандарта 1995 POSIX (этот стандарт использовался до объединения стандартов POSIX и Single Unix), всех стандартных функций System V и всех функций BSD, которые не конфликтуют с функциями System V. Данного набора макросов достаточно для большинства программ.

При определении в дсс опции ansi, как было описано ранее, автоматически определяется внутренний макрос STRICT ANSI , который отключает все макросы, определенные по умолчанию.

За исключением STRICT ANSI , который представляет собой специальный макрос (и должен настраиваться только компилятором в контексте опции командной строки ansi), эти макросы имеют накопительный характер, то есть можно определять любые их комбинации. Точное определение изменений BSD SOURCE зависит от настройки других макросов (более детально об этом — ниже); все остальные макросы — исключительно накопительные.

Некоторые макросы определяются различными версиями POSIX или других стандартов, другие являются общими, а третьи могут использоваться только в glibc.

POSIX SOURCE Если указан этот макрос, становятся доступными все интерфейсы, определенные как часть оригинальной спецификации POSIX. 1. Данный макрос был определен в первоначальном стандарте POSIX.11990.

Этот макрос может заменять __P0SIX_S0URCE. Если установлен в 1, то эквивалентен _P0SIX_S0URCE. Если его значение больше либо равно 2, макрос включает интерфейсы С, соответствующие POSIX.2, и задействует регулярные выражения. Если значение больше либо равно 199309L, макрос включает в себя дополнительные интерфейсы С, соответствующие пересмотренному в 1993 году стандарту POSIX, в частности, включая функциональность реального времени. Если его значение больше либо равно 199506L (по умолчанию), макрос включает дополнительные интерфейсы С, соответствующие пересмотренному в 1995 году стандарту POSIX, в частности, включая потоки POSIX. Этот макрос был описан версией POSIX, выпущенной после 1990 года для разграничения поддержки различных версий стандартов POSIX (а теперь также и Single Unix). Во многих случаях полностью замещается _X0PEN_S0URCE.

POSIX С SOURCE XOPEN SOURCE Макрос _X0PEN_S0URCE определен XSIчастью стандарта Single Unix и описывает логическое надмножество интерфейсов, включенных с помощью _P0SIX_C_S0URCE. Этот макрос также был определен XPG. Если макрос определен, указываются функциональные возможности из начального стандарта XPG4 (Unix95). Если макрос определен со значением 500, включаются функциональные возможности из стандарта XPG5 (Unix98, SuS версии 2). Если установлено значение 600, включаются функциональные возможности из начального стандарта IEEE Std 1003.12003 (комбинированный документ по POSIX и SuS).?

_ISOC99 SOURCE Этот макрос проверки возможностей экспортирует интерфейсы, определенные в новых стандартах ISO/IEC С99.

SVID SOURCE при указании данного макроса для выбора возможностей становится доступным стандарт SVID (System V Interface Definition). Это не значит, что glibc обеспечивает полную реализацию стандарта SVID; она всего лишь открывает указанную функциональность SVID, существующую в glibc.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок