《UNIX环境高级编程 英文版 第3版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)W.理查德·史蒂文斯
  • 出 版 社:
  • 出版年份:2016
  • ISBN:
  • 页数:0 页
图书介绍:

第1章 UNIX基础知识 1

1.1 引言 1

1.2 UNIX体系结构 1

1.3 登录 2

1.4 文件和目录 4

1.5 输入和输出 8

1.6 程序和进程 10

1.7 出错处理 14

1.8 用户标识 16

1.9 信号 18

1.10 时间值 20

1.11 系统调用和库函数 21

1.12 小结 23

第2章 UNIX标准及实现 25

2.1 引言 25

2.2 UNIX标准化 25

2.2.1 ISO C 25

2.2.2 IEEE POSIX 26

2.2.3 Single UNIX Specification 30

2.2.4 FIPS 32

2.3 UNIX系统实现 33

2.3.1 SVR4 33

2.3.2 4.4BSD 34

2.3.3 FreeBSD 34

2.3.4 Linux 35

2.3.5 Mac OS X 35

2.3.6 Solaris 35

2.3.7 其他UNIX系统 35

2.4 标准和实现的关系 36

2.5 限制 36

2.5.1 ISO C限制 37

2.5.2 POSIX限制 38

2.5.3 XSI限制 41

2.5.4 函数sysconf、 pathconf和fpathconf 42

2.5.5 不确定的运行时限制 49

2.6 选项 53

2.7 功能测试宏 57

2.8 基本系统数据类型 58

2.9 标准之间的冲突 58

2.10 小结 60

第3章 文件I/O 61

3.1 引言 61

3.2 文件描述符 61

3.3 函数open和openat 62

3.4 函数creat 66

3.5 函数close 66

3.6 函数lseek 66

3.7 函数read 71

3.8 函数write 72

3.9 I/O的效率 72

3.10 文件共享 74

3.11 原子操作 77

3.12 函数dup和dup2 79

3.13 函数sync、 fsync和fdatasync 81

3.14 函数fcntl 82

3.15 函数ioctl 87

3.16 /dev/ fd 88

3.17 小结 90

第4章 文件和目录 93

4.1 引言 93

4.2 函数stat、fstat、fstatat和lstat 93

4.3 文件类型 95

4.4 设置用户ID和设置组ID 98

4.5 文件访问权限 99

4.6 新文件和目录的所有权 101

4.7 函数access和faccessat 102

4.8 函数umask 104

4.9 函数chmod、 fchmod和fchmodat 106

4.10 粘着位 108

4.11 函数chown、 f chown、fchownat和lchown 109

4.12 文件长度 111

4.13 文件截断 112

4.14 文件系统 113

4.15 函数link、 linkat、 unlink、unlinkat和remove 116

4.16 函数rename和renameat 119

4.17 符号链接 120

4.18 创建和读取符号链接 123

4.19 文件的时间 124

4.20 函数futimens、 utimensat和utimes 126

4.21 函数mkdir、 mkdirat和rmdir 129

4.22 读目录 130

4.23 函数chdir、 fchdir和getcwd 135

4.24 设备特殊文件 137

4.25 文件访问权限位小结 140

4.26 小结 140

第5章 标准I/O库 143

5.1 引言 143

5.2 流和FILE对象 143

5.3 标准输入、标准输出和标准错误 145

5.4 缓冲 145

5.5 打开流 148

5.6 读和写流 150

5.7 每次一行I/O 152

5.8 标准I/O的效率 153

5.9 二进制I/O 156

5.10 定位流 157

5.11 格式化I/O 159

5.12 实现细节 164

5.13 临时文件 167

5.14 内存流 171

5.15 标准I/O的替代软件 174

5.16 小结 175

第6章 系统数据文件和信息 177

6.1 引言 177

6.2 口令文件 177

6.3 阴影口令 181

6.4 组文件 182

6.5 附属组ID 183

6.6 实现区别 184

6.7 其他数据文件 185

6.8 登录账户记录 186

6.9 系统标识 187

6.10 时间和日期例程 189

6.11 小结 196

第7章 进程环境 197

7.1 引言 197

7.2 main函数 197

7.3 进程终止 198

7.4 命令行参数 203

7.5 环境表 203

7.6 C程序的存储空间布局 204

7.7 共享库 206

7.8 存储空间分配 207

7.9 环境变量 210

7.10 函数setjmp和longjmp 213

7.11 函数getrlimit和setrlimit 220

7.12 小结 225

第8章 进程控制 227

8.1 引言 227

8.2 进程标识 227

8.3 函数fork 229

8.4 函数vfork 234

8.5 函数exit 236

8.6 函数wait和waitpid 238

8.7 函数waitid 244

8.8 函数wait3和wait 4 245

8.9 竞争条件 245

8.10 函数exec 249

8.11 更改用户ID和更改组ID 255

8.12 解释器文件 260

8.13 函数system 264

8.14 进程记账 269

8.15 用户标识 275

8.16 进程调度 276

8.17 进程时间 280

8.18 小结 282

第9章 进程关系 285

9.1 引言 285

9.2 终端登录 285

9.3 网络登录 290

9.4 进程组 293

9.5 会话 295

9.6 控制终端 296

9.7 函数tcgetpgrp、 tcsetpgrp和tcgetsid 298

9.8 作业控制 299

9.9 shell执行程序 303

