UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API
by W. Richard Stevens; Bill Fenner; Andrew M. Rudoff
Programming with POSIX® Threads
by David R. Butenhof
Unix™ Systems Programming: Communication, Concurrency, and Threads
by Kay A. Robbins; Steven Robbins
Classic Shell Scripting, 1st Edition
by Arnold Robbins; Nelson H.F. Beebe
Unix Power Tools, 3rd Edition
by Shelley Powers; Jerry Peek; Tim O'Reilly; Mike Loukides
Unix in a Nutshell, 4th Edition
by Arnold Robbins
Mac OS X For Unix Geeks, 4th Edition
by Ernest E. Rothman; Brian Jepson; Rich Rosen
Learning the Unix Operating System, 5th Edition
by Jerry Peek; Grace Todino-Gonguet; John Strang
"Stephen Rago's update is a long overdue benefit to the community of professionals using the versatile family of UNIX and UNIX-like operating environments. It removes obsolescence and includes newer developments. It also thoroughly updates the context of all topics, examples, and applications to recent releases of popular implementations of UNIX and UNIX-like environments. And yet, it does all this while retaining the style and taste of the original classic."
--Mukesh Kacker, cofounder and former CTO of Pronto Networks, Inc.
"One of the essential classics of UNIX programming."
--Eric S. Raymond, author of The Art of UNIX Programming
"This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the classic Stevens text while keeping true to the original. The APIs are illuminated by clear examples of their use. He also mentions many of the pitfalls to look out for when programming across different UNIX system implementations and points out how to avoid these pitfalls using relevant standards such as POSIX 1003.1, 2004 edition and the Single UNIX Specification, Version 3."
--Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group
"Advanced Programming in the UNIX® Environment, Second Edition, is an essential reference for anyone writing programs for a UNIX system. It's the first book I turn to when I want to understand or re-learn any of the various system interfaces. Stephen Rago has successfully revised this book to incorporate newer operating systems such as GNU/Linux and Apple's OS X while keeping true to the first edition in terms of both readability and usefulness. It will always have a place right next to my computer."
--Dr. Benjamin Kuperman, Swarthmore College
Praise for the First Edition
"Advanced Programming in the UNIX® Environment is a must-have for any serious C programmer who works under UNIX. Its depth, thoroughness, and clarity of explana-tion are unmatched."
--UniForum Monthly
"Numerous readers recommended Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley), and I'm glad they did; I hadn't even heard of this book, and it's been out since 1992. I just got my hands on a copy, and the first few chapters have been fascinating."
--Open Systems Today
"A much more readable and detailed treatment of UNIX internals can be found in Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley). This book includes lots of realistic examples, and I find it quite helpful when I have systems programming tasks to do."
--RS/Magazine
"This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the original Stevens classic while keeping true to the original."
--Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group
For over a decade, serious C programmers have relied on one book for practical, in-depth knowledge of the programming interfaces that drive the UNIX and Linux kernels: W. Richard Stevens' Advanced Programming in the UNIX® Environment. Now, Stevens' colleague Stephen Rago has thoroughly updated this classic to reflect the latest technical advances and add support for today's leading UNIX and Linux platforms.
Rago carefully retains the spirit and approach that made this book a classic. Building on Stevens' work, he begins with basic topics such as files, directories, and processes, carefully laying the groundwork for understanding more advanced techniques, such as signal handling and terminal I/O.
Substantial new material includes chapters on threads and multithreaded programming, using the socket interface to drive interprocess communication (IPC), and extensive coverage of the interfaces added to the latest version of the POSIX.1 standard. Nearly all examples have been tested on four of today's most widely used UNIX/Linux platforms: FreeBSD 5.2.1; the Linux 2.4.22 kernel; Solaris 9; and Darwin 7.4.0, the FreeBSD/Mach hybrid underlying Apple's Mac OS X 10.3.
As in the first edition, you'll learn through example, including more than 10,000 lines of downloadable, ANSI C source code. More than 400 system calls and functions are demonstrated with concise, complete programs that clearly illustrate their usage, arguments, and return values. To tie together what you've learned, the book presents several chapter-length case studies, each fully updated for contemporary environments.
Advanced Programming in the UNIX® Environment has helped a generation of programmers write code with exceptional power, performance, and reliability. Now updated for today's UNIX/Linux systems, this second edition will be even more indispensable.
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 14 Ratings
Great book - accompanying code is architecturally stale - Linux not included - 2009-03-18
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
This book is a classic and remains a very valuable conceptual guide. While the text seems to be up-to-date, the accompanying code suffers from the age of the environment in which is was originally written and has not been ported to Linux. I write this review from the Linux point of view as I am not programming in the Sun or BSD environment.
I purchased the book with the idea of learning pty programming for Fedora. While the chapter was very informative in its discussions, using the man pages is required. As the source code accompanying the book doesn't address Linux, per se, and one may be tempted to use the apue.linux3.tar.Z download with its Red Hat port of the common library. Downloading it may be helpful, but the added code was written for Red Hat 6 and the book is newer than that. Specifically, the pty open code was not functional and I reverted to the svr4 code which still needed tweaking.
Some of the original sample code is architecturally out of step with the current way of doing things. For example, originally ptys were found by canonically generating all pty names until one could be successfully opened. The sample code is written to return the successfully generated name. The current method in Linux (and elsewhere, I suppose) is to open("/dev/ptmx") and then call ptsname(). So plan on using this to study and then writing your own more modern code or tweak the sample code as needed. Of course, one of the goals of the code is to create a portable library to support various *nix flavors, so this criticism may be overstated.
Still, it seems a thorough modernization of the sample code would have made this book more valuable. But as I said, I am not programming in the Sun or BSD environment.
Great that it's now available in paperback! - 2008-02-26
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Three years ago, this second edition was released in hardcover. A worthy and needed updating of the first edition. Now this paperback edition is made available. The cheaper cost will benefit some readers. Its reputation as one of the standard unix texts means that many unix and linux programmers need it in their workplace. But possibly the cost of the hardcover version was a deterrent.
Meanwhile, I reproduce my review of the second edition, hardcover, from 2005, below. My remarks in it still stand.
===========================
Many of you who learnt unix in the 90s would have cut your teeth on the first edition of this book. This second edition should be well received. It encapsulates the changes in the unix world since 92. Most importantly, it shows the rise of linux. A rise that is still unabated.
Broadly, the structure of this edition matches the first edition. Rago was brought in as co-author after Stevens died in 99, and he has deliberately kept this consistency. I was glad to see that Rago kept the exercises at the end of each chapter. Many computer books seem to dispense with this, which can be a pity for anyone who needs hands on tasks to learn from.
The threading chapters are a significant change from the first edition. Not simple reading, but they do reflect powerful ways to possibly optimise your code. The biggest cost for you may be the effort you need to invest in understanding the coding issues in these chapters. Rago's code examples are deliberately short, and necessarily somewhat artificial. But they do demonstrate well the various threading issues.
Of course, other chapters have had minimal alterations. How much have terminal I/O or pseudoterminals changed in 10 years? Those chapters may be old friends to you.
Must-have for troubleshooters - 2008-01-08
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I occasionally need to fix broken IPC code and figure out behavior differences
of legacy code between Solaris, Linux, etc., code written years ago by somebody
else in C.
This book, (and Stevens' earlier books before this) has been immensely useful.
The code samples alone are worth their weight in gold :-). Seriously, this book
has saved me many days of hard work, several times over.
A quick browse of the book is usually enough to find the details (what I would
call 'arcane details', but I guess this is because I'm not an expert C/networking
programmer), figure out the problem AND how to fix the problem.
This book has been a 'project-saver'. I cannot recommend this text too highly.
A book every serious programmer should have - 2009-09-10
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
This is the best $52 I have ever spent in my life. This book is really great. It provides very detailed information about UNIX functions.
I think every one should have this books at their desk. I love this book. :)
Classic on UNIX based programming - 2008-06-06
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Its a very extensive book that covers concepts and advanced features of UNIX. It covers UNIX implementation of different features as a user point of view and how to access diffent services of UNIX like OSs. If you want to learn UNIX /Linux based programming this book a must read & must have for reference. I highly recommend this book
Some information on this page was provided using data from Amazon.com®. View at Amazon >