Interested Article - POSIX

POSIX ( англ. P ortable O perating S ystem I nterface — переносимый интерфейс операционных систем ) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой (системный API ), библиотеку языка C и набор приложений и их интерфейсов. Стандарт создан для обеспечения совместимости различных UNIX -подобных операционных систем и переносимости прикладных программ на уровне исходного кода , но может быть использован и для не-Unix систем.

Серия стандартов POSIX была разработана комитетом 1003 IEEE . Международная организация по стандартизации ( ISO ) совместно c Международной электротехнической комиссией ( IEC ) приняла стандарт POSIX под названием ISO/IEC 9945 . Версии стандарта POSIX являются основой соответствующих версий стандарта Single UNIX Specification . Стандарт POSIX определяет интерфейс операционной системы, а соответствие стандарту Single UNIX Specification определяет реализацию интерфейса и позволяет операционным системам использовать торговую марку UNIX .

Название «POSIX» было предложено Ричардом Столлманом . Введение в POSIX.1 гласит: «Ожидается произношение „позикс“ как в слове „позитив“, а не „посикс“. Произношение опубликовано в целях обнародования стандартного способа ссылки на стандартный интерфейс операционной системы». «POSIX» является зарегистрированным товарным знаком IEEE .

Задачи

  • Содействовать облегчению переноса кода прикладных программ на иные платформы.
  • Способствовать определению и унификации интерфейсов заранее при проектировании, а не в процессе их реализации.
  • Сохранять по возможности и учитывать все главные, созданные ранее и используемые прикладные программы.
  • Определять необходимый минимум интерфейсов прикладных программ для ускорения создания, одобрения и утверждения документов.
  • Развивать стандарты в направлении обеспечения коммуникационных сетей, распределённой обработки данных и защиты информации.
  • Рекомендовать ограничение использования бинарного (объектного) кода для приложений в простых системах.

Состав

Стандарт состоит из четырёх основных разделов.

  • Основные определения ( англ. Base definitions ) — список основных определений и соглашений, используемых в спецификациях, и список заголовочных файлов языка Си , которые должны быть предоставлены соответствующей стандарту системой.
  • Оболочка и утилиты ( англ. Shell and utilities ) — описание утилит и командной оболочки sh , стандарты регулярных выражений .
  • Системные интерфейсы ( англ. System interfaces ) — список системных вызовов языка Си .
  • Обоснование ( англ. Rationale ) — объяснение принципов, используемых в стандарте.

Версии

Версии POSIX до 2001 года

До 2001 года было создано много стандартов POSIX, часть из которых использовалась для формирования стандартов Single UNIX Specification. Множество операционных систем частично или полностью реализовывало поддержку этих стандартов, в связи с чем в руководствах к системным вызовам и к программам часто встречаются ссылки на данные стандарты. На данный момент эти стандарты являются устаревшими и представляют лишь исторический интерес.

POSIX.1. Системное API для языка Си

Стандарт: IEEE Std 1003.1-1988, затем IEEE Std 1003.1-1990; ISO/IEC 9945-1:1990.

Стандарт был выпущен в 1988 году, занимал 317 страниц, включал в себя стандарт ANSI C и являлся первым стандартом POSIX. До присвоения названия POSIX Ричардом Столлманом стандарт был известен как IEEE-IX. В 1990 вышло обновление стандарта с небольшими изменениями под названием IEEE Std 1003.1-1990, занимавшее 356 страниц. Заголовок обновлённого стандарта гласил: «Part 1: System Application Program Interface (API) [C Language]». Таким образом, было явно указано, что стандарт представляет собой системное API для языка Си .

Разделы стандарта
  • Создание и управление процессами
  • Сигналы
    • Исключения плавающей точки
    • Нарушение сегментации
    • Запрещённые директивы
    • Ошибки шины
    • Таймеры
  • Операции над файлами (каталогами)
  • Каналы
  • Библиотека Си (стандарт Си)
  • Интерфейс и контроль ввода-вывода
  • Триггеры процессов
Особенности стандарта

Из числа описанного в стандарте стоит отметить следующее:

  • добавлена функция mkfifo () , как более простой вариант создания именованных каналов по сравнению с активно использовавшейся в то время функцией mknod() ;
  • описан формат архивов tar и cpio ;
  • описаны файлы с информацией о пользователях и о группах .

POSIX.2. Командная оболочка и утилиты

