UNIX环境高级编程

UNIX环境高级编程
作 者: W.R
出版社: 人民邮电出版社
丛编项: 图灵原版计算机科学系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: UNIX
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者:W.RichardStevens国际知名的Unix和网络专家,《TCP/IP详解》(三卷本)作者W.RichardStevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的教师和顾问。Stevens先生1951年生于赞比亚,他的家庭曾多次搬迁,最终定居于南非。早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程;还曾在康涅狄格州纽黑文市的健康系统国际公司任主管计算机服务的副总裁。Stevens先生不幸病逝于1999年9月1日,他的离去是计算机界的巨大损失。UNIX环境高级编程(第2版)>>更多作品

内容简介

内容提要本书是被誉为UNIX编程"圣经"的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX程序员都是一本不可或缺的参考书。 ContentsChapter 1. UNIX System Overview 11.1 Introduction 11.2 UNIX Architecture 11.3 Logging In 21.4 Files and Directories 41.5 Input and Output 81.6 Programs and Processes 101.7 Error Handling 141.8 User Identification 161.9 Signals 181.10 Time Values 201.11 System Calls and Library Functions 211.12 Summary 23Chapter 2. UNIX Standardization and Implementations 252.1 Introduction 252.2 UNIX Standardization 252.2.1ISO C 252.2.2IEEE POSIX 262.2.3The Single UNIX Specification 292.2.4FIPS 332.3 UNIX System Implementations 332.3.1UNIX System V Release 4 332.3.24.4BSD 342.3.3FreeBSD 352.3.4Linux 352.3.5Mac OS X 352.3.6Solaris 352.3.7Other UNIX ...

图书目录

Foreword.

Preface.

Preface to the First Edition.

1. UNIX System Overview.

Introduction.

UNIX Architecture.

Logging In.

Files and Directories.

Input and Output.

Programs and Processes.

Error Handling.

User Identification.

Signals.

Time Values.

System Calls and Library Functions.

Summary.

2. UNIX Standardization and Implementations.

Introduction.

UNIX Standardization.

UNIX System Implementations.

Relationship of Standards and Implementations.

Limits.

Options.

Feature Test Macros.

Primitive System Data Types.

Conflicts Between Standards.

Summary.

3. File I/O.

Introduction.

File Descriptors.

open Function.

creat Function.

closeFunction.

lseek Function.

read Function.

write Function.

I/O Efficiency.

File Sharing.

Atomic Operations.

dup and dup2 Functions.

sync, fsync, and fdatasync Functions.

fcntl Function.

ioctl Function.

/dev/fd.

Summary.

4. Files and Directories.

Introduction.

stat, fstat, and lstat Functions.

File Types.

Set-User-ID and Set-Group-ID.

File Access Per missions.

Ownership of New Files and Directories.

access Function.

umask Function.

chmodand fchmod Functions.

Sticky Bit.

chown, fchown, and lchown Functions.

File Size.

File Truncation.

File Systems.

link, unlink, remove, and rename Functions.

Symbolic Links.

symlinkand readlink Functions.

File Times.

utime Function.

mkdirand rmdir Functions.

Reading Director ies.

chdir, fchdir, and getcwd Functions.

Device Special Files.

Summary of File Access Per mission Bits.

Summary.

5. Standard I/O Library.

Introduction.

Streams and FILE Objects.

Standard Input, Standard Output, and Standard Error.

Buffering.

Opening a Stream.

Reading and Writing a Stream.

Line-at-a-Time I/O.

Standard I/O Efficiency.

Binary I/O.

Positioning a Stream.

Formatted I/O.

Implementation Details.

Temporary Files.

Alternatives to Standard I/O.

Summary.

6. System Data Files and Information.

Introduction.

Password File.

Shadow Passwords.

Group File.

Supplementary Group Ids.

Implementation Differences.

Other Data Files.

Login Accounting.

System Identification.

Time and Date Routines.

Summary.

7. Process Environment.

Introduction.

main Function.

Process Termination.

Command-Line Arguments.

Environment List.

Memory Layout of a C Program.

