A comprehensive book for programmers who need to call the facilities of the Unix kernel.
This book is aimed at programmers working in C writing applications for the Unix operating system.
Chapter one is a five-page review of the Unix file system, processes and what is meant by the term system call. The following three chapters discuss files and directories and their use, e.g.
open(), close(), read(), write(), sequential and random access, ownership,
chmod(), etc. plus introducing stdio.h and errno.h. The next four chapters discuss processes and IPC, e.g.
exec(), signals, pipes, record locking, message passing, semaphores and shared memory. Chapter nine deals with terminal handling and chapter ten is a brief introduction to network programming, i.e. IP addresses, ports and the socket interface for connection oriented (TCP virtual circuit) and connectionless oriented (UDP datagram) models. Chapter 11 covers the C standard I/O library stdio.h in detail and chapter 12 miscellaneous routines. Each chapter has plenty of relevant examples programs with associated discussion.
A comprehensive book for programmers who need to call the facilities of the Unix kernel. More comprehensive in this area than The Unix Programming Environment by Kernighan and Pike (which also covers shell commands and programming). Well worth considering for undergraduate courses where Unix is used in operating systems and networks modules (I must admit I now tend to use Java for much of this teaching - though verbose, the APIs are a lot easier to use than Unix system calls). The reader will need a working knowledge of basic UNIX commands, using the file system, an editor, the C compiler and implementing and debugging C programs. Recommended!