Стандарт: IEEE Std 1003.2-1992; ISO/IEC 9945-2:1993 .

Стандарт вышел в 1992 году в двух томах общим размером около 1300 страниц. Заголовок гласил: «Part 2: Shell And Utilities», что переводится как «Часть 2: Командный интерпретатор и утилиты» .

Разделы стандарта
  • Командный интерпретатор
  • Программные утилиты
Особенности стандарта

Стандарт описывал командный интерпретатор на основе System V Bourne shell и около сотни утилит командной строки (включая basename, awk, vi, yacc и многие другие) .

POSIX.1b. Расширения реального времени

Также известен как POSIX.4 .

Стандарт: IEEE Std 1003.1b-1993, IEEE Std 1003.1i-1995 (технические исправления к 1003.1b).

Изначально известный как IEEE P1003.4, стандарт являлся обновлением стандарта IEEE Std 1003.1-1990. Обновление из 590 страниц включало в себя расширения реального времени, разработанные рабочим комитетом P1003.4 . В 1995 году стандарт был дополнен техническими исправлениями (IEEE Std 1003.1i-1995).

Разделы стандарта
  • Планировка приоритетов
  • Сигналы реального времени
  • Часы и таймеры
  • Семафоры
  • Передача сообщений
  • Управление памятью
  • Синхронизация файлов и асинхронный ввод-вывод
  • Интерфейс блокировки виртуальной памяти

POSIX.1c. Потоки

Стандарт: IEEE Std 1003.1c-1995.

Разделы стандарта
  • Создание, контроль и завершение выполнения потоков
  • Планировщик потоков
  • Синхронизация потоков
  • Обработка сигналов
Особенности стандарта

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

  • глобальная переменная errno языка Си более не является глобальной переменной и должна указывать на отдельную память для каждого потока ;
  • добавлены реентерабельные аналоги некоторых функций, к которым добавляется суффикс « _r » ;
  • все функции для работы со вводом-выводом должны быть реализованы реентерабельными, иначе в их названии необходимо явно обозначать их небезопасность (например, суффиксом « _unlocked ») ;
  • добавлены функции flockfile() , ftrylockfile() и funlockfile() для осуществления блокирующих операций над потоками данных в рамках многопоточной программы .

POSIX.1-1996

Стандарт: IEEE Std 1003.1, 1996 Edition, также известный как IEEE 1996 (ISO/IEC 9945-1:1996).

Стандарт занимал 743 страницы, объединял ранее разработанные версии POSIX и включал в себя следующие стандарты :

  • IEEE Std 1003.1-1990 (базовый API);
  • IEEE Std 1003.1b-1993 (расширения реального времени);
  • IEEE Std 1003.1c-1995 (потоки);
  • IEEE Std 1003.1i-1995 (технические исправления к стандарту 1003.1b).
Разделы стандарта
  • Часть 1. Системное API (Язык Си)
  • Часть 2. Командный интерпретатор и утилиты
  • Часть 3. Системное администрирование (в разработке)

При этом около четверти страниц стандарта занимала историческая справка и пояснения причин, по которым в него были включены те или иные функции .

POSIX.1d. Дополнительные расширения реального времени

Стандарт: IEEE Std 1003.1d-1999.

Описывал дополнительные расширения реального времени . Например, системный вызов sem_timedwait() появился именно в этом стандарте .

POSIX.1g. Протоколо-независимые интерфейсы

Первоначальное название: POSIX 1003.12 .

Стандарт: IEEE Std 1003.1g.

Стандарт был выпущен в 2000 году, описывал API взаимодействия процессов друг с другом и включал в себя два основных API :

  • Simple Network Interface (SNI) ;
  • Detailed Network Interface (DNI), включающий в себя API сокетов на основе сокетов 4.4BSD и помеченный устаревшим X/Open Transport Interface (XTI) .

POSIX.1j. Продвинутые расширения реального времени

Стандарт: IEEE Std 1003.1j-2000.

Описывает продвинутые расширения реального времени .

Версии POSIX после 2001 года

В марте 1997 года рабочий комитет разработал стандарт Single UNIX Specification version 2 , который по своей сути был продолжением развития стандарта POSIX.1-1996 .

