LEADER 05381nam 2200661 a 450 001 9910824783103321 005 20230912161533.0 010 $a1-59327-291-X 035 $a(CKB)3400000000021709 035 $a(EBL)1137549 035 $a(OCoLC)830164364 035 $a(SSID)ssj0000571947 035 $a(PQKBManifestationID)12273938 035 $a(PQKBTitleCode)TC0000571947 035 $a(PQKBWorkID)10544572 035 $a(PQKB)10893037 035 $a(Au-PeEL)EBL1137549 035 $a(CaPaEBR)ebr10496679 035 $a(Au-PeEL)EBL6098864 035 $a(OCoLC)1155998539 035 $a(PPN)204519373 035 $a(CaSebORM)9781593272203 035 $a(MiAaPQ)EBC1137549 035 $a(MiAaPQ)EBC6098864 035 $a(OCoLC)741520305 035 $a(OCoLC)ocn741520305 035 $a(EXLCZ)993400000000021709 100 $a20100128d2010 uy 0 101 0 $aeng 135 $aurunu||||| 181 $ctxt 182 $cc 183 $acr 200 14$aThe Linux programming interface $ea Linux and UNIX system programming handbook /$fMichael Kerrisk 205 $a1st edition 210 $aSan Francisco $cNo Starch Press$dc2010 215 $a1 online resource (1556 p.) 300 $aDescription based upon print version of record. 311 $a1-59327-220-0 320 $aIncludes bibliographical references (p. [1437]-1445) and index. 327 $aBrief 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 327 $a2.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 327 $a3.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 327 $a4.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 327 $a5.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 327 $a7.1.2 Allocating Memory on the Heap: malloc and free 330 $aThe 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 indexed 606 $aOperating systems (Computers) 615 0$aOperating systems (Computers) 676 $a005.4/32 700 $aKerrisk$b Michael$f1961-$0476300 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910824783103321 996 $aThe Linux programming interface$94051198 997 $aUNINA