Start reading The Linux Programming Interface on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here or start reading now with a free Kindle Reading App.

Deliver to your Kindle or other device


Try it free

Sample the beginning of this book for free

Deliver to your Kindle or other device

Anybody can read Kindle books – even without a Kindle device-with the FREE Kindle app for smartphones and tablets.
The Linux Programming Interface: A Linux and UNIX System Programming Handbook

The Linux Programming Interface: A Linux and UNIX System Programming Handbook [Kindle Edition]

Michael Kerrisk
5.0 out of 5 stars  See all reviews (9 customer reviews)

Print List Price: £78.49
Kindle Price: £29.69 includes VAT* & free wireless delivery via Amazon Whispernet
You Save: £48.80 (62%)
* Unlike print books, digital books are subject to VAT.


Amazon Price New from Used from
Kindle Edition £29.69  
Hardcover £69.71  
Kindle Daily Deal
Kindle Daily Deal: At least 60% off
Each day we unveil a new book deal at a specially discounted price--for that day only. Learn more about the Kindle Daily Deal or sign up for the Kindle Daily Deal Newsletter to receive free e-mail notifications about each day's deal.

Product Description

Product Description

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 ...

About the Author

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.

Product details

More About the Authors

Discover books, learn about writers, and more.

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

4 star
3 star
2 star
1 star
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
15 of 15 people found the following review helpful
5.0 out of 5 stars A "must have" for any Linux programmer 28 Nov 2010
Format:Hardcover|Verified Purchase
Last week I got my grubby mitts on a clean, white and shiny new copy of The Linux Programming Interface ("A Linux and UNIX System Programming Handbook") by Michael Kerrisk.

So far I've read only a few chapters in detail, skimmed over one or two others, and dived around in it to look some things up. Just a week after receiving it is probably too soon for a fair review of such an enormous book, but Michael asked me if I would consider writing one (after I contacted him -- I don't know him personally), and it's the least I can do to thank him for what I can already tell is going to be a stupendously useful book.

From its uncluttered no-nonsense title and cover design, right down to its nitty-gritty technical details, it's obvious that this is a clear, well thought out, and well written book by someone who knows their subject matter inside and out. That's no surprise: Michael Kerrisk is maintainer and a major contributor to the Linux man-pages project. But let's be clear, this book isn't just a bunch of man pages glued together and given a cover!

Despite its large size (over 60 chapters, 1500+ pages) and level of detail, this is a surprisingly readable guidebook for UNIX system calls with a particular focus on Linux. The chapters are arranged such that they can be read in order with minimal forward-referencing. Topics covered range from the history of UNIX and fundamental systems concepts, through file i/o and file systems, processes & threads, IPC, up to advanced socket techniques and alternative I/O models. The book has a fairly comprehensive (although not exhaustive) index. The chapter list at provides a complete picture. The IPC chapters by themselves look as good as any other book I've seen on the subject.
Read more ›
Comment | 
Was this review helpful to you?
6 of 6 people found the following review helpful
5.0 out of 5 stars A true gem! 9 Mar 2011
By Iggy
I purchased this book to help me solve one simple task: implement two timers on Linux. Our game engine has hi-res and lo-res timers. The man pages were not descriptive enough for me, so after some searching I found this book, and, oh boy, I am glad I bought it! I was able to find more information in 10 minutes reading the book than in 1 hour on the internet, and the quality of the text is excellent as well.
This book should a first stop for anyone trying to do some Linux programming.
(Hard cover and quality of the paper/print justifies the price.)
Comment | 
Was this review helpful to you?
5 of 5 people found the following review helpful
5.0 out of 5 stars Best LINUX system API book I've yet seen 8 Nov 2011
I've been working as a C / C++ programmer for many years and good systems level API documentation is often hard to come by. Resources will often document API function calls in quite some detail but fail to explain how they were intended to be used properly. This can lead to a long time spent debugging applications that, as far as you understand, should be implemented correctly. This book does not suffer from that shortcoming!

This book does an excellent job at explaining both the function calls and how they are intended to be used. Every part I've delved into has explained it's subject in depth and with a surprising level of clarity. In short, it's the Linux API book I've always wanted! If you need a book detailing File I/O and Locking, Processes, Memory Allocation, Access Control, Signals, Threads, Daemons, Pipes, Sockets and more and to an excellent level of detail, then the almost 1500 pages of information here are - in my option - well worth the price tag. A rare gem indeed.
Comment | 
Was this review helpful to you?
3 of 3 people found the following review helpful
5.0 out of 5 stars Amazing book 22 Oct 2011
If you're looking for a book that can describe how Linux Programming works and at the same time with lots and lots of examples, this is for you.
I've been searching for some time and never found a good book, until now.
It's very well written, the language used is some what technical, but you can only read this book if you already know how to program in C or C++ and use Linux.
The author introduces and describes the chapter subject in deep, covering the subject and giving you all the ideas behind and how they work - You get to know how Linux really works.
The examples are very good and for the chapter in question, it does cover well the subject. They are not easy to understand if you never program or even don't use Linux in a daily basis, but you get there. It covers everything you need to write programs for Linux.

Definitely a good book - I'm using it all the time

Six stars.
Comment | 
Was this review helpful to you?
2 of 2 people found the following review helpful
5.0 out of 5 stars Compares to Stevens 6 Mar 2011
The author combines programming examples with substantial, well-written narratives that describe why things are so. By being devoted to linux, this book is more specific to Stevens, but compares to it. I hope the author will consider bringing some of the rich detail avilable here back into the man page system.
Was this review helpful to you?
Would you like to see more reviews about this item?
Were these reviews helpful?   Let us know

Popular Highlights

 (What's this?)
The Linux kernel executable typically resides at the pathname /boot/vmlinuz &quote;
Highlighted by 5 Kindle users
An application binary interface (ABI) is a set of rules specifying how a binary executable should exchange information with some service (e.g., the kernel or a library) at run time. &quote;
Highlighted by 5 Kindle users
The resource limits of the shell can be adjusted using the ulimit command &quote;
Highlighted by 4 Kindle users

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions