Add Book to My BookshelfPurchase This Book Online

Preface -

UNIX Systems Programming for SVR4
David A. Curry
 Copyright © 1996 O'Reilly & Associates, Inc.

Scope of This Book
The book is organized in a “bottom up” fashion, first presenting the simple functions and concepts that form the building blocks for the more complex material at the end of the book.
Chapter 1, Introduction to SVR4, provides a brief history of the development of the UNIX operating system, culminating in the release of SVR4. It then presents the standards with which SVR4 complies, followed by some short notes on compiler usage and the BSD Source Compatibility Package.
Chapter 2, Utility Routines, introduces most of the utility routines provided for manipulating character strings, byte strings, and character classes; dynamically allocating memory; manipulating temporary files; and parsing command-line arguments. Much of the material in this chapter will be familiar to many readers, but it provides a common base from which to start.
Chapter 3, Low-Level I/O Routines, describes the low-level UNIX input/output (I/O) paradigm, in which buffering and other mundane tasks must be performed by the programmer.
Chapter 4, The Standard I/O Library, describes the high-level UNIX I/O paradigm, in which buffering and other mundane tasks are performed by a library of functions.
Chapter 5, Files and Directories, introduces the UNIX filesystem. This includes an overview of how the filesystem works, how to examine and change file attributes, how to create and delete files and directories, and how to traverse directory trees.
Chapter 6, Special-Purpose File Operations, describes special-purpose operations on files such as processing multiple input streams, file and record locking, and memory-mapped files.
Chapter 7, Time of Day Operations, describes how to examine the system's time of day clock and the wide variety of functions for reading and printing time and date strings.
Chapter 8, Users and Groups, explains the formats of the password, shadow password, and group files, and how to obtain information from them. It also describes how to determine who is logged in, when a user last logged in or out, and how to change a program's effective user ID or group ID. This chapter includes a special section on writing set user ID programs.
Chapter 9, System Configuration and Resource Limits, describes how to examine and change various system and user limits such as the hostname, maximum number of characters in a filename, maximum size of a file in bytes, maximum number of open files per process, or the maximum amount of CPU time a process can consume.
Chapter 10, Signals, explains the concept of signals, including how to send them, ignore them, and catch them.
Chapter 11, Processes, describes how to create new processes, how to execute other programs, how to redirect input and output from one process to another, how to use the job control facilities, and how to time process execution.
Chapter 12, Terminals, explains how to examine and change serial line characteristics such as baud rate, character echo, input buffering, and special characters.
Chapter 13, Interprocess Communication, describes the mechanisms that allow processes on the same host to communicate: pipes, FIFOs, UNIX-domain sockets, message queues, semaphores, and shared memory.
Chapter 14, Networking with Sockets, describes the most common UNIX network programming interface: Berkeley sockets.
Chapter 15, Networking with TLI, describes the Transport Layer Interface (TLI), which is a less popular, but more flexible interface to network programming.
Chapter 16, Miscellaneous Routines, describes all the “leftover” functions that are generally useful but don't fit into any of the preceding chapters. These include routines for exiting, printing and logging error messages, searching, table lookup, pattern matching, passwords, database management, modem management, environment variables, random numbers, and regular expressions.
The appendixes provide information on topics that are of less general use than those in the main part of the book, but are nevertheless important.
Appendix A, Significant Changes in ANSI C, provides a brief summary of the significant differences between ANSI C and the version of the language described by Kernighan and Ritchie.
Appendix B, Accessing Filesystem Data Structures, describes how to read raw filesystem data directly from the disk, as is done by programs such as df, fsck, and ufsdump.
Appendix C, The /proc Filesystem, explains how to read information directly from process memory, as is done by programs such as ps.
Appendix D, Pseudo-Terminals, describes how to allocate and use pseudo terminal devices for a variety of purposes. This appendix describes both the SVR4 interface and the more common BSD interface.
Appendix E, Accessing the Network at the Link Level, describes the Data Link Provider Interface (DLPI), which is used for sending and receiving raw network packets. Programs such as snoop and in.rarpd use DLPI. Conversion of programs using the SunOS 4.x Network Interface Tap (NIT) to DLPI is also described.

Previous SectionNext Section
Books24x7.com, Inc © 2000 –  Feedback