内容简介
第1章 UNIX基础知识
1.1引言
1.2 UNIX体系结构
1.3登录
1.4文件和目录
1.5输入和输出
1.6程序和进程
1.7出错处理
1.8用户标识
1.9信号
1.10时间值
1.11系统调用和库函数
1.12小结
习题
第2章 UNIX标准及实现
2.1引言
2.2 UNIX标准化
2.2.1 ISO C
2.2.2 IEEE POSIX
2.2.3 Single UNIX Specification
2.2.4 FIPS
2.3 UNIX系统实现
2.3.1 SVR4
2.3.2 4.4BSD
2.3.3 FreeBSD
2.3.4 Linux
2.3.5 Mac OS X
2.3.6 Solaris
2.3.7其他UNIX系统
2.4标准和实现的关系
2.5限制
2.5.1 ISO C限制
2.5.2 POSIX限制
2.5.3 XSI限制
2.5.4函数sysconf、pathconf和fpathconf
2.5.5不确定的运行时限制
2.6选项
2.7功能测试宏
2.8基本系统数据类型
2.9标准之间的冲突
2.10小结
习题
第3章 文件I/O
3.1引言
3.2文件描述符
3.3函数open和openat
3.4函数creat
3.5函数close
3.6函数lseek
3.7函数read
3.8函数write
3.9 I/O的效率
3.10文件共享
3.11原子操作
3.12函数dup和dup2
3.13函数sync、fsync和fdatasync
3.14函数fcntl
3.15 函数ioctl
3.16 /dev/fd
3.17小结
习题
第4章 文件和目录
4.1引言
4.2函数stat、fstat、fstatat和lstat
4.3文件类型
4.4设置用户ID和设置组ID
4.5文件访问权限
4.6新文件和目录的所有权
4.7函数access和faccessat
4.8函数umask
4.9函数chmod、fchmod和fchmodat
4.10粘着位
4.11函数chown、fchown、fchownat和lchown
4.12文件长度
4.13文件截断
4.14文件系统
4.15函数link、linkat、unlink、unlinkat和remove
4.16函数rename和renameat
4.17符号链接
4.18创建和读取符号链接
4.19文件的时间
4.20函数futimens、utimensat和utimes
4.21函数mkdir、mkdirat和rmdir
4.22读目录
4.23函数chdir、fchdir和getcwd
4.24设备特殊文件
4.25文件访问权限位小结
4.26小结
习题
第5章 标准I/O库
5.1引言
5.2流和FILE对象
5.3标准输入、标准输出和标准错误
5.4缓冲
5.5打开流
5.6读和写流
5.7每次一行I/O
5.8标准I/O的效率
5.9二进制I/O
5.10定位流
5.11格式化I/O
5.12实现细节
5.13临时文件
5.14内存流
5.15标准I/O的替代软件
5.16小结
习题
第6章 系统数据文件和信息
6.1引言
6.2口令文件
6.3阴影口令
6.4组文件
6.5附属组ID
6.6实现区别
6.7其他数据文件
6.8登录账户记录
6.9系统标识
6.10时间和日期例程
6.11小结
习题
第7章 进程环境
7.1引言
7.2 main函数
7.3进程终止
7.4命令行参数
7.5环境表
7.6 C程序的存储空间布局
7.7共享库
7.8存储空间分配
7.9环境变量
7.10函数setjmp和longjmp
7.11函数getrlimit和setrlimit
7.12小结
习题
第8章 进程控制
8.1引言
8.2进程标识
8.3函数fork
8.4函数vfork
8.5函数exit
8.6函数wait和waitpid
8.7函数waitid
8.8函数wait3和wait 4
8.9竞争条件
8.10函数exec
8.11更改用户ID和更改组ID
8.12解释器文件
8.13函数system
8.14进程会计
8.15用户标识
8.16进程调度
8.17进程时间
8.18小结
习题
第9章 进程关系
9.1引言
9.2终端登录
9.3网络登录
9.4进程组
9.5会话
9.6控制终端
9.7函数tcgetpgrp、tcsetpgrp和tcgetsid
9.8作业控制
9.9 shell执行程序
9.10孤儿进程组
9.11 FreeBSD实现
9.12小结
习题
第10章 信号
10.1引言
10.2信号概念
10.3函数signal
10.4不可靠的信号
10.5中断的系统调用
10.6可重入函数
10.7 SIGCLD语义
10.8可靠信号术语和语义
10.9函数kill和raise
10.10 函数alarm和pause
10.11信号集
10.12函数sigprocmask
10.13函数sigpending
10.14函数sigaction
10.15函数sigsetjmp和siglongjmp
10.16函数sigsuspend
10.17函数abort
10.18函数system
10.19函数sleep、nanosleep和clock_nanosleep
10.20函数sigqueue
10.21作业控制信号
10.22信号名和编号
10.23小结
习题
第11章 线程
11.1引言
11.2线程概念
11.3线程标识
11.4线程创建
11.5线程终止
11.6线程同步
11.6.1互斥量
11.6.2避免死锁
11.6.3函数pthread_mutex_timedlock
11.6.4读写锁
11.6.5带有超时的读写锁
11.6.6条件变量
11.6.7自旋锁
11.6.8屏障
11.7小结
习题
第12章 线程控制
12.1引言
12.2线程限制
12.3线程属性
12.4同步属性
12.4.1互斥量属性
12.4.2读写锁属性
12.4.3条件变量属性
12.4.4屏障属性
12.5重入
12.6线程特定数据
12.7取消选项
12.8线程和信号
12.9线程和fork
12.10线程和I/O
12.11小结
习题
第13章 守护进程
13.1引言
13.2守护进程的特征
13.3编程规则
13.4出错记录
13.5单实例守护进程
13.6守护进程的惯例
13.7客户进程-服务器进程模型
13.8小结
习题
第14章 高级I/O
14.1引言
14.2非阻塞I/O
14.3记录锁
14.4 I/O多路转接
14.4.1函数select和pselect
14.4.2函数poll
14.5异步I/O
14.5.1 System V异步I/O
14.5.2 BSD异步I/O
14.5.3 POSIX异步I/O
14.6函数readv和writev
14.7函数readn和writen
14.8存储映射I/O
14.9小结
习题
第15章 进程间通信
15.1引言
15.2管道
15.3函数popen和pclose
15.4协同进程
15.5 FIFO
15.6 XSIIPC
15.6.1标识符和键
15.6.2权限结构
15.6.3结构限制
15.6.4优点和缺点
15.7消息队列
15.8信号量
15.9共享存储
15.10 POSIX信号量
15.11客户进程-服务器进程属性
15.12小结
习题
第16章 网络IPC:套接字
16.1引言
16.2套接字描述符
16.3寻址
16.3.1字节序
16.3.2地址格式
16.3.3地址查询
16.3.4将套接字与地址关联
16.4建立连接
16.5数据传输
16.6套接字选项
16.7带外数据
16.8非阻塞和异步I/O
16.9小结
习题
第17章 高级进程间通信
17.1引言
17.2 UNIX域套接字
17.3唯一连接
17.4传送文件描述符
17.5打开服务器进程第1版
17.6打开服务器进程第2版
17.7小结
习题
第18章 终端I/O
18.1引言
18.2概述
18.3特殊输入字符
18.4获得和设置终端属性
18.5终端选项标志
18.6stty命令
18.7波特率函数
18.8行控制函数
18.9终端标识
18.10规范模式
18.11非规范模式
18.12终端窗口大小
18.13 termcap、terminfo和curses
18.14小结
习题
第19章 伪终端
19.1引言
19.2概述
19.3打开伪终端设备
19.4函数pty_fork
19.5 pty程序
19.6使用pty程序
19.7高级特性
19.8小结
习题
第20章 数据库函数库
20.1引言
20.2历史
20.3函数库
20.4实现概述
20.5集中式或非集中式
20.6并发
20.7构造函数库
20.8源代码
20.9性能
20.10小结
习题
第21章 与网络打印机通信
21.1引言
21.2网络打印协议
21.3超文本传输协议HTTP
21.4打印假脱机技术
21.5源代码
21.6小结
习题
附录A 函数原型
附录B 其他源代码
附录C 部分习题答案
参考书目
索引