05381nam 2200661 a 450 991082478310332120230912161533.01-59327-291-X(CKB)3400000000021709(EBL)1137549(OCoLC)830164364(SSID)ssj0000571947(PQKBManifestationID)12273938(PQKBTitleCode)TC0000571947(PQKBWorkID)10544572(PQKB)10893037(Au-PeEL)EBL1137549(CaPaEBR)ebr10496679(Au-PeEL)EBL6098864(OCoLC)1155998539(PPN)204519373(CaSebORM)9781593272203(MiAaPQ)EBC1137549(MiAaPQ)EBC6098864(OCoLC)741520305(OCoLC)ocn741520305 (EXLCZ)99340000000002170920100128d2010 uy 0engurunu|||||txtccrThe Linux programming interface a Linux and UNIX system programming handbook /Michael Kerrisk1st editionSan Francisco No Starch Pressc20101 online resource (1556 p.)Description based upon print version of record.1-59327-220-0 Includes bibliographical references (p. [1437]-1445) and index.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 Shell2.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 Functions3.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 Call4.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 ftruncate5.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 sbrk7.1.2 Allocating Memory on the Heap: malloc and freeThe 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 called system programs, and include applications such as shells, editors, windowing systems, terminal emulators, file managers, compilers, database management systems, virtual machines, network servers, and much of the other software that is employed on a daily basis on Linux systems. Extensively indexedOperating systems (Computers)Operating systems (Computers)005.4/32Kerrisk Michael1961-476300MiAaPQMiAaPQMiAaPQBOOK9910824783103321The Linux programming interface4051198UNINA