Professor Terrence Chan of the University of California Berkeley and Santa Cruz extension programs teaching Advanced UNIX Programming with C and C++.
Reviewed By Qi Luo
This book is a good reference source for threads and UNIX system calls. When a novice C++ programmer and starting to delve into Solaris system calls, this book gives out a lot of the examples and explanations a reader need to develop her or his applications. It also saves her or him from creating utilities that may be not known but already in its existence. I especially like the format. It gives a simple explanation, an example of each of the major parts, an example of the code that compiled under a real world environment, and a display of the program in action.
This book helps C programmers on UNIX in advanced C++ programming techniques in the UNIX/POSIX environment, so that they will understand the advanced features of the ANSI-C language, become familiar with C library functions and the UNIX system calls, and become familiar with the ANSI-C and POSIX standards.
This book is also a good reference for UNIX. When the OOP/C++ was not as mature as now and still in progress a few years ago while the book was written, it may cover more on the Objected Oriented Programming if it were written today. I have worked for a few leading large-scale high-performance trading engine systems for stock exchanges, such as Pacific Exchange, the national third largest, NASDAQ Stock Market, the national second largest, commodities exchanges, and Internet auction engine, and global company rating search engines. I still found the part about threads in UNIX system programming a useful reference.
Mr. Terrence Chan's book will help readers: If you're an experienced UNIX system programmer working in C++, UNIX System Programming Using C++ brings together all the advanced techniques you need to build more effective software, to write more powerful C++ programs more quickly.
This book tried to focus on the real-life challenges you face developing network and client/server applications, databases, compilers, operating systems, and CAD systems. You can learn new ways to develop C++ programs that are strongly type-checked, compact, and easy to maintain.
You will find the author also tried to cover:
1. Advanced ANSI C and some advanced C++ programming techniques, including function pointers and functions that accept variable numbers of arguments 2. How to use ANSI C library functions and C++ standard classes to reduce development time and maximize portability 3. The UNIX kernel structure and API -- and how to use them to manipulate system resources UNIX processes and signals 4. UNIX sockets and TLI, the network transport protocols that allow you to create multi-tasking distributed client/server applications 5. UNIX multithreaded programming, including thread APIs, synchronization and thread-specific data
The book includes extensive example programs that demonstrate how C++ classes, library functions and system APIs are used. To help you build more portable applications, there's also coverage of the POSIX.1 and POSIX.1b standards.
Today's distributed, networked applications require you to understand and utilize advanced UNIX system programming techniques. With UNIX System Programming Using C++, you will learn those techniques and become comfortable using them.
If you will be programming in C with C++ encapsulation, this book is useful. As we all know, no book is perfect. The typos in code lists are especially annoying for software developers. Some statistics suggested that 80% of debugging time be spent on misspellings or naming errors. If you can see through the typographic errors and extract the essence from this book, this book is still worth of reading and a place on her or his bookshelf.