Articoli correlati a The Linux Programming Interface: A Linux and UNIX System...

The Linux Programming Interface: A Linux and UNIX System Programming Handbook [Lingua Inglese] - Rilegato

 
9781593272203: The Linux Programming Interface: A Linux and UNIX System Programming Handbook [Lingua Inglese]
Vedi tutte le copie di questo ISBN:
 
 

The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system.

In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs.

You'll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You'll learn how to:

  • Read and write files efficiently
  • Use signals, clocks, and timers
  • Create processes and execute programs
  • Write secure programs
  • Write multithreaded programs using POSIX threads
  • Build and use shared libraries
  • Perform interprocess communication using pipes, message queues, shared memory, and semaphores
  • Write network applications with the sockets API

While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.

The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.



Praise for The Linux Programming Interface

"If I had to choose a single book to sit next to my machine when writing software for Linux, this would be it." Martin Landers, Software Engineer, Google

"This book, with its detailed descriptions and examples, contains everything you need to understand the details and nuances of the low-level programming APIs in Linux . . . no matter what the level of reader, there will be something to be learnt from this book." Mel Gorman, Author of Understanding the Linux Virtual Memory Manager

"Michael Kerrisk has not only written a great book about Linux programming and how it relates to various standards, but has also taken care that bugs he noticed got fixed and the man pages were (greatly) improved. In all three ways, he has made Linux programming easier. The in-depth treatment of topics in The Linux Programming Interface . . . makes it a must-have reference for both new and experienced Linux programmers." Andreas Jaeger, Program Manager, openSUSE, Novell

"Michael's inexhaustible determination to get his information right, and to express it clearly and concisely, has resulted in a strong reference source for programmers. While this work is targeted at Linux programmers, it will be of value to any programmer working in the UNIX/POSIX ecosystem." David Butenhof, Author of Programming with POSIX Threads and Contributor to the POSIX and UNIX Standards

". . . a very thorough—yet easy to read—explanation of UNIX system and network programming, with an emphasis on Linux systems. It's certainly a book I'd recommend to anybody wanting to get into UNIX programming (in general) or to experienced UNIX programmers wanting to know 'what's new' in the popular GNU/Linux system." Fernando Gont, Network Security Researcher, IETF Participant, and RFC Author

". . . encyclopedic in the breadth and depth of its coverage, and textbook-like in its wealth of worked examples and exercises. Each topic is clearly and comprehensively covered, from theory to hands-on working code. Professionals, students, educators, this is the Linux/UNIX reference that you have been waiting for." Anthony Robins, Associate Professor of Computer Science, The University of Otago

"I've been very impressed by the precision, the quality and the level of detail Michael Kerrisk put in his book. He is a great expert of Linux system calls and lets us share his knowledge and understanding of the Linux APIs." Christophe Blaess, Author of Programmation systeme en C sous Linux

". . . an essential resource for the serious or professional Linux and UNIX systems programmer. Michael Kerrisk covers the use of all the key APIs across both the Linux and UNIX system interfaces with clear descriptions and tutorial examples and stresses the importance and benefits of following standards such as the Single UNIX Specification and POSIX 1003.1." Andrew Josey, Director, Standards, The Open Group, and Chair of the POSIX 1003.1 Working Group

"What could be better than an encyclopedic reference to the Linux system, from the standpoint of the system programmer, written by none other than the maintainer of the man pages himself? The Linux Programming Interface is comprehensive and detailed. I firmly expect it to become an indispensable addition to my programming bookshelf." Bill Gallmeister, Author of POSIX.4 Programmer's Guide: Programming for the Real World

". . . the most complete and up-to-date book about Linux and UNIX system programming. If you're new to Linux system programming, if you're a UNIX veteran focused on portability while interested in learning the Linux way, or if you're simply looking for an excellent reference about the Linux programming interface, then Michael Kerrisk's book is definitely the companion you want on your bookshelf." Loic Domaigne, Chief Software Architect (Embedded), Corpuls.com

Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.

L'autore:

Michael Kerrisk has been using and programming UNIX systems for more than 20 years, and has taught many week-long courses on UNIX system programming. Since 2004, he has maintained the man-pages project, which produces the manual pages describing the Linux kernel and glibc programming APIs. He has written or co-written more than 250 of the manual pages and is actively involved in the testing and design review of new Linux kernel-userspace interfaces. Michael lives with his family in Munich, Germany.

