The Linux Programming Interface: Linux and UNIX System Programming Handbook
- 32h 56m
- Michael Kerrisk
- No Starch Press
- 2010
The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system.
In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs.
You'll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You'll learn how to:
- Read and write files efficiently
- Use signals, clocks, and timers
- Create processes and execute programs
- Write secure programs
- Write multithreaded programs using POSIX threads
- Build and use shared libraries
- Perform interprocess communication using pipes, message queues, shared memory, and semaphores
- Write network applications with the sockets API
While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.
The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.
About the Author
Michael Kerrisk has been using and programming UNIX systems for more than 20 years, and has taught many week-long courses on UNIX system programming. Since 2004, he has maintained the man-pages project, which produces the manual pages describing the Linux kernel and glibc programming APIs. He has written or co-written more than 250 of the manual pages and is actively involved in the testing and design review of new Linux kernel-userspace interfaces. Michael lives with his family in Munich, Germany.
In this Book
-
The Linux Programming Interface―A Linux and UNIX System Programming Handbook
-
History and Standards
-
Fundamental Concepts
-
System Programming Concepts
-
File I/O: The Universal I/O Model
-
File I/O: Further Details
-
Processes
-
Memory Allocation
-
Users and Groups
-
Process Credentials
-
Time
-
System Limits and Options
-
System and Process Information
-
File I/O Buffering
-
File Systems
-
File Attributes
-
Extended Attributes
-
Access Control Lists
-
Directories and Links
-
Monitoring File Events
-
Signals: Fundamental Concepts
-
Signals: Signal Handlers
-
Signals: Advanced Features
-
Timers and Sleeping
-
Process Creation
-
Process Termination
-
Monitoring Child Processes
-
Program Execution
-
Process Creation and Program Execution in More Detail
-
Threads: Introduction
-
Threads: Thread Synchronization
-
Threads: Thread Safety and Per-Thread Storage
-
Threads: Thread Cancellation
-
Threads: Further Details
-
Process Groups, Sessions, and Job Control
-
Process Priorities and Scheduling
-
Process Resources
-
Daemons
-
Writing Secure Privileged Programs
-
Capabilities
-
Login Accounting
-
Fundamentals of Shared Libraries
-
Advanced Features of Shared Libraries
-
Interprocess Communication Overview
-
Pipes and FIFOs
-
Introduction to System V IPC
-
System V Message Queues
-
System V Semaphores
-
System V Shared Memory
-
Memory Mappings
-
Virtual Memory Operations
-
Introduction to POSIX IPC
-
POSIX Message Queues
-
POSIX Semaphores
-
POSIX Shared Memory
-
File Locking
-
Sockets: Introduction
-
Sockets: UNIX Domain
-
Sockets: Fundamentals of TCP/IP Networks
-
Sockets: Internet Domains
-
Sockets: Server Design
-
Sockets: Advanced Topics
-
Terminals
-
Alternative I/O Models
-
Pseudoterminals