Front cover image for Advanced Linux programming

Advanced Linux programming

"Advanced Linux Programming is intended for the programmer already familiar with the C programming language. Authors Alex Samuel, Jeffrey Oldham, and Mark Mitchell of CodeSourcery, LLC take a tutorial approach and teach the most important concepts and techniques for using the advanced and powerful features of the GNU/Linux system in application programs." "If you're a developer already experienced with programming for the GNU/Linux system, are experienced with another UNIX-like system and are interested in developing GNU/Linux software, or want to make the transition from a non-UNIX environment and are already familiar with the general principles of writing good software, this book is for you."--Jacket
Print Book, English, 2001
New Riders Pub., Indianapolis, Ind., 2001
xxiii, 340 pages : illustrations ; 23 cm
9780735710436, 0735710430
47358741
Advanced UNIX Programming with Linux
Editing with Emacs
Compiling with GCC
Automating the Process with GNU Make
Debugging with GNU Debugger (GDB)
Finding More Information
Writing Good GNU/Linux Software
Interaction With the Execution Environment
Coding Defensively
Writing and Using Libraries
Processes
Looking at Processes
Creating Processes
Signals
Process Termination
Threads
Thread Creation
Thread Cancellation
Thread-Specific Data
Synchronization and Critical Sections
GNU/Linux Thread Implementation
Processes Vs. Threads
Interprocess Communication
Shared Memory
Processes Semaphores
Mapped Memory
Pipes
Sockets
Mastering Linux
Devices
Device Types
Device Numbers
Device Entries
Hardware Devices
Special Devices
PTYs
ioctl
The /proc File System
Extracting Information from /proc
Process Entries
Hardware Information
Kernel Information
Drives, Mounts, and File Systems
System Statistics
Linux System Calls
Using strace
access: Testing File Permissions
fcntl: Locks and Other File Operations
fsync and fdatasync: Flushing Disk Buffers
getrlimit and setrlimit: Resource Limits
getrusage: Process Statistics
gettimeofday: Wall-Clock Time
The mlock Family: Locking Physical Memory
mprotect: Setting Memory Permissions
nanosleep: High-Precision Sleeping
readlink: Reading Symbolic Links
sendfile: Fast Data Transfers
setitimer: Setting Interval Timers
sysinfo: Obtaining System Statistics
uname
Inline Assembly Code
When to Use Assembly Code
Simple Inline Assembly
Extended Assembly Syntax
Optimization Issues
Maintenance and Portability Issues
Security
Users and Groups
Process User IDs and Process Group IDs
File System Permissions
Real and Effective IDs
Authenticating Users
More Security Holes
A Sample GNU/Linux Application
Implementation
Modules
Using the Server
Finishing Up
Other Development Tools
Static Program Analysis
Finding Dynamic Memory Errors
Profiling
Low-Level I/O
Reading and Writing Data
stat
Vector Reads and Writes
Relation to Standard C Library I/O Functions
Other File Operations
Reading Directory Contents
Table of Signals
Includes index