Contenuti:
Praise for The Linux Programming Interface; Dedication; Preface; ; Chapter 1: History and Standards; 1.1 A Brief History of UNIX and C; 1.2 A Brief History of Linux; 1.3 Standardization; 1.4 Summary; Chapter 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; Chapter 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.6 Portability Issues; 3.7 Summary; 3.8 Exercise; Chapter 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.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: lseek(); 4.8 Operations Outside the Universal I/O Model: ioctl(); 4.9 Summary; 4.10 Exercises; Chapter 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/O; 5.10 I/O on Large Files; 5.11 The /dev/fd Directory; 5.12 Creating Temporary Files; 5.13 Summary; 5.14 Exercises; Chapter 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; Chapter 7: Memory Allocation; 7.1 Allocating Memory on the Heap; 7.2 Allocating Memory on the Stack: alloca(); 7.3 Summary; 7.4 Exercises; Chapter 8: Users and Groups; 8.1 The Password File: /etc/passwd; 8.2 The Shadow Password File: /etc/shadow; 8.3 The Group File: /etc/group; 8.4 Retrieving User and Group Information; 8.5 Password Encryption and User Authentication; 8.6 Summary; 8.7 Exercises; Chapter 9: Process Credentials; 9.1 Real User ID and Real Group ID; 9.2 Effective User ID and Effective Group ID; 9.3 Set-User-ID and Set-Group-ID Programs; 9.4 Saved Set-User-ID and Saved Set-Group-ID; 9.5 File-System User ID and File-System Group ID; 9.6 Supplementary Group IDs; 9.7 Retrieving and Modifying Process Credentials; 9.8 Summary; 9.9 Exercises; Chapter 10: Time; 10.1 Calendar Time; 10.2 Time-Conversion Functions; 10.3 Timezones; 10.4 Locales; 10.5 Updating the System Clock; 10.6 The Software Clock (Jiffies); 10.7 Process Time; 10.8 Summary; 10.9 Exercise; Chapter 11: System Limits and Options; 11.1 System Limits; 11.2 Retrieving System Limits (and Options) at Run Time; 11.3 Retrieving File-Related Limits (and Options) at Run Time; 11.4 Indeterminate Limits; 11.5 System Options; 11.6 Summary; 11.7 Exercises; Chapter 12: System and Process Information; 12.1 The /proc File System; 12.2 System Identification: uname(); 12.3 Summary; 12.4 Exercises; Chapter 13: File I/O Buffering; 13.1 Kernel Buffering of File I/O: The Buffer Cache; 13.2 Buffering in the stdio Library; 13.3 Controlling Kernel Buffering of File I/O; 13.4 Summary of I/O Buffering; 13.5 Advising the Kernel About I/O Patterns; 13.6 Bypassing the Buffer Cache: Direct I/O; 13.7 Mixing Library Functions and System Calls for File I/O; 13.8 Summary; 13.9 Exercises; Chapter 14: File Systems; 14.1 Device Special Files (Devices); 14.2 Disks and Partitions; 14.3 File Systems; 14.4 I-nodes; 14.5 The Virtual File System (VFS); 14.6 Journaling File Systems; 14.7 Single Directory Hierarchy and Mount Points; 14.8 Mounting and Unmounting File Systems; 14.9 Advanced Mount Features; 14.10 A Virtual Memory File System: tmpfs; 14.11 Obtaining Information About a File System: statvfs(); 14.12 Summary; 14.13 Exercise; Chapter 15: File Attributes; 15.1 Retrieving File Information: stat(); 15.2 File Timestamps; 15.3 File Ownership; 15.4 File Permissions; 15.5 I-node Flags (ext2 Extended File Attributes); 15.6 Summary; 15.7 Exercises; Chapter 16: Extended Attributes;;;;;; 16.1 Overview; 16.2 Extended Attribute Implementation Details; 16.3 System Calls for Manipulating Extended Attributes; 16.4 Summary; 16.5 Exercise; Chapter 17: Access Control Lists; 17.1 Overview; 17.2 ACL Permission-Checking Algorithm; 17.3 Long and Short Text Forms for ACLs; 17.4 The ACL_MASK Entry and the ACL Group Class; 17.5 The getfacl and setfacl Commands; 17.6 Default ACLs and File Creation; 17.7 ACL Implementation Limits; 17.8 The ACL API; 17.9 Summary; 17.10 Exercise; Chapter 18: Directories and Links; 18.1 Directories and (Hard) Links; 18.2 Symbolic (Soft) Links; 18.3 Creating and Removing (Hard) Links: link() and unlink(); 18.4 Changing the Name of a File: rename(); 18.5 Working with Symbolic Links: symlink() and readlink(); 18.6 Creating and Removing Directories: mkdir() and rmdir(); 18.7 Removing a File or Directory: remove(); 18.8 Reading Directories: opendir() and readdir(); 18.9 File Tree Walking: nftw(); 18.10 The Current Working Directory of a Process; 18.11 Operating Relative to a Directory File Descriptor; 18.12 Changing the Root Directory of a Process: chroot(); 18.13 Resolving a Pathname: realpath(); 18.14 Parsing Pathname Strings: dirname() and basename(); 18.15 Summary; 18.16 Exercises; Chapter 19: Monitoring File Events; 19.1 Overview; 19.2 The inotify API; 19.3 inotify Events; 19.4 Reading inotify Events; 19.5 Queue Limits and /proc Files; 19.6 An Older System for Monitoring File Events: dnotify; 19.7 Summary; 19.8 Exercise; Chapter 20: Signals: Fundamental Concepts; 20.1 Concepts and Overview; 20.2 Signal Types and Default Actions; 20.3 Changing Signal Dispositions: signal(); 20.4 Introduction to Signal Handlers; 20.5 Sending Signals: kill(); 20.6 Checking for the Existence of a Process; 20.7 Other Ways of Sending Signals: raise() and killpg(); 20.8 Displaying Signal Descriptions; 20.9 Signal Sets; 20.10 The Signal Mask (Blocking Signal Delivery); 20.11 Pending Signals; 20.12 Signals Are Not Queued; 20.13 Changing Signal Dispositions: sigaction(); 20.14 Waiting for a Signal: pause(); 20.15 Summary; 20.16 Exercises; Chapter 21: Signals: Signal Handlers; 21.1 Designing Signal Handlers; 21.2 Other Methods of Terminating a Signal Handler; 21.3 Handling a Signal on an Alternate Stack: sigaltstack(); 21.4 The SA_SIGINFO Flag; 21.5 Interruption and Restarting of System Calls; 21.6 Summary; 21.7 Exercise; Chapter 22: Signals: Advanced Features; 22.1 Core Dump Files; 22.2 Special Cases for Delivery, Disposition, and Handling; 22.3 Interruptible and Uninterruptible Process Sleep States; 22.4 Hardware-Generated Signals; 22.5 Synchronous and Asynchronous Signal Generation; 22.6 Timing and Order of Signal Delivery; 22.7 Implementation and Portability of signal(); 22.8 Realtime Signals; 22.9 Waiting for a Signal Using a Mask: sigsuspend(); 22.10 Synchronously Waiting for a Signal; 22.11 Fetching Signals via a File Descriptor; 22.12 Interprocess Communication with Signals; 22.13 Earlier Signal APIs (System V and BSD); 22.14 Summary; 22.15 Exercises; Chapter 23: Timers and Sleeping; 23.1 Interval Timers; 23.2 Scheduling and Accuracy of Timers; 23.3 Setting Timeouts on Blocking Operations; 23.4 Suspending Execution for a Fixed Interval (Sleeping); 23.5 POSIX Clocks; 23.6 POSIX Interval Timers; 23.7 Timers That Notify via File Descriptors: The timerfd API; 23.8 Summary; 23.9 Exercises; Chapter 24: Process Creation; 24.1 Overview of fork(), exit(), wait(), and execve(); 24.2 Creating a New Process: fork(); 24.3 The vfork() System Call; 24.4 Race Conditions After fork(); 24.5 Avoiding Race Conditions by Synchronizing with Signals; 24.6 Summary; 24.7 Exercises; Chapter 25: Process Termination; 25.1 Terminating a Process: _exit() and exit(); 25.2 Details of Process Termination; 25.3 Exit Handlers; 25.4 Interactions Between fork(), stdio Buffers, and _exit(); 25.5 Summary; 25.6 Exercise; Chapter 26: Monitoring Child Processes; 26.1 Waiting on a Child Process; 26.2 Orphans and Zombies; 26.3 The SIGCHLD Signal; 26.4 Summary; 26.5 Exercises; Chapter 27: Program Execution; 27.1 Executing a New Program: execve(); 27.2 The exec() Library Functions; 27.3 Interpreter Scripts; 27.4 File Descriptors and exec(); 27.5 Signals and exec(); 27.6 Executing a Shell Command: system(); 27.7 Implementing system(); 27.8 Summary; 27.9 Exercises; Chapter 28: Process Creation and Program Execution in More Detail; 28.1 Process Accounting; 28.2 The clone() System Call; 28.3 Speed of Process Creation; 28.4 Effect of exec() and fork() on Process Attributes; 28.5 Summary; 28.6 Exercise; Chapter 29: Threads: Introduction; 29.1 Overview; 29.2 Background Details of the Pthreads API; 29.3 Thread Creation; 29.4 Thread Termination; 29.5 Thread IDs; 29.6 Joining with a Terminated Thread; 29.7 Detaching a Thread; 29.8 Thread Attributes; 29.9 Threads Versus Processes; 29.10 Summary; 29.11 Exercises; Chapter 30: Threads: Thread Synchronization; 30.1 Protecting Accesses to Shared Variables: Mutexes; 30.2 Si...

