失效链接处理 |
UNIX环境高级编程 第3版 PDF 下载
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/27949203.html
相关截图:
资料简介: 本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据新的标准对内容进行了修订和增补,反映了新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。 本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书 资料目录: 第 1章 UNIX基础知识 1 1.1 引言 1 1.2 UNIX体系结构 1 1.3 登录 1 1.4 文件和目录 3 1.5 输入和输出 6 1.6 程序和进程 8 1.7 出错处理 11 1.8 用户标识 13 1.9 信号 14 1.10 时间值 16 1.11 系统调用和库函数 17 1.12 小结 18 习题 18 第 2章 UNIX标准及实现 20 2.1 引言 20 2.2 UNIX标准化 20 2.2.1 ISO C 20 2.2.2 IEEE POSIX 21 2.2.3 Single UNIX Specification 25 2.2.4 FIPS 26 2.3 UNIX系统实现 26 2.3.1 SVR4 27 2.3.2 4.4BSD 27 2.3.3 FreeBSD 28 2.3.4 Linux 28 2.3.5 Mac OS X 28 2.3.6 Solaris 28 2.3.7 其他UNIX系统 29 2.4 标准和实现的关系 29 2.5 限制 29 2.5.1 ISO C限制 30 2.5.2 POSIX限制 31 2.5.3 XSI限制 33 2.5.4 函数sysconf、pathconf和fpathconf 33 2.5.5 不确定的运行时限制 40 2.6 选项 43 2.7 功能测试宏 46 2.8 基本系统数据类型 47 2.9 标准之间的冲突 48 2.10 小结 48 习题 48 第3章 文件I/O 49 3.1 引言 49 3.2 文件描述符 49 3.3 函数open和openat 50 3.4 函数creat 52 3.5 函数close 53 3.6 函数lseek 53 3.7 函数read 57 3.8 函数write 57 3.9 I/O的效率 58 3.10 文件共享 59 3.11 原子操作 62 3.12 函数dup和dup2 63 3.13 函数sync、fsync和fdatasync 65 3.14 函数fcntl 65 3.15 函数ioctl 70 3.16 /dev/fd 71 3.17 小结 72 习题 72 第4章 文件和目录 74 4.1 引言 74 4.2 函数stat、fstat、fstatat和lstat 74 4.3 文件类型 75 4.4 设置用户ID和设置组ID 78 4.5 文件访问权限 79 4.6 新文件和目录的所有权 80 4.7 函数access和faccessat 81 4.8 函数umask 83 4.9 函数chmod、fchmod和fchmodat 84 4.10 粘着位 87 4.11 函数chown、fchown、fchownat和lchown 88 4.12 文件长度 89 4.13 文件截断 90 4.14 文件系统 90 4.15 函数link、linkat、unlink、unlinkat和remove 93 4.16 函数rename和renameat 95 4.17 符号链接 96 4.18 创建和读取符号链接 99 4.19 文件的时间 99 4.20 函数futimens、utimensat和utimes 101 4.21 函数mkdir、mkdirat和rmdir 103 4.22 读目录 104 4.23 函数chdir、fchdir和getcwd 108 4.24 设备特殊文件 110 4.25 文件访问权限位小结 112 4.26 小结 113 习题 113 第5章 标准I/O库 115 5.1 引言 115 5.2 流和FILE对象 115 5.3 标准输入、标准输出和标准错误 116 5.4 缓冲 116 5.5 打开流 118 5.6 读和写流 120 5.7 每次一行I/O 122 5.8 标准I/O的效率 123 5.9 二进制I/O 125 5.10 定位流 126 5.11 格式化I/O 127 5.12 实现细节 131 5.13 临时文件 134 5.14 内存流 137 5.15 标准I/O的替代软件 140 5.16 小结 140 习题 140 第6章 系统数据文件和信息 142 6.1 引言 142 6.2 口令文件 142 6.3 阴影口令 145 6.4 组文件 146 6.5 附属组ID 147 6.6 实现区别 148 6.7 其他数据文件 148 6.8 登录账户记录 149 6.9 系统标识 150 6.10 时间和日期例程 151 6.11 小结 157 习题 157 第7章 进程环境 158 7.1 引言 158 7.2 main函数 158 7.3 进程终止 158 7.4 命令行参数 162 7.5 环境表 163 7.6 C程序的存储空间布局 163 7.7 共享库 165 7.8 存储空间分配 165 7.9 环境变量 168 7.10 函数setjmp和longjmp 170 7.11 函数getrlimit和setrlimit 175 7.12 小结 180 习题 180 第8章 进程控制 181 8.1 引言 181 8.2 进程标识 181 8.3 函数fork 182 8.4 函数vfork 187 8.5 函数exit 188 8.6 函数wait和waitpid 190 8.7 函数waitid 194 8.8 函数wait3和wait4 195 8.9 竞争条件 196 8.10 函数exec 199 8.11 更改用户ID和更改组ID 204 8.12 解释器文件 207 8.13 函数system 211 8.14 进程会计 215 8.15 用户标识 220 8.16 进程调度 221 8.17 进程时间 224 8.18 小结 226 习题 226 第9章 进程关系 228 9.1 引言 228 9.2 终端登录 228 9.3 网络登录 231 9.4 进程组 233 9.5 会话 234 9.6 控制终端 235 9.7 函数tcgetpgrp、tcsetpgrp和tcgetsid 237 9.8 作业控制 237 9.9 shell执行程序 240 9.10 孤儿进程组 244 9.11 FreeBSD实现 246 9.12 小结 248 习题 248 第 10章 信号 249 10.1 引言 249 10.2 信号概念 249 10.3 函数signal 256 10.4 不可靠的信号 259 10.5 中断的系统调用 260 10.6 可重入函数 262 10.7 SIGCLD语义 264 10.8 可靠信号术语和语义 266 10.9 函数kill和raise 267 10.10 函数alarm和pause 268 10.11 信号集 273 10.12 函数sigprocmask 275 10.13 函数sigpending 276 10.14 函数sigaction 278 10.15 函数sigsetjmp和siglongjmp 283 10.16 函数sigsuspend 286 10.17 函数abort 291 10.18 函数system 293 10.19 函数sleep、nanosleep和clock_nanosleep 298 10.20 函数sigqueue 300 10.21 作业控制信号 301 10.22 信号名和编号 303 10.23 小结 305 习题 305 第 11章 线程 307 11.1 引言 307 11.2 线程概念 307 11.3 线程标识 308 11.4 线程创建 309 11.5 线程终止 311 11.6 线程同步 318 11.6.1 互斥量 320 11.6.2 避免死锁 322 11.6.3 函数pthread_mutex_ timedlock 327 11.6.4 读写锁 328 11.6.5 带有超时的读写锁 332 11.6.6 条件变量 332 11.6.7 自旋锁 335 11.6.8 屏障 336 11.7 小结 340 习题 340 第 12章 线程控制 341 12.1 引言 341 12.2 线程限制 341 12.3 线程属性 342 12.4 同步属性 345 12.4.1 互斥量属性 345 12.4.2 读写锁属性 352 12.4.3 条件变量属性 353 12.4.4 屏障属性 354 12.5 重入 354 12.6 线程特定数据 358 12.7 取消选项 362 12.8 线程和信号 364 12.9 线程和fork 367 12.10 线程和I/O 370 12.11 小结 371 习题 371 第 13章 守护进程 372 13.1 引言 372 13.2 守护进程的特征 372 13.3 编程规则 374 13.4 出错记录 377 13.5 单实例守护进程 380 13.6 守护进程的惯例 381 13.7 客户进程-服务器进程模型 386 13.8 小结 386 习题 387 第 14章 高级I/O 388 14.1 引言 388 14.2 非阻塞I/O 388 14.3 记录锁 391 14.4 I/O多路转接 403 14.4.1 函数select和pselect 404 14.4.2 函数poll 408 14.5 异步I/O 410 14.5.1 System V异步I/O 410 14.5.2 BSD异步I/O 411 14.5.3 POSIX异步I/O 411 14.6 函数readv和writev 419 14.7 函数readn和writen 421 14.8 存储映射I/O 422 14.9 小结 428 习题 428 第 15章 进程间通信 429 15.1 引言 429 15.2 管道 430 15.3 函数popen和pclose 436 15.4 协同进程 441 15.5 FIFO 445 15.6 XSI IPC 448 15.6.1 标识符和键 448 15.6.2 权限结构 449 15.6.3 结构限制 450 15.6.4 优点和缺点 450 15.7 消息队列 451 15.8 信号量 455 15.9 共享存储 459 15.10 POSIX信号量 465 15.11 客户进程-服务器进程属性 470 15.12 小结 472 习题 472 第 16章 网络IPC:套接字 474 16.1 引言 474 16.2 套接字描述符 474 16.3 寻址 477 16.3.1 字节序 477 16.3.2 地址格式 478 16.3.3 地址查询 480 16.3.4 将套接字与地址关联 486 16.4 建立连接 487 16.5 数据传输 491 16.6 套接字选项 502 16.7 带外数据 504 16.8 非阻塞和异步I/O 505 16.9 小结 506 习题 506 第 17章 高级进程间通信 507 17.1 引言 507 17.2 UNIX域套接字 507 17.3 唯一连接 512 17.4 传送文件描述符 518 17.5 open服务器进程第 1版 527 17.6 open服务器进程第 2版 533 17.7 小结 542 习题 542 第 18章 终端I/O 544 18.1 引言 544 18.2 综述 544 18.3 特殊输入字符 549 18.4 获得和设置终端属性 553 18.5 终端选项标志 554 18.6 stty命令 560 18.7 波特率函数 560 18.8 行控制函数 561 18.9 终端标识 562 18.10 规范模式 567 18.11 非规范模式 570 18.12 终端窗口大小 576 18.13 termcap、terminfo和curses 578 18.14 小结 578 习题 579 第 19章 伪终端 580 19.1 引言 580 19.2 概述 580 19.3 打开伪终端设备 585 19.4 函数pty_fork 588 19.5 pty程序 590 19.6 使用pty程序 595 19.7 高级特性 600 19.8 小结 601 习题 601 第 20章 数据库函数库 603 20.1 引言 603 20.2 历史 603 20.3 函数库 604 20.4 实现概述 605 20.5 集中式或非集中式 608 20.6 并发 610 20.7 构造函数库 610 20.8 源代码 611 20.9 性能 635 20.10 小结 639 习题 639 第 21章 与网络打印机通信 640 21.1 引言 640 21.2 网络打印协议 640 21.3 超文本传输协议HTTP 642 21.4 打印假脱机技术 643 21.5 源代码 644 21.6 小结 684 习题 684 附录A 函数原型 685 附录B 其他源代码 721 附录C 部分习题答案 730 附录参考书目 763 |