Advanced Programming in the UNIX® Environment, Second Edition

About the Book

Source Code

The Lost Chapter


Additional Acknowledgements


Contact the Author

Rich Stevens home page

Buy the book from Addison-Wesley Professional

Thanks to the following people who reported typos or problems with APUE2e, or otherwise helped in some way.

  1. Thomas Dickey pointed out that UNIX Curses Explained is out of print.
  2. Michael Kerrisk has the honor of reporting the first mistake in the book (error #1). Michael also wrote a test program to illustrate the behavior of signals and threads. Michael pointed out that the return value for setenv and unsetenv should be more specific (error #9). He also pointed out that the Corrigenda for the Single UNIX Specification added two more functions to the list of ones that are safe to be called from signal handlers (error #10). Michael also reported error #19.
  3. Bob Cousins found error #2.
  4. Michael Hobgood reported error #3 and error #23.
  5. Luke Bakken found error #4.
  6. Konstantinos Sakoutis reported error #5.
  7. Jim Oldfield reported the typo in the pthread_create function prototype (error #6).
  8. Dan McGregor reports that Mac OS X version 10.4 has added support for the pthread_atfork function.
  9. Simon Morgan pointed out the typo on page 158 (error #7).
  10. Yuching Chen reported error #8.
  11. Loïc Domaigné reported several problems with the threads chapters (error #11, error #12, error #13, error #14, and error #16).
  12. Several people found error #15, but was the first person to bring it to my attention. He also found error #17.
  13. Zvezdan Petkovic reported the potential buffer overflow problem (error #20).
  14. David Reiss found the typo on page 255 (error #21).
  15. Igor Fuksman brought the problem described in FAQ #8 to my attention.
  16. David Smoot was the first to report compilation problems on Mac OS X version 10.4 (FAQ #10).
  17. Mike Cheng pointed out the misleading statement mentioned in error #22.
  18. Greg Miller raised the point about connect_retry not working with TCP after the first attempt fails (see FAQ #9).