Le informazioni nella sezione "Su questo libro" possono far riferimento a edizioni diverse di questo titolo.

  • EditoreNo Starch Press
  • Data di pubblicazione2010
  • ISBN 10 1593272200
  • ISBN 13 9781593272203
  • RilegaturaCopertina rigida
  • Numero di pagine1552
  • Valutazione libreria

Altre edizioni note dello stesso titolo

9781593272913: The Linux Programming Interface: A Linux and UNIX System Programming Handbook

Edizione in evidenza

ISBN 10:  159327291X ISBN 13:  9781593272913
Brossura

I migliori risultati di ricerca su AbeBooks

Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 1
Da:
LibraryMercantile
(Humble, TX, U.S.A.)
Valutazione libreria

Descrizione libro Condizione: new. Codice articolo newMercantile_1593272200

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 51,90
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 2,81
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 1
Da:
GoldBooks
(Denver, CO, U.S.A.)
Valutazione libreria

Descrizione libro Hardcover. Condizione: new. New Copy. Customer Service Guaranteed. Codice articolo think1593272200

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 51,48
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 3,98
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 1
Da:
Front Cover Books
(Denver, CO, U.S.A.)
Valutazione libreria

Descrizione libro Condizione: new. Codice articolo FrontCover1593272200

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 51,43
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 4,03
In U.S.A.
Destinazione, tempi e costi
Immagini fornite dal venditore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 5
Da:
GreatBookPrices
(Columbia, MD, U.S.A.)
Valutazione libreria

