Advanced Programming in the UNIX Environment (3rd Edition) (Addison-Wesley Professional Computing Series) (英語) ペーパーバック – 2013/5/24
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
For more than twenty years, 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, once again, Rich’s colleague Steve Rago has thoroughly updated this classic work. The new third edition supports today’s leading platforms, reflects new technical advances and best practices, and aligns with Version 4 of the Single UNIX Specification.
Steve carefully retains the spirit and approach that have made this book so valuable. Building on Rich’s pioneering work, he begins with files, directories, and processes, carefully laying the groundwork for more advanced techniques, such as signal handling and terminal I/O. He also thoroughly covers threads and multithreaded programming, and socket-based IPC.
This edition covers more than seventy new interfaces, including POSIX asynchronous I/O, spin locks, barriers, and POSIX semaphores. Most obsolete interfaces have been removed, except for a few that are ubiquitous. Nearly all examples have been tested on four modern platforms: Solaris 10, Mac OS X version 10.6.8 (Darwin 10.8.0), FreeBSD 8.0, and Ubuntu version 12.04 (based on Linux 3.2).
As in previous editions, you’ll learn through examples, including more than ten thousand lines of downloadable, ISO C source code. More than four hundred 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 reflecting contemporary environments.
Advanced Programming in the UNIX® Environment has helped generations of programmers write code with exceptional power, performance, and reliability. Now updated for today’s systems, this third edition will be even more valuable.
The late W. Richard Stevens was the acclaimed author of UNIX® Network Programming, Volumes 1 and 2, widely recognized as the classic texts in UNIX networking; TCP/IP Illustrated, Volumes 1-3; and the first edition of this book.
Stephen A. Rago is the author of UNIX® System V Network Programming (Addison-Wesley, 1993). Rago was one of the Bell Laboratories developers who built UNIX System V Release 4. He served as a technical reviewer for the first edition of Advanced Programming in the UNIX® Environment. Rago currently works as a research staff member in the Storage Systems Group at NEC Laboratories America.
Amazon.com で最も参考になったカスタマーレビュー (beta) （「Early Reviewer Program」のレビューが含まれている場合があります）
The real strength of this book is in the definitions. We get to see the purpose and flexibility of system calls and functions. Not just use them but understand them. UNIX functions as job control or signals are explained in detail. Let’s take just one item “waitpid”:
The waitpid function provides three features that aren’t provided by the wait function.
You will have to red the book to find out what they are. However there are examples also. Now for people with real systems like AIX all you have to do is ad a “k” to the front of the call and you have the AIX kernel function call “kwaitpid”; voila you now have an understanding that can not be found clearly in a Red Book.
It does help some to have a preunderstanding of the system do you can use the book to fill in the education holes missed when necessary.
The index is worth its weight in gold as you can find functions headers and concepts all in alphabetical order. My favorite is the definitions.
As much as I am a fan of the internet it also pays to carry the information in the form of a book. And all this book has to do is save a couple of hours and it has paid for its self.
1. The book focuses heavily on standards and portability. Throughout the book, API and implementations are described according to the SUS or XSI standards. However, to book maintains a firm grasp on reality by tracking 4 real Unix-like systems, Solaris, Linux, Mac OS X, and FreeBSD throughout and noting implementation specific exceptions and extensions where applicable.
2. A lot of illustrative example code is included. In some cases API functions are re-implemented to make it clear exactly how it works.
APUEv2 reads quite easily as a beginner's introduction to programming in the Unix environment. However it also includes a great deal of tables, charts, and figures to make it suitable as a reference for the more experienced programmer, useful as a back-up in case the local man pages are not available.
As mentioned in the foreword, readers should be comfortable with the C language itself before attempting to dive in to Unix programming.