Linux System Programming : Talking Directly to the Kernel and C Library
Linux System Programming : Talking Directly to the Kernel and C Library
Click to enlarge
Author(s): Love, Robert
ISBN No.: 9781449339531
Pages: 454
Year: 201305
Format: Trade Paper
Price: $ 100.95
Dispatch delay: Dispatched between 7 to 15 days
Status: Available

Dedication;Foreword;Preface; Audience and Assumptions; Contents of This Book; Versions Covered in This Book; Conventions Used in This Book; Using Code Examples; SafariĀ® Books Online; How to Contact Us; Acknowledgments;Chapter 1: Introduction and Essential Concepts; 1.1 System Programming; 1.2 APIs and ABIs; 1.3 Standards; 1.4 Concepts of Linux Programming; 1.5 Getting Started with System Programming;Chapter 2: File I/O; 2.1 Opening Files; 2.2 Reading via read(); 2.


3 Writing with write(); 2.4 Synchronized I/O; 2.5 Direct I/O; 2.6 Closing Files; 2.7 Seeking with lseek(); 2.8 Positional Reads and Writes; 2.9 Truncating Files; 2.10 Multiplexed I/O; 2.


11 Kernel Internals; 2.12 Conclusion;Chapter 3: Buffered I/O; 3.1 User-Buffered I/O; 3.2 Standard I/O; 3.3 Opening Files; 3.4 Opening a Stream via File Descriptor; 3.5 Closing Streams; 3.6 Reading from a Stream; 3.


7 Writing to a Stream; 3.8 Sample Program Using Buffered I/O; 3.9 Seeking a Stream; 3.10 Flushing a Stream; 3.11 Errors and End-of-File; 3.12 Obtaining the Associated File Descriptor; 3.13 Controlling the Buffering; 3.14 Thread Safety; 3.


15 Critiques of Standard I/O; 3.16 Conclusion;Chapter 4: Advanced File I/O; 4.1 Scatter/Gather I/O; 4.2 Event Poll; 4.3 Mapping Files into Memory; 4.4 Advice for Normal File I/O; 4.5 Synchronized, Synchronous, and Asynchronous Operations; 4.6 I/O Schedulers and I/O Performance; 4.


7 Conclusion;Chapter 5: Process Management; 5.1 Programs, Processes, and Threads; 5.2 The Process ID; 5.3 Running a New Process; 5.4 Terminating a Process; 5.5 Waiting for Terminated Child Processes; 5.6 Users and Groups; 5.7 Sessions and Process Groups; 5.


8 Daemons; 5.9 Conclusion;Chapter 6: Advanced Process Management; 6.1 Process Scheduling; 6.2 The Completely Fair Scheduler; 6.3 Yielding the Processor; 6.4 Process Priorities; 6.5 Processor Affinity; 6.6 Real-Time Systems; 6.


7 Resource Limits;Chapter 7: Threading; 7.1 Binaries, Processes, and Threads; 7.2 Multithreading; 7.3 Threading Models; 7.4 Threading Patterns; 7.5 Concurrency, Parallelism, and Races; 7.6 Synchronization; 7.7 Pthreads; 7.


8 Further Study;Chapter 8: File and Directory Management; 8.1 Files and Their Metadata; 8.2 Directories; 8.3 Links; 8.4 Copying and Moving Files; 8.5 Device Nodes; 8.6 Out-of-Band Communication; 8.7 Monitoring File Events;Chapter 9: Memory Management; 9.


1 The Process Address Space; 9.2 Allocating Dynamic Memory; 9.3 Managing the Data Segment; 9.4 Anonymous Memory Mappings; 9.5 Advanced Memory Allocation; 9.6 Debugging Memory Allocations; 9.7 Stack-Based Allocations; 9.8 Choosing a Memory Allocation Mechanism; 9.


9 Manipulating Memory; 9.10 Locking Memory; 9.11 Opportunistic Allocation;Chapter 10: Signals; 10.1 Signal Concepts; 10.2 Basic Signal Management; 10.3 Sending a Signal; 10.4 Reentrancy; 10.5 Signal Sets; 10.


6 Blocking Signals; 10.7 Advanced Signal Management; 10.8 Sending a Signal with a Payload; 10.9 A Flaw in Unix?;Chapter 11: Time; 11.1 Time''s Data Structures; 11.2 POSIX Clocks; 11.3 Getting the Current Time of Day; 11.4 Setting the Current Time of Day; 11.


5 Playing with Time; 11.6 Tuning the System Clock; 11.7 Sleeping and Waiting; 11.8 Timers;GCC Extensions to the C Language; GNU C; Inline Functions; Suppressing Inlining; Pure Functions; Constant Functions; Functions That Do Not Return; Functions That Allocate Memory; Forcing Callers to Check the Return Value; Marking Functions as Deprecated; Marking Functions as Used; Marking Functions or Parameters as Unused; Packing a Structure; Increasing the Alignment of a Variable; Placing Global Variables in a Register; Branch Annotation; Getting the Type of an Expression; Getting the Alignment of a Type; The Offset of a Member Within a Structure; Obtaining the Return Address of a Function; Case Ranges; Void and Function Pointer Arithmetic; More Portable and More Beautiful in One Fell Swoop;Bibliography; Books on the C Programming Language; Books on Linux Programming; Books on the Linux Kernel; Books on Operating System Design;Index;Colophon;.


To be able to view the table of contents for this publication then please subscribe by clicking the button below...
To be able to view the full description for this publication then please subscribe by clicking the button below...