В 1999 году было принято решение, согласно которому консорциум The Open Group и Институт инженеров по электротехнике и электронике (IEEE) приняли решение об объединении усилий в совместной разработке стандартов POSIX и Single UNIX Specification. Новый стандарт POSIX должен был заменить существовавшие на тот момент стандарты POSIX ( и и др.), став основой для Single UNIX Specification version 3 . Также было решено обнародовать будущий стандарт, разработку которого планировалось закончить к 2001 году .

В 2001 году все предыдущие стандарты POSIX были объединены в один общий стандарт, который предполагалось использовать как основу для будущих стандартов Single UNIX Specification .

POSIX.1-2001

Стандарт: IEEE Std 1003.1-2001; ISO/IEC 9945:2002 .

В 2001 году основные опциональные стандарты POSIX, разработанные ранее, были объединены в единый стандарт POSIX.1-2001. С тех пор принято именовать стандарты POSIX, добавляя к ним в конец год издания . POSIX.1-2001 является основой стандарта Single UNIX Specification version 3 .

POSIX.1-2001 ориентирован на стандарт языка C99 и может включать в себя функции и заголовочные файлы из C99 .

Стандарт включает в себя:

  • основные понятия и определения;
  • системные интерфейсы и заголовочные файлы;
  • описание командного интерпретатора на уровне исходного кода и утилит командной строки.

POSIX.1-2004

Стандарт: IEEE Std 1003.1-2004.

Стандарт является незначительным обновлением стандарта . Включает в себя два технических исправления . Описание стандарта доступно в интернете .

POSIX.1-2008

Стандарты: IEEE Std 1003.1-2008 (ISO/IEC 9945:2009), техническое исправление IEEE Std 1003.1-2008/Cor 1-2013 (ISO/IEC/IEEE 9945:2009/Cor 1:2013).

Стандарт разработан в 2008. В 2013 году к стандарту было разработано техническое исправление № 1 под названием IEEE Std 1003.1-2008/Cor 1-2013. Общедоступную бесплатную копию стандарта можно найти в интернете . POSIX.1-2008 лежит в основе стандарта Single UNIX Specification version 4 .

Стандарт описывает:

  • основные понятия и определения стандарта;
  • системные интерфейсы и заголовочные файлы;
  • описание командного интерпретатора на уровне исходного кода и утилит командной строки;
  • пояснения о необходимости стандарта, о причинах включения возможностей (или отказа от включения) в стандарт.

POSIX.1-2017

Стандарт: IEEE Std 1003.1-2017 (ISO/IEC/IEEE 9945:2009/Cor 2:2017).

Стандарт разработан в 2017 и является текущим . Является второй поправкой к редакции ISO/IEC/IEEE 9945:2009.

По сравнению с предыдущим стандартом содержит в основном исправления ошибок и перенос опциональных возможностей в категорию обязательных. В том числе опциональными перестали быть многие функции для работы с потоками, включая блокировки чтения-записи. В число новых функций в основном входят функции для работы с локалями .

Профили POSIX 1003.13

Стандарт POSIX 1003.1 подходит не для всех операционных систем. Встраиваемые операционные системы не всегда реализуют поддержку тех или иных функций. Стандарт POSIX 1003.13 описывает подмножество стандарта POSIX 1003.1 для встраиваемых систем, которое разделено на 4 профиля. Профили были разработаны, чтобы обеспечить переносимость программ на уровне исходных кодов для операционных систем с ограниченными возможностями. Они представляют собой подмножество стандарта POSIX 1003.1, то есть описывают только часть возможностей, включённых в оригинальный стандарт. Таким образом, профили не конфликтуют с оригинальным стандартом .

Текущим является стандарт IEEE 1003.13-2003 , который является развитием стандарта IEEE Std 1003.13-1998 и основывается на стандарте IEEE Std 1003.1-2001. Также в стандарт включены POSIX.26-2003 (IEEE Std 1003.26-2003), POSIX.13a, POSIX.13b и ISO/IEC 14519:2001 [ источник не указан 764 дня ] .

На 2016 год разработаны следующие профили:

  • POSIX PSE54 (многопользовательская многопроцессная операционная система с поддержкой потоков и файловой системы);
  • POSIX PSE53 (многопроцессная операционная система с поддержкой потоков и файловой системы);
  • POSIX PSE52 (однопроцессная операционная система с поддержкой потоков и файловой системы);
  • POSIX PSE51 (однопроцессная операционная система с поддержкой потоков, без файловой системы).

Сравнительная характеристика профилей