Shared Libraries.

Memory Allocation.

Environment Variables.

setjmp and longjmp Functions.

getrlimit and setrlimit Functions.

Summary.

8. Process Control.

Introduction.

Process Identifiers.

fork Function.

vfork Function.

exit Functions.

waitand waitpid Functions.

waitid Function.

wait3and wait4Functions.

Race Conditions.

exec Functions.

Changing User IDs and Group IDs.

Interpreter Files.

system Function.

Process Accounting.

User Identification.

Process Times.

Summary.

9. Process Relationships.

Introduction.

Terminal Logins.

Network Logins.

Process Groups.

Sessions.

Controlling Terminal.

tcgetpgrp, tcsetpgrp, and tcgetsid Functions.

Job Control.

Shell Execution of Programs.

Orphaned Process Groups.

FreeBSD Implementation.

Summary.

10. Signals.

Introduction.

Signal Concepts.

signal Function.

Unreliable Signals.

Interrupted System Calls.

Reentrant Functions.

SIGCLD Semantics.

Reliable-Signal Terminology and Semantics.

killand raise Functions.

alarmand pause Functions.

Signal Sets.

sigprocmask Function.

sigpending Function.

sigaction Function.

sigsetjmp and siglongjmp Functions.

sigsuspend Function.

abort Function.

system Function.

sleep Function.

Job-Control Signals.

Additional Features.

Summary.

11. Threads.

Introduction.

Thread Concepts.

Thread Identification.

Thread Creation.

Thread Termination.

Thread Synchronization.

Summary.

12. Thread Control.

Introduction.

Thread Limits.

hread Attributes.

Synchronization Attributes.

Reentrancy.

Thread-Specific Data.

Cancel Options.

Threads and Signals.

Threads and fork.

Threads and I/O.

Summary.

13. Daemon Processes.

Introduction.

Daemon Characteristics.

Coding Rules.

Error Logging.

Single-Instance Daemons.

Daemon Conventions.

Client-Server Model.

Summary.

14. Advanced I/O.

Introduction.

Nonblocking I/O.

Record Locking.

STREAMS.

I/O Multiplexing.

2 poll Function.

Asynchronous I/O.

readv and writev Functions.

readn and written Functions.

Memory-Mapped I/O.

Summary.

15. Interprocess Communication.

Introduction.

Pipes.

popen and pclose Functions.

Coprocesses.

FIFOs.

XSI IPC.

Message Queues.

Semaphores.

Shared Memory.

Client-Server Properties.

Summary.

16. Network IPC: Sockets.

Introduction.

Socket Descriptors.

Addressing.

Connection Establishment.

Data Transfer.

Socket Options.

Out-of-Band Data.

Nonblocking and Asynchronous I/O.

Summary.

17 Advanced IPC.

Introduction.

STREAMS-Based Pipes.

Unique Connections.

Passing File Descriptors.

An Open Server, Version 1.

An Open Server, Version 2.

Summary.

18. Terminal I/O.

Introduction.

Overview.

Special Input Characters.

Getting and Setting Terminal Attributes.

Terminal Option Flags.

stty Command.

Baud Rate Functions.

Line Control Functions.

Terminal Identification.

Canonical Mode.

Noncanonical Mode.

Terminal Window Size.

termcap, terminfo, and curses.

Summary.

19. Pseudo Terminals.

Introduction.

Overview.

Opening Pseudo-Terminal Devices.

pty_fork Function.

pty Program.

Using the pty Program.

Advanced Features.

Summary.

20. A Database Library.

Introduction.

History.

The Library.

Implementation Overview.

Centralized or Decentralized?

Concurrency.

Building the Library.

Source Code.

Performance.

Summary.

21. Communicating with a Network Printer.

Introduction.

The Inter net Printing Protocol.

The Hypertext Transfer Protocol.

Printer Spooling.

Source Code.

Summary.

Appendix A. Function Prototypes.

Appendix B. Miscellaneous Source Code.

Our Header File.

Standard Error Routines.

Appendix C. Solutions to Selected Exercises.

Bibliography.

Index.