Descrizione libro Condizione: New. Codice articolo 7635208-n

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 72,10
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 2,47
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 1
Da:
GF Books, Inc.
(Hawthorne, CA, U.S.A.)
Valutazione libreria

Descrizione libro Condizione: New. Book is in NEW condition. Codice articolo 1593272200-2-1

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 74,65
Convertire valuta

Aggiungere al carrello

Spese di spedizione: GRATIS
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 4
Da:
Save With Sam
(North Miami, FL, U.S.A.)
Valutazione libreria

Descrizione libro Hardcover. Condizione: New. Brand New!. Codice articolo 1593272200

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 74,68
Convertire valuta

Aggiungere al carrello

Spese di spedizione: GRATIS
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 1
Da:
Ebooksweb
(Bensalem, PA, U.S.A.)
Valutazione libreria

Descrizione libro Condizione: New. . Codice articolo 52GZZZ01WB70_ns

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 77,93
Convertire valuta

Aggiungere al carrello

Spese di spedizione: GRATIS
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Prima edizione Quantità: 2
Da:
Textbooks_Source
(Columbia, MO, U.S.A.)
Valutazione libreria

Descrizione libro Hardcover. Condizione: New. 1st Edition. Ships in a BOX from Central Missouri! UPS shipping for most packages, (Priority Mail for AK/HI/APO/PO Boxes). Codice articolo 001179820N

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 75,26
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 3,74
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Michael Kerrisk
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 11
Da:
PBShop.store US
(Wood Dale, IL, U.S.A.)
Valutazione libreria

Descrizione libro PAP. Condizione: New. New Book. Shipped from UK. Established seller since 2000. Codice articolo DB-9781593272203

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 82,00
Convertire valuta

Aggiungere al carrello

Spese di spedizione: GRATIS
In U.S.A.
Destinazione, tempi e costi
Foto dell'editore

Kerrisk, Michael
Editore: No Starch Press (2010)
ISBN 10: 1593272200 ISBN 13: 9781593272203
Nuovo Rilegato Quantità: 1
Da:
GoldenWavesOfBooks
(Fayetteville, TX, U.S.A.)
Valutazione libreria

Descrizione libro Hardcover. Condizione: new. New. Fast Shipping and good customer service. Codice articolo Holz_New_1593272200

Informazioni sul venditore | Contatta il venditore

Compra nuovo
EUR 81,85
Convertire valuta

Aggiungere al carrello

Spese di spedizione: EUR 3,75
In U.S.A.
Destinazione, tempi e costi

Vedi altre copie di questo libro

Vedi tutti i risultati per questo libro