In this book, I describe the Linux programming interface—the system calls, library functions, and other low-level interfaces provided by Linux, a free implementation of the UNIX operating system. These interfaces are used, directly or indirectly, by every program that runs on Linux.
They allow applications to perform tasks such as file I/O, creating and deleting files and directories, creating new processes, executing programs, setting timers, communicating between processes and threads on the same computer, and communicating between processes residing on different computers connected via a network.
This set of low-level interfaces is sometimes also known as the system programming interface. Although I focus on Linux,
I give careful attention to standards and portability issues, and clearly distinguish the discussion of Linux-specific details from the discussion of features that are common to most UNIX implementations and standardized by POSIX and the Single UNIX Specification.
Thus, this book also provides a comprehensive description of the UNIX/POSIX programming interface and can be
used by programmers writing applications targeted at other UNIX systems or
intended to be portable across multiple systems.