9.10 孤儿进程组 307

9.11 FreeBSD实现 310

9.12 小结 312

第10章 信号 313

10.1 引言 313

10.2 信号概念 313

10.3 函数signal 323

10.4 不可靠的信号 326

10.5 中断的系统调用 327

10.6 可重入函数 330

10.7 SIGCLD语义 332

10.8 可靠信号术语和语义 335

10.9 函数kill和raise 336

10.10 函数alarm和pause 338

10.11 信号集 344

10.12 函数sigprocmask 346

10.13 函数sigpending 347

10.14 函数 sigaction 349

10.15 函数sigsetjmp和siglongjmp 355

10.16 函数sigsuspend 359

10.17 函数abort 365

10.18 函数system 367

10.19 函数sleep、 nanosleep和clock_nanosleep 373

10.20 函数sigqueue 376

10.21 作业控制信号 377

10.22 信号名和编号 379

10.23 小结 381

第11章 线程 383

11.1 引言 383

11.2 线程概念 383

11.3 线程标识 384

11.4 线程创建 385

11.5 线程终止 388

11.6 线程同步 397

11.6.1 互斥量 399

11.6.2 避免死锁 402

11.6.3 函数pthread mutex timedlock 407

11.6.4 读写锁 409

11.6.5 带有超时的读写锁 413

11.6.6 条件变量 413

11.6.7 自旋锁 417

11.6.8 屏障 418

11.7 小结 422

第12章 线程控制 425

12.1 引言 425

12.2 线程限制 425

12.3 线程属性 426

12.4 同步属性 430

12.4.1 互斥量属性 430

12.4.2 读写锁属性 439

12.4.3 条件变量属性 440

12.4.4 屏障属性 441

12.5 重入 442

12.6 线程特定数据 446

12.7 取消选项 451

12.8 线程和信号 453

12.9 线程和fork 457

12.10 线程和I/O 461

12.11 小结 462

第13章 守护进程 463

13.1 引言 463

13.2 守护进程的特征 463

13.3 编程规则 466

13.4 出错记录 469

13.5 单实例守护进程 473

13.6 守护进程的惯例 474

13.7 客户进程-服务器进程模型 479

13.8 小结 480

第14章 高级I/O 481

14.1 引言 481

14.2 非阻塞I/O 481

14.3 记录锁 485

14.4 I/O多路转接 500

14.4.1 函数select和pselect 502

14.4.2 函数poll 506

14.5 异步I/O 509

14.5.1 System V异步I/O 510

14.5.2 BSD异步I/O 510

14.5.3 POSIX异步I/O 511

14.6 函数readv和writev 521

14.7 函数readn和writen 523

14.8 存储映射I/O 525

14.9 小结 531

第15章 进程间通信 533

15.1 引言 533

15.2 管道 534

15.3 函数popen和pclose 541

15.4 协同进程 548

15.5 FIFO 552

15.6 XSIIPC 556

15.6.1 标识符和键 556

15.6.2 权限结构 558

15.6.3 结构限制 559

15.6.4 优点和缺点 559

15.7 消息队列 561

15.8 信号量 565

15.9 共享存储 571

15.10 POSIX信号量 579

15.11 客户进程-服务器进程属性 585

15.12 小结 587

第16章 网络IPC:套接字 589

16.1 引言 589

16.2 套接字描述符 590

16.3 寻址 593

16.3.1 字节序 593

16.3.2 地址格式 595

16.3.3 地址查询 597

16.3.4 将套接字与地址关联 604

16.4 建立连接 605

16.5 数据传输 610

16.6 套接字选项 623

16.7 带外数据 626

16.8 非阻塞和异步I/O 627

16.9 小结 628

第17章 高级进程间通信 629

17.1 引言 629

17.2 UNIX域套接字 629

17.2.1 命名UNIX域套接字 634

17.3 唯一连接 635

17.4 传送文件描述符 642

17.5 open服务器进程第1版 653

17.6 open服务器进程第2版 659

17.7 小结 669

第18章 终端I/O 671

18.1 引言 671

18.2 概述 671

18.3 特殊输入字符 678

18.4 获得和设置终端属性 683

18.5 终端选项标志 683

18.6 stty命令 691

18.7 波特率函数 692

18.8 行控制函数 693

18.9 终端标识 694

18.10 规范模式 700

18.11 非规范模式 703

18.12 终端窗口大小 710

18.13 termcap、terminfo和curses 712

18.14 小结 713

第19章 伪终端 715

19.1 引言 715

19.2 概述 715

19.3 打开伪终端设备 722

19.4 函数pty_fork 726

19.5 pty程序 729

19.6 使用pty程序 733

19.7 高级特性 740

19.8 小结 741

第20章 数据库函数库 743

20.1 引言 743

20.2 历史 743

20.3 函数库 744

20.4 实现概述 746

20.5 集中式或非集中式 750

20.6 并发 752

20.7 构造函数库 753

20.8 源代码 753

20.9 性能 781

20.10 小结 786

第21章 与网络打印机通信 789

21.1 引言 789

21.2 网络打印协议 789

21.3 超文本传输协议HTTP 792

21.4 打印假脱机技术 793

21.5 源代码 795

21.6 小结 843

附录A函数原型 845

附录B其他源代码 895

B.1本书使用的头文件 895

B.2标准出错例程 898

附录C部分习题答案 905

参考书目 947