There are a number of "official" standards for the behavior of portable applications among Unix and Unix-like systems. The first two entries are the standards themselves, the next one is a guide for using the first standard. The final two entries are the formal standards for the C and C++ programming languages.
ISO/IEC Standard 9945-1: 1996 [IEEE/ANSI Std 1003.1, 1996 Edition] Information Technology -- Portable Operating System Interface (POSIX) -- Part 1: System Application: Program Interface (API) [C Language]. IEEE, 1996. ISBN: 1-55937-573-6.
This edition incorporates extensions for real-time applications (1003.1b-1993, 1003.1i-1995) and threads (1003.1c-1995). Electronic versions are available via subscription, see http://www.standards.ieee.org.
This book describes the interface to the operating system as seen by the C or C++ programmer.
ISO/IEC Standard 9945-2: 1993 [IEEE/ANSI Std 1003.2-1992 & IEEE/ANSI 1003.2a-1992] Information Technology -- Portable Operating System Interface (POSIX) -- Part 2: Shell and Utilities IEEE, 1996. ISBN: 1-55937-406-3. Includes and shipped with 1003.2d-1994.
This standard is more relevant for readers of this book: it describes the operating system at the level of the shell and utilities.
Posix Programmer's Guide: Writing Portable Unix Programs, Donald A. Lewine. O'Reilly & Associates, Sebastopol, CA, USA, 1991. ISBN: 0-937175-73-0.
X3 Secretariat: Standard -- The C Language. X3J11/90-013. ISO Standard ISO/IEC 9899. Computer and Business Equipment Manufacturers Association. Washington DC, USA, 1990.
X3 Secretariat: International Standard -- The C++ Language. X3J16-14882. Information Technology Council (NSITC). Washington DC, USA, 1998.