ptg10805159
28 UNIX Standardization and Implementations Chapter 2
standardwas also published as International StandardISO/IEC 9945-1:1996. Morereal-
time interfaces wereadded in 1999 with the publication of IEEE Standard1003.1d-1999.
Ayear later,IEEE Standard1003.1j-2000 was published, including even morereal-time
interfaces, and IEEE Standard1003.1q-2000 was published, adding event-tracing
extensions to the standard.
The 2001 version of 1003.1 departed from the prior versions in that it combined
several 1003.1 amendments, the 1003.2 standard, and portions of the Single UNIX
Specification (SUS),Version 2 (more on this later). The resulting standard, IEEE
Standard1003.1-2001, included the following other standards:
•ISO/IEC 9945-1(IEEE Standard1003.1-1996), which includes
•IEEE Standard1003.1- 1990
•IEEE Standard1003.1b-1993 (real-time extensions)
•IEEE Standard1003.1c-1995 (pthreads)
•IEEE Standard1003.1i-1995 (real-time technical corrigenda)
•IEEE P1003.1a draft standard(system interface amendment)
•IEEE Standard1003.1d-1999 (advanced real-time extensions)
•IEEE Standard1003.1j-2000 (moreadvanced real-time extensions)
•IEEE Standard1003.1q-2000 (tracing)
•Parts of IEEE Standard1003.1g-2000 (protocol-independent interfaces)
•ISO/IEC 9945-2(IEEE Standard1003.2-1993)
•IEEE P1003.2b draft standard(shell and utilities amendment)
•IEEE Standard1003.2d-1994 (batch extensions)
•The Base Specifications of the Single UNIX Specification, version 2, which include
•System Interface Definitions, Issue 5
•Commands and Utilities, Issue 5
•System Interfaces and Headers, Issue 5
•Open Group Technical Standard, Networking Services, Issue 5.2
•ISO/IEC 9899:1999, Programming Languages–C
In 2004, the POSIX.1 specification was updated with technical corrections; more
comprehensive changes weremade in 2008 and released as Issue 7 of the Base
Specifications. ISO approved this version at the end of 2008 and published it in 2009 as
International StandardISO/IEC 9945:2009. It is based on several other standards:
•IEEE Standard1003.1, 2004 Edition
•Open Group Technical Standard, 2006, Extended API Set, Parts 1– 4
•ISO/IEC 9899:1999, including corrigenda
Figure2.2, Figure2.3, and Figure2.4 summarize the required and optional headers
as specified by POSIX.1. Because POSIX.1 includes the ISO C standardlibrary
functions, it also requires the headers listed in Figure2.1. All four figures summarize
which headers areincluded in the implementations discussed in this book.
In this text we describe the 2008 edition of POSIX.1. Its interfaces aredivided into
required ones and optional ones. The optional interfaces arefurther divided into 40
sections, based on functionality.The sections containing nonobsolete programming
interfaces aresummarized in Figure2.5 with their respective option codes. Option
codes aretwo- to three-character abbreviations that identify the interfaces that belong to