file systems |
Aftersleep Books
|
||||||||||||||||||||
Advanced Programming in the UNIX EnvironmentThe following report compares books using the SERCount Rating (base on the result count from the search engine). |
|||||||||||||||||||||
|
Aftersleep Books - 2005-06-20 07:00:00 | © Copyright 2004 - www.aftersleep.com () | sitemap | top |
Preface
1. Introduction (a "whirlwind tour of Unix")
2. Unix Standardization and Implementations
3. File I/O
4. Files and Directories
5. Standard I/O Library
6. System Data Files and Information
7. The Environment of a Unix Process
8. Process Control
9. Process Relationships
10. Signals
11. Terminal I/O
12. Advanced I/O
13. Daemon Processes
14. Interprocess Communication
15. Advanced Interprocess Communication
16. A Database Library
17. Communicating with a PostScript Printer
18. A Modem Dialer
19. Pseudo Terminals
Appendices
A. Function Prototypes
B. Miscellaneous Source Code (all source code is available for download)
C. Solutions to Selected Exercises
Bibliography
Index
The first thing to understand about the book is that while it can be used as just a reference work (the index is wonderful), it really is a book you can and should read. Even if you think you know a lot of this stuff, you can be surprised at what you can still learn.
What makes the book so much more useful than just a collection of man-page print-outs (that dreary and painfully common form of UNIX "book") is the method of presentation. Stevens' basic atom of organization is the function call. For each call (or minor variations on a single call), he provides the C prototype, and then, in text, explains what the function does, what it's arguments are for, and then typically provides a small C program that demonstrates it in action, which he then explains. These function-level building blocks are arranged into related sets, each of which is a chapter in the book. Each chapter has a wrapper that consists of an introduction explaining some basic concepts and history of the functions described in that chapter, and some review exercises at the end. The chapters themselves are arranged so that the earlier chapters describe the basic functions, and the later chapters describe the more difficult functions. Every chapter both teaches the reader something of immediate use in writing code (even the introduction has sample programs), as well as preparing him for the more difficult subjects that lie ahead.
Now for the caveats. Stevens absolutely assumes that you know how to program in C and that you know how to use Unix development tools (or at least that you have some other source from which to learn them). This is not the book to learn how to use C or particular shells, editors, compilers, linkers, or debuggers. Similarly, new Unix variants, such as Linux and MacOS X, receive no specific mention here at all (though the book is invaluable for both). Also, there is no discussion of the various GUI interfaces offered on many current Unix systems - for those, some other book will necessary.
One other thing worth mentioning is the cost of the book. Don't be put off by it - Stevens' book has been justifying that cost for a lot of readers for a lot of years.
In closing, I've been a developer for many years and have owned many computer books. I recommend very few of them, but can't recommend this one highly enough. It is one of the few books I've had that routinely lies open beside me when I work. In addition to my personal recommendation, you might look not only at all the positive reviews for this book, but also at the reviews for "competitive" books and notice how often they refer you back to this one. This book is the standard by which other UNIX programming books are measured, and so far, it has not been surpassed.