"Talking Directly to the Kernel and C Library"--Cover
"Updated for the 3.0 Linux kernal"--Cover
Includes bibliographical references (pages 407-409) and index
1. Introduction and essential concepts : System programming ; APIs and ABIs ; Standards ; Concepts of Linux programming -- 2. File I/O : Opening files ; Reading via read () ; Writing with write () ; Synchronized I/O ; Direct I/O ; Closing files ; Seeking with lseek () ; Positional reads and writes ; Truncating files ; Multiplexed I/O ; Kernel internals -- 3. Buffered I/O : User-buffered I/O ; Standard I/O ; Opening files ; Opening a stream via file descriptor ; Closing streams ; Reading from a stream ; Writing to a stream ; Sample program using buffered I/O ; Seeking a stream ; Flushing a stream ; Errors and end-of-file ; Obtaining the associated file descriptor ; Controlling the buffering ; Thread safety ; Critiques of standard I/O -- 4. Advanced file I/O : Scatter/gather I/O ; Event poll ; Mapping files into memory ; Advice for normal file I/O ; Synchronized, synchronous, and asynchronous operations ; I/O schedulers and I/O performance -- 5. Process management : Programs, processes, and threads ; The process ID ; Running a new process ; Terminating a process ; Waiting for terminated child processes ; Users and groups ; Sessions and process groups ; Daemons -- 6. Advanced process management : Process scheduling ; The completely fair scheduler ; Yielding the processor ; Process priorities ; Processor affinity ; Real-time systems ; Resource limits -- 7. Threading : Binaries, processes, and threads ; Multithreading ; Threading models ; Threading patterns ; Concurrency, parallelism, and races ; Synchronization ; Pthreads -- 8. File and directory management : Files and their metadata ; Directories ; Links ; Copying and moving files ; Device nodes ; Out-of-band communication ; Monitoring file events -- 9. Memory management : The process address space ; Allocating dynamic memory ; Managing the data segment ; Anonymous memory mappings ; Advanced memory allocation ; Debugging memory allocations ; Stack-based alocations ; Choosing a memory allocation mechanism ; Manipulating memory ; Locking memory ; Opportunistic allocation -- 10. Signals : Signal concepts ; Basic signal management ; Sending a signal ; Reentrancy ; Signal sets ; Blocking signals ; Advanced signal management ; Sending a signal with a payload ; A flaw in Unix? -- 11. Time : Time's data structures ; POSIX clocks ; Getting the current time of day ; Setting the current time of day ; Playing with time ; Tuning the system clock ; Sleeping and waiting ; Timers -- Appendix A. GCC extensions to the C language