Поддерживаемые возможности PSE51 PSE52 PSE53 PSE54 Первое появление
Процессы - - + + 1003.1-90
Конвейеры - - + + 1003.1-90
Файлы и каталоги - + + + 1003.1-90
Пользователи и группы - - - + 1003.1-90
Защита памяти - - + + 1003.1b-93
Часы и таймеры высокого разрешения + + + + 1003.1b-93
Сигналы реального времени + + + + 1003.1b-93
Семафоры + + + + 1003.1b-93
Разделяемая память + + + + 1003.1b-93
Межпроцессовый обмен данными + + + + 1003.1b-93
Потоки + + + + 1003.1c-95
Потокобезопасные функции + + + + 1003.1c-95
Атрибуты потоков, адрес стека + + + + 1003.1c-95
Атрибуты потоков, размер стека + + + + 1003.1c-95
Разделение процесса между потоками - - + + 1003.1c-95
Приоритеты потоков + + + + 1003.1c-95
Наследование приоритетов потоками + + + + 1003.1c-95
Защита приоритетов потоков + + + + 1003.1c-95

Поддержка операционными системами

В зависимости от степени совместимости со стандартами, ОС могут быть полностью или частично совместимы с POSIX. Сертифицированные продукты могут быть найдены на сайте IEEE . Бесплатный доступ к версии стандарта IEEE Std 1003.1-2017 находится на сайте « The Open Group » .

POSIX-сертифицированные

C 1996 года стандарт SUS включает в себя стандарт POSIX, поэтому сертифицированные на стандарт UNIX операционные системы можно считать одновременно сертифицированными и на стандарт POSIX.

POSIX-совместимые

Заявлена полная совместимость с одной из версий стандарта POSIX.

По большей части POSIX-совместимые

Официально не сертифицированные как POSIX-совместимые, но соответствующие по большей части.

Частично POSIX-совместимые

POSIX для Windows

  • Cygwin — обеспечивает частичное соответствие POSIX для некоторых продуктов Microsoft Windows .
  • Подсистема для UNIX-приложений (SUA) — необязательная подсистема Windows , обеспечивающая готовое окружение для компиляции и исполнения POSIX-совместимых приложений . Соответствие стандарту POSIX.2 на уровне командной строки обеспечивается с помощью командной оболочки ksh .
  • « Microsoft Windows Services for UNIX » — обеспечивает полное соответствие POSIX для некоторых продуктов Microsoft Windows . Операционные системы на базе Windows NT до Windows 2000 имели POSIX-уровень, встроенный в ОС, и «UNIX Services for Windows» предоставляло UNIX-подобное окружение. Для получения POSIX-совместимости в Windows XP нужно скачать и установить бесплатный пакет «Windows Services for UNIX». UNIX-подсистема встроена в Enterprise и Ultimate редакции Windows Vista и не может быть добавлена в другие редакции.
  • Windows Subsystem for Linux — прослойка совместимости, впервые появившаяся в Windows 10 и реализующая API ядра Linux поверх Windows. Позволяет запускать окружение некоторых дистрибутивов в пространстве пользователя.
  • — набор библиотек и утилит, обеспечивающих POSIX-совместимое окружение поверх Win32 API .
  • — набор портированных под библиотеку (msvcrt.dll) утилит GNU .

См. также

Примечания

Комментарии

  1. Системный вызов mmap и разделяемая память .
  2. У PSE53 упрощённая файловая система — без именованных каналов, атрибутов файлов и получения путей по шаблону поиска .

