Discover useful tools, tutorials, and helpful resources organized by category
The Sockets Networking API (Volume 1 of UNIX® Network Programming) by W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff is a definitive, in-depth guide to building networked applications on UNIX. It covers everything from the basics of TCP/IP, socket creation, binding, listening, and connecting, to advanced topics like multiplexing (select, poll), nonblocking I/O, raw sockets, IPv6 interoperability, SCTP, and daemon design. Updated to reflect modern systems and standards, this edition equips developers to design robust, efficient, cross-platform network software using the UNIX socket API.
Advanced Programming in the UNIX Environment by W. Richard Stevens is a classic, authoritative reference for system-level UNIX programming in C. It covers over 200 UNIX and POSIX system calls and library functions, with clear examples illustrating how each works in practice. The book blends theory with hands-on code, walking readers through building real programs like a shell, a database library, and a pseudo-terminal controller. It’s valued not only as a teaching text, but also as a reference you return to when dealing with low-level I/O, process control, signals, file systems, and interprocess communication.
The Linux Programming Interface by Michael Kerrisk is a comprehensive, in-depth guide and reference to Linux and UNIX system programming, blending theory and practical code examples. It walks through hundreds of system calls and library routines (file I/O, process control, signals, threads, interprocess communication, sockets, memory management, etc.), offering detailed explanations along with dozens of example programs. What makes the book stand out is its dual role as both a learning text and a technical reference: you can read it sequentially to build your understanding, or dip into particular chapters when you need to understand a specific API. Kerrisk, having been the maintainer of the Linux man-pages project, draws on deep familiarity with kernel and C library interfaces, which further enriches the clarity and accuracy of the explanations. The result is a book often regarded as the definitive handbook for serious system programmers working on Linux/UNIX platforms.