Team BBL
Previous Page Next Page

Book Cover
Advanced Programming in the UNIX® Environment: Second Edition
By W. Richard Stevens, Stephen A. Rago
...............................................
Publisher: Addison Wesley Professional
Pub Date: June 17, 2005
ISBN: 0201433079
Pages: 960
 

Table of Contents  | Index

   Copyright
   Praise for Advanced Programming in the UNIX® Environment, Second Edition
   Praise for the First Edition
   Addison-Wesley Professional Computing Series
   Foreword
   Preface
      Introduction
      Changes from the First Edition
      Acknowledgments
   Preface to the First Edition
      Introduction
      Unix Standards
      Organization of the Book
      Examples in the Text
      Systems Used to Test the Examples
      Acknowledgments
        Chapter 1.  UNIX System Overview
      Section 1.1.  Introduction
      Section 1.2.  UNIX Architecture
      Section 1.3.  Logging In
      Section 1.4.  Files and Directories
      Section 1.5.  Input and Output
      Section 1.6.  Programs and Processes
      Section 1.7.  Error Handling
      Section 1.8.  User Identification
      Section 1.9.  Signals
      Section 1.10.  Time Values
      Section 1.11.  System Calls and Library Functions
      Section 1.12.  Summary
      Exercises
        Chapter 2.  UNIX Standardization and Implementations
      Section 2.1.  Introduction
      Section 2.2.  UNIX Standardization
      Section 2.3.  UNIX System Implementations
      Section 2.4.  Relationship of Standards and Implementations
      Section 2.5.  Limits
      Section 2.6.  Options
      Section 2.7.  Feature Test Macros
      Section 2.8.  Primitive System Data Types
      Section 2.9.  Conflicts Between Standards
      Section 2.10.  Summary
      Exercises
        Chapter 3.  File I/O
      Section 3.1.  Introduction
      Section 3.2.  File Descriptors
      Section 3.3.  open Function
      Section 3.4.  creat Function
      Section 3.5.  close Function
      Section 3.6.  lseek Function
      Section 3.7.  read Function
      Section 3.8.  write Function
      Section 3.9.  I/O Efficiency
      Section 3.10.  File Sharing
      Section 3.11.  Atomic Operations
      Section 3.12.  dup and dup2 Functions
      Section 3.13.  sync, fsync, and fdatasync Functions
      Section 3.14.  fcntl Function
      Section 3.15.  ioctl Function
      Section 3.16.  /dev/fd
      Section 3.17.  Summary
      Exercises
        Chapter 4.  Files and Directories
      Section 4.1.  Introduction
      Section 4.2.  stat, fstat, and lstat Functions
      Section 4.3.  File Types
      Section 4.4.  Set-User-ID and Set-Group-ID
      Section 4.5.  File Access Permissions
      Section 4.6.  Ownership of New Files and Directories
      Section 4.7.  access Function
      Section 4.8.  umask Function
      Section 4.9.  chmod and fchmod Functions
      Section 4.10.  Sticky Bit
      Section 4.11.  chown, fchown, and lchown Functions
      Section 4.12.  File Size
      Section 4.13.  File Truncation
      Section 4.14.  File Systems
      Section 4.15.  link, unlink, remove, and rename Functions
      Section 4.16.  Symbolic Links
      Section 4.17.  symlink and readlink Functions
      Section 4.18.  File Times
      Section 4.19.  utime Function
      Section 4.20.  mkdir and rmdir Functions
      Section 4.21.  Reading Directories
      Section 4.22.  chdir, fchdir, and getcwd Functions
      Section 4.23.  Device Special Files
      Section 4.24.  Summary of File Access Permission Bits
      Section 4.25.  Summary
      Exercises
        Chapter 5.  Standard I/O Library
      Section 5.1.  Introduction
      Section 5.2.  Streams and FILE Objects
      Section 5.3.  Standard Input, Standard Output, and Standard Error
      Section 5.4.  Buffering
      Section 5.5.  Opening a Stream
      Section 5.6.  Reading and Writing a Stream
      Section 5.7.  Line-at-a-Time I/O
      Section 5.8.  Standard I/O Efficiency
      Section 5.9.  Binary I/O
      Section 5.10.  Positioning a Stream
      Section 5.11.  Formatted I/O
      Section 5.12.  Implementation Details
      Section 5.13.  Temporary Files
      Section 5.14.  Alternatives to Standard I/O
      Section 5.15.  Summary
      Exercises
        Chapter 6.  System Data Files and Information
      Section 6.1.  Introduction
      Section 6.2.  Password File
      Section 6.3.  Shadow Passwords
      Section 6.4.  Group File
      Section 6.5.  Supplementary Group IDs
      Section 6.6.  Implementation Differences
      Section 6.7.  Other Data Files
      Section 6.8.  Login Accounting
      Section 6.9.  System Identification
      Section 6.10.  Time and Date Routines
      Section 6.11.  Summary
      Exercises
        Chapter 7.  Process Environment
      Section 7.1.  Introduction
      Section 7.2.  main Function
      Section 7.3.  Process Termination
      Section 7.4.  Command-Line Arguments
      Section 7.5.  Environment List
      Section 7.6.  Memory Layout of a C Program
      Section 7.7.  Shared Libraries
      Section 7.8.  Memory Allocation
      Section 7.9.  Environment Variables
      Section 7.10.  setjmp and longjmp Functions
      Section 7.11.  getrlimit and setrlimit Functions
      Section 7.12.  Summary
      Exercises
        Chapter 8.  Process Control
      Section 8.1.  Introduction
      Section 8.2.  Process Identifiers
      Section 8.3.  fork Function
      Section 8.4.  vfork Function
      Section 8.5.  exit Functions
      Section 8.6.  wait and waitpid Functions
      Section 8.7.  waitid Function
      Section 8.8.  wait3 and wait4 Functions
      Section 8.9.  Race Conditions
      Section 8.10.  exec Functions
      Section 8.11.  Changing User IDs and Group IDs
      Section 8.12.  Interpreter Files
      Section 8.13.  system Function
      Section 8.14.  Process Accounting
      Section 8.15.  User Identification
      Section 8.16.  Process Times
      Section 8.17.  Summary
      Exercises
        Chapter 9.  Process Relationships
      Section 9.1.  Introduction
      Section 9.2.  Terminal Logins
      Section 9.3.  Network Logins
      Section 9.4.  Process Groups
      Section 9.5.  Sessions
      Section 9.6.  Controlling Terminal
      Section 9.7.  tcgetpgrp, tcsetpgrp, and tcgetsid Functions
      Section 9.8.  Job Control
      Section 9.9.  Shell Execution of Programs
      Section 9.10.  Orphaned Process Groups
      Section 9.11.  FreeBSD Implementation
      Section 9.12.  Summary
      Exercises
        Chapter 10.  Signals
      Section 10.1.  Introduction
      Section 10.2.  Signal Concepts
      Section 10.3.  signal Function
      Section 10.4.  Unreliable Signals
      Section 10.5.  Interrupted System Calls
      Section 10.6.  Reentrant Functions
      Section 10.7.  SIGCLD Semantics
      Section 10.8.  Reliable-Signal Terminology and Semantics
      Section 10.9.  kill and raise Functions
      Section 10.10.  alarm and pause Functions
      Section 10.11.  Signal Sets
      Section 10.12.  sigprocmask Function
      Section 10.13.  sigpending Function
      Section 10.14.  sigaction Function
      Section 10.15.  sigsetjmp and siglongjmp Functions
      Section 10.16.  sigsuspend Function
      Section 10.17.  abort Function
      Section 10.18.  system Function
      Section 10.19.  sleep Function
      Section 10.20.  Job-Control Signals
      Section 10.21.  Additional Features
      Section 10.22.  Summary
      Exercises
        Chapter 11.  Threads
      Section 11.1.  Introduction
      Section 11.2.  Thread Concepts
      Section 11.3.  Thread Identification
      Section 11.4.  Thread Creation
      Section 11.5.  Thread Termination
      Section 11.6.  Thread Synchronization
      Section 11.7.  Summary
      Exercises
        Chapter 12.  Thread Control
      Section 12.1.  Introduction
      Section 12.2.  Thread Limits
      Section 12.3.  Thread Attributes
      Section 12.4.  Synchronization Attributes
      Section 12.5.  Reentrancy
      Section 12.6.  Thread-Specific Data
      Section 12.7.  Cancel Options
      Section 12.8.  Threads and Signals
      Section 12.9.  Threads and fork
      Section 12.10.  Threads and I/O
      Section 12.11.  Summary
      Exercises
        Chapter 13.  Daemon Processes
      Section 13.1.  Introduction
      Section 13.2.  Daemon Characteristics
      Section 13.3.  Coding Rules
      Section 13.4.  Error Logging
      Section 13.5.  Single-Instance Daemons
      Section 13.6.  Daemon Conventions
      Section 13.7.  ClientServer Model
      Section 13.8.  Summary
      Exercises
        Chapter 14.  Advanced I/O
      Section 14.1.  Introduction
      Section 14.2.  Nonblocking I/O
      Section 14.3.  Record Locking
      Section 14.4.  STREAMS
      Section 14.5.  I/O Multiplexing
      Section 14.6.  Asynchronous I/O
      Section 14.7.  readv and writev Functions
      Section 14.8.  readn and writen Functions
      Section 14.9.  Memory-Mapped I/O
      Section 14.10.  Summary
      Exercises
        Chapter 15.  Interprocess Communication
      Section 15.1.  Introduction
      Section 15.2.  Pipes
      Section 15.3.  popen and pclose Functions
      Section 15.4.  Coprocesses
      Section 15.5.  FIFOs
      Section 15.6.  XSI IPC
      Section 15.7.  Message Queues
      Section 15.8.  Semaphores
      Section 15.9.  Shared Memory
      Section 15.10.  ClientServer Properties
      Section 15.11.  Summary
      Exercises
        Chapter 16.  Network IPC: Sockets
      Section 16.1.  Introduction
      Section 16.2.  Socket Descriptors
      Section 16.3.  Addressing
      Section 16.4.  Connection Establishment
      Section 16.5.  Data Transfer
      Section 16.6.  Socket Options
      Section 16.7.  Out-of-Band Data
      Section 16.8.  Nonblocking and Asynchronous I/O
      Section 16.9.  Summary
      Exercises
        Chapter 17.  Advanced IPC
      Section 17.1.  Introduction
      Section 17.2.  STREAMS-Based Pipes
      Section 17.3.  UNIX Domain Sockets
      Section 17.4.  Passing File Descriptors
      Section 17.5.  An Open Server, Version 1
      Section 17.6.  An Open Server, Version 2
      Section 17.7.  Summary
      Exercises
        Chapter 18.  Terminal I/O
      Section 18.1.  Introduction
      Section 18.2.  Overview
      Section 18.3.  Special Input Characters
      Section 18.4.  Getting and Setting Terminal Attributes
      Section 18.5.  Terminal Option Flags
      Section 18.6.  stty Command
      Section 18.7.  Baud Rate Functions
      Section 18.8.  Line Control Functions
      Section 18.9.  Terminal Identification
      Section 18.10.  Canonical Mode
      Section 18.11.  Noncanonical Mode
      Section 18.12.  Terminal Window Size
      Section 18.13.  termcap, terminfo, and curses
      Section 18.14.  Summary
      Exercises
        Chapter 19.  Pseudo Terminals
      Section 19.1.  Introduction
      Section 19.2.  Overview
      Section 19.3.  Opening Pseudo-Terminal Devices
      Section 19.4.  pty_fork Function
      Section 19.5.  pty Program
      Section 19.6.  Using the pty Program
      Section 19.7.  Advanced Features
      Section 19.8.  Summary
      Exercises
        Chapter 20.  A Database Library
      Section 20.1.  Introduction
      Section 20.2.  History
      Section 20.3.  The Library
      Section 20.4.  Implementation Overview
      Section 20.5.  Centralized or Decentralized?
      Section 20.6.  Concurrency
      Section 20.7.  Building the Library
      Section 20.8.  Source Code
      Section 20.9.  Performance
      Section 20.10.  Summary
      Exercises
        Chapter 21.  Communicating with a Network Printer
      Section 21.1.  Introduction
      Section 21.2.  The Internet Printing Protocol
      Section 21.3.  The Hypertext Transfer Protocol
      Section 21.4.  Printer Spooling
      Section 21.5.  Source Code
      Section 21.6.  Summary
      Exercises
        Appendix A.  Function Prototypes
        Appendix B.  Miscellaneous Source Code
      Section B.1.  Our Header File
      B.2 Standard Error Routines
        Appendix C.  Solutions to Selected Exercises
      Chapter 1
      Chapter 2
      Chapter 3
      Chapter 4
      Chapter 5
      Chapter 6
      Chapter 7
      Chapter 8
      Chapter 9
      Chapter 10
      Chapter 11
      Chapter 12
      Chapter 13
      Chapter 14
      Chapter 15
      Chapter 16
      Chapter 17
      Chapter 18
      Chapter 19
      Chapter 20
      Chapter 21
   Bibliography
   Index

Team BBL
Previous Page Next Page