Источники

  1. . www.iso.org. Дата обращения: 12 февраля 2016.
  2. . www.unix.org. Дата обращения: 7 января 2016. 4 марта 2016 года.
  3. . www.unix.org. Дата обращения: 7 января 2016. 22 августа 2011 года.
  4. (англ.) (2 февраля 2006). Дата обращения: 5 марта 2008. Архивировано из 22 августа 2011 года.
  5. W. Richard Stevens, Bill Fenner, Andrew M. Rudoff. . — Addison-Wesley Professional, 2004-01-01. — С. 25—28. — 1032 с. — ISBN 9780131411555 . 2 июля 2016 года.
  6. (англ.) . man7.org. — «First the signals described in the original POSIX.1-1990 standard». Дата обращения: 15 декабря 2018. 15 декабря 2018 года.
  7. Bill Gallmeister. . — "O'Reilly Media, Inc.", 1995. — 580 с. — ISBN 9781565920743 . 17 декабря 2018 года.
  8. Керриск Майкл. . — "Издательский дом ""Питер""", 2017-10-18. — 1248 с. — ISBN 9785496026895 . 16 декабря 2018 года.
  9. . man7.org. Дата обращения: 6 февраля 2016. 14 февраля 2016 года.
  10. Michael González Harbour, Departamento de Electrónica, Universidad de Cantabria, Avda. los Castros. (англ.) // www.ctr.unican.es : сайт. — Сантандер. 10 августа 2017 года.
  11. (англ.) . The Open Group . www.unix.org. Дата обращения: 16 декабря 2018. 24 декабря 2018 года.
  12. . www.opengroup.org. Дата обращения: 5 февраля 2016. 17 октября 2018 года.
  13. Michael Kerrisk. . — No Starch Press, 2010-01-01. — С. 13, 16—17, 1096. — 1556 с. — ISBN 9781593272203 . 16 марта 2022 года.
  14. Nick Stoughton. (англ.) // AUUGN : журнал. — AUUG Inc., 1995. — August ( vol. 16 , no. 4 ). — ISSN . 15 декабря 2018 года.
  15. W. Richard Stevens, Bill Fenner, Andrew M. Rudoff. . — Addison-Wesley Professional, 2004. — 1032 с. — ISBN 9780131411555 . 16 декабря 2018 года.
  16. Керриск Майкл. . — "Издательский дом ""Питер""", 2017-10-18. — 1248 с. — ISBN 9785496026895 . 16 марта 2022 года.
  17. . www.unix.org. Дата обращения: 4 января 2016. 3 марта 2016 года.
  18. . www.unix.org. Дата обращения: 6 февраля 2016. 6 февраля 2016 года.
  19. . Collaborative Effort to Yield Version 3 of the Single UNIX Specification . opengroup.org (17 июля 1999). Дата обращения: 6 февраля 2016. 9 июля 2008 года.
  20. Robert Love. . — "O'Reilly Media, Inc.", 2013-05-14. — С. 7—8. — 457 с. — ISBN 9781449341541 . 24 июня 2016 года.
  21. . www.unix.org. Дата обращения: 4 января 2016. 29 октября 2013 года.
  22. . pubs.opengroup.org. Дата обращения: 7 февраля 2016. 4 апреля 2016 года.
  23. . www.unix.org. Дата обращения: 4 января 2016. Архивировано из 4 февраля 2016 года.
  24. . pubs.opengroup.org. Дата обращения: 4 января 2016. 4 января 2016 года.
  25. . pubs.opengroup.org. Дата обращения: 4 января 2016. 28 декабря 2017 года.
  26. . www.unix.org. Дата обращения: 11 февраля 2016. 16 февраля 2016 года.
  27. . standards.ieee.org. Дата обращения: 25 января 2019. 26 января 2019 года.
  28. (англ.) . pubs.opengroup.org. Дата обращения: 30 мая 2019. 11 июля 2018 года.
  29. Peter van der Veen. . qnx-russia.ru . QNX Software Systems. Дата обращения: 7 февраля 2016. 8 февраля 2016 года.
  30. . standards.ieee.org. Дата обращения: 26 января 2019. 27 января 2019 года.
  31. Joe Gwinn. . opengroup.org (июль 2004). Дата обращения: 26 января 2019. 29 сентября 2020 года.
  32. . Standards . IEEE. Архивировано из 22 августа 2011 года.
  33. (англ.) . The Open Group . Дата обращения: 11 августа 2022. 1 сентября 2022 года.
  34. . www.opengroup.org. Дата обращения: 5 января 2016. 18 сентября 2019 года.
  35. . www.opengroup.org. Дата обращения: 5 января 2016. 8 апреля 2016 года.
  36. . www.opengroup.org. Дата обращения: 5 января 2016. 4 марта 2016 года.
  37. . www.opengroup.org. Дата обращения: 5 января 2016. 8 апреля 2016 года.
  38. . www.qnx.com. Дата обращения: 7 февраля 2016. 8 февраля 2016 года.
  39. . www.qnx.com. Дата обращения: 7 февраля 2016. 8 февраля 2016 года.
  40. . www.opengroup.org. Дата обращения: 8 января 2016. 4 марта 2016 года.
  41. . get.posixcertified.ieee.org. Дата обращения: 5 января 2016. Архивировано из 7 марта 2016 года.
  42. . www.opengroup.org. Дата обращения: 5 января 2016. 9 июля 2014 года.
  43. (англ.) . Lynx Software Technology. Дата обращения: 5 января 2016. 16 февраля 2016 года.
  44. . www.opengroup.org. Дата обращения: 8 января 2016. 3 марта 2016 года.
  45. . www.opengroup.org. Дата обращения: 16 мая 2022. 22 сентября 2020 года.
  46. QuickSpecs. . Tru64 UNIX . Дата обращения: 21 января 2016. Архивировано из 25 января 2016 года.
  47. InfoWorld Media Group Inc. . — InfoWorld Media Group, Inc., 1992-08-10. — 98 с. 1 июня 2016 года.
  48. . people.freebsd.org. Дата обращения: 8 января 2016. 25 июня 2016 года.
  49. Ole Henry Halvorsen, Douglas Clarke. . — Apress, 2012-01-29. — 472 с. — ISBN 9781430235378 . 15 декабря 2018 года.
  50. . wiki.minix3.org. Дата обращения: 12 января 2016. 16 августа 2016 года.
  51. I. D. G. Enterprise. . — IDG Enterprise, 1994-11-07. — 154 с. 16 марта 2022 года.
  52. Nicholas A. Solter, Jerry Jelinek, David Miner. . — John Wiley & Sons, 2011-03-21. — 740 с. — ISBN 9781118080313 . 17 июня 2016 года.
  53. Digital Equipment Corporation Maynard, Massachusetts. . OpenVMS (март 1994). Дата обращения: 19 января 2016. 25 января 2016 года.
  54. . www.windriver.com. Дата обращения: 18 января 2016. 8 декабря 2015 года.
  55. Martin C. Brown. . — Morgan Kaufmann, 1998-01-01. — 500 с. — ISBN 9781558605329 . 16 марта 2022 года.
  56. . www.netbsd.org. Дата обращения: 21 января 2016. 17 января 2016 года.
  57. . www.mentor.com. Дата обращения: 25 января 2016. 1 февраля 2016 года.
  58. . www.openbsd.org. Дата обращения: 24 января 2016. 7 июля 2013 года.
  59. Michael Ringgaard. . www.jbox.dk. Дата обращения: 21 января 2016. 12 января 2016 года.
  60. . www.skyos.org. Дата обращения: 21 января 2016. Архивировано из 28 января 2016 года.
  61. Syllable Project. . web.syllable.org. Дата обращения: 21 января 2016. Архивировано из 25 января 2016 года.
  62. . DragonFly BSD . dragonflybsd.org (5 января 2014). Дата обращения: 21 января 2016. 3 февраля 2016 года.
  63. (англ.) . docs.rtems.org. Дата обращения: 13 августа 2018. 13 августа 2018 года.
  64. (англ.) . Дата обращения: 26 декабря 2019. 22 февраля 2020 года.
  65. Mathieu Devos. (англ.) // 1st Master MIT. — Faculty Industrial Sciences & Technology. 22 марта 2014 года.
  66. Denton Gentry Software Engineer San Carlos. . Дата обращения: 15 декабря 2018. 15 декабря 2018 года.
  67. . technet.microsoft.com. Дата обращения: 25 января 2016.
  68. . technet.microsoft.com. Дата обращения: 25 января 2016.
  69. . GitHub. Дата обращения: 26 января 2016. 7 января 2018 года.
  70. . unxutils.sourceforge.net. Дата обращения: 25 января 2016. Архивировано из 9 февраля 2006 года.

Литература

  • Donald Lewine. . — «O’Reilly Media, Inc.», 1991-04-01. — 646 с. — ISBN 9780937175736 .
  • System application program interface (API) [C Language]: ISO/IEC 9945-1, ANSI/IEEE Std 1003.1 . — New York: IEEE, 1996. — ISBN 1-55937-573-6
  • . Часть 1: Интерфейс прикладных программ (API) [Язык программирования С]: в 2 т. — М.: НИИСИ РАН , 1999. — ISBN 5-93838-001-4
    • Т. 1: Введение и нормативная часть. — 422 с. — ISBN 5-93838-002-2
    • Т. 2: Информативная часть (Приложения). — 374 с. — ISBN 5-93838-003-0

Ссылки

Источник —

Same as POSIX