Linux API. Исчерпывающее руководство | страница 27
Эти факторы побудили к стандартизации C. Ее кульминацией в 1989 году стало утверждение Американским институтом национальных стандартов (ANSI) стандарта языка C (X3.159-1989), который в 1990 году был принят в качестве стандарта (ISO/IEC 9899:1990) Международной организацией по стандартизации (ISO). Наряду с определением синтаксиса и семантики языка C в этом стандарте давалось описание стандартной библиотеки C, включающей возможности stdio, функции обработки строк, математические функции, различные файлы заголовков и т. д. Эту версию C обычно называют C89 или (значительно реже) ISO C90, и она полностью рассмотрена во втором издании (1988 года) книги Кернигана и Ритчи «Язык программирования Си».
Пересмотренное издание стандарта языка C было принято ISO в 1999 году (ISO/IEC 9899:1999; см. http://www.open-std.org/jtc1/sc22/wg14/www/standards). Его обычно называют C99, и он включает несколько изменений языка и его стандартной библиотеки. В частности, там описаны добавление типов данных long long и логического (булева), присущий C++ стиль комментариев (//), ограниченные указатели и массивы переменной длины. Новый стандарт для языка Си (ISO/IEC 9899:2011) опубликован 8 декабря 2011. В нем описаны поддержка многопоточности, обобщенные макросы, анонимные структуры и объединения, статичные утверждения, функция quick_exit, новый режим эксклюзивного открытия файла и др.
Стандарты языка C не зависят от особенностей операционной системы, то есть они не привязаны к UNIX-системе. Это означает, что программы на языке C, для написания которых использовалась только стандартная библиотека C, должны быть портированы на любой компьютер и операционную систему, предоставляющую реализацию языка C.
Исторически C89 часто называли ANSI C, и это название до сих пор иногда употребляется в таком значении. Например, оно используется в gcc, где спецификатор — ansi означает «поддерживать все программы ISO C90». Но мы будем избегать этого названия, поскольку теперь оно звучит несколько двусмысленно. После того как комитет ANSI принял пересмотренную версию C99, будет правильным считать, что стандартом ANSI C следует называть C99.
1.3.2. Первые стандарты POSIX
Термин POSIX (аббревиатура от Portable Operating System Interface) обозначает группу стандартов, разработанных под руководством Института инженеров электротехники и электроники — Institute of Electrical and Electronic Engineers (IEEE), а точнее, его комитета по стандартам для портируемых приложений — Portable Application Standards Committee (PASC,