The Linux programming interface a Linux and UNIX system programming handbook
The Linux Programming Interface describes the Linux API (application programming interface)-the system calls, library functions, and other low-level interfaces that are used, directly or indirectly, by every program that runs on Linux. Programs that explicitly use these interfaces are commonly calle...
Autor principal: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
San Francisco :
No Starch Press
c2010.
|
Edición: | 1st edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009628913006719 |
Tabla de Contenidos:
- Brief Contents; Contents in Detail; Preface; 1: History and Standards; 1.1 A Brief History of UNIX and C; 1.2 A Brief History of Linux; 1.2.1 The GNU Project; 1.2.2 The Linux Kernel; 1.3 Standardization; 1.3.1 The C Programming Language; 1.3.2 The First POSIX Standards; 1.3.3 X/Open Company and The Open Group; 1.3.4 SUSv3 and POSIX.1-2001; 1.3.5 SUSv4 and POSIX.1-2008; 1.3.6 UNIX Standards Timeline; 1.3.7 Implementation Standards; 1.3.8 Linux, Standards, and the Linux Standard Base; 1.4 Summary; 2: Fundamental Concepts; 2.1 The Core Operating System: The Kernel; 2.2 The Shell
- 2.3 Users and Groups 2.4 Single Directory Hierarchy, Directories, Links, and Files; 2.5 File I/O Model; 2.6 Programs; 2.7 Processes; 2.8 Memory Mappings; 2.9 Static and Shared Libraries; 2.10 Interprocess Communication and Synchronization; 2.11 Signals; 2.12 Threads; 2.13 Process Groups and Shell Job Control; 2.14 Sessions, Controlling Terminals, and Controlling Processes; 2.15 Pseudoterminals; 2.16 Date and Time; 2.17 Client-Server Architecture; 2.18 Realtime; 2.19 The /proc File System; 2.20 Summary; 3: System Programming Concepts; 3.1 System Calls; 3.2 Library Functions
- 3.3 The Standard C Library The GNU C Library ( glibc); 3.4 Handling Errors from System Calls and Library Functions; 3.5 Notes on the Example Programs in This Book; 3.5.1 Command-Line Options and Arguments; 3.5.2 Common Functions and Header Files; 3.6 Portability Issues; 3.6.1 Feature Test Macros; 3.6.2 System Data Types; 3.6.3 Miscellaneous Portability Issues; 3.7 Summary; 3.8 Exercise; 4: File I/O: The Universal I/O Model; 4.1 Overview; 4.2 Universality of I/O; 4.3 Opening a File: open(); 4.3.1 The open flags Argument; 4.3.2 Errors from open; 4.3.3 The create System Call
- 4.4 Reading from a File: read 4.5 Writing to a File: write; 4.6 Closing a File: close; 4.7 Changing the File Offset: l seek; 4.8 Operations Outside the Universal I/O Model: ioctl; 4.9 Summary; 4.10 Exercises; 5: File I/O: Further Details; 5.1 Atomicity and Race Conditions; 5.2 File Control Operations: fcntl; 5.3 Open File Status Flags; 5.4 Relationship Between File Descriptors and Open Files; 5.5 Duplicating File Descriptors; 5.6 File I/O at a Specified Offset: pread and pwrite; 5.7 Scatter-Gather I/O: readv and writev; 5.8 Truncating a File: truncate and ftruncate
- 5.9 Nonblocking I/O5.10 I/O on Large Files; 5.11 The /dev/fd Directory; 5.12 Creating Temporary Files; 5.13 Summary; 5.14 Exercises; 6: Processes; 6.1 Processes and Programs; 6.2 Process ID and Parent Process ID; 6.3 Memory Layout of a Process; 6.4 Virtual Memory Management; 6.5 The Stack and Stack Frames; 6.6 Command-Line Arguments (argc, argv); 6.7 Environment List; 6.8 Performing a Nonlocal Goto: setjmp() and long jmp; 6.9 Summary; 6.10 Exercises; 7: Memory Allocation; 7.1 Allocating Memory on the Heap; 7.1.1 Adjusting the Program Break: brk and sbrk
- 7.1.2 Allocating Memory on the Heap: malloc and free