The answers to these questions, and more, are in Linux Application Development by Example, Second Edition! This book tells you exactly what you need to know--no more and no less--about the fundamental Linux system programming APIs.
Following the latest POSIX standard, author Arnold Robbins explains how the basic file, process, IPC and networking APIs work. When possible, he demonstrates the use of the APIs with code drawn from real programs (V7 Unix, BSD Unix, and GNU), and when that's not possible, he provides small, clearly documented and annotated, standalone example programs of his own. All code presented in the book is available for download, so you can compile, run, and modify the programs yourself.
Robbins focuses on both high-level principles and "under the hood" techniques. Along the way, he carefully addresses real-world issues like performance, portability, and robustness.
Each chapter closes with exercises, ranging from coding problems to thought experiments, to help you cement your understanding of the material covered, and all chapters have been thoroughly revised and updated for this edition, along with two chapters new in this edition.
Just learning to program? Switching from Windows or macOS? Already developing with Linux but interested in exploring the system call interface further? No matter which, quickly and directly, this book will help you master the fundamentals needed to build serious Linux software.
"It's rare that I read a programming book and find myself enjoying it. I enjoyed going through this manuscript, to the point where I would be surprised that a couple hours would go by while I was absorbed in the topics.... It deserves to sit on my shelf alongside other classics."
--Matthew Helmke, Linux author and consultant
With a Foreword by Chet Ramey, maintainer of the Bash shell
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Arnold Robbins is a professional software engineer and technical author. He has been working with Unix systems of various sorts, GNU/Linux systems, C, C++, and all the other major Unix tools since 1980. As a long-time volunteer for the GNU project, he has been the maintainer of gawk (GNU Awk) for many years. In 2024, he was awarded the USENIX Lifetime Achievement Award ("The Flame") for his work on GNU Awk and for his numerous books on topics related to Unix and Linux.