书籍详情

UNIX环境高级编程

UNIX环境高级编程

作者:(美)W.Richard著

出版社:人民邮电出版社

出版时间:2006-05-01

ISBN:9787115147318

定价:¥99.00

购买这本书可以去
内容简介
  内容提要本书是被誉为UNIX编程"圣经"的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX程序员都是一本不可或缺的参考书。 目 录第1章 UNIX基础知识 11.1 引言 11.2 UNIX体系结构 11.3 登录 11.4 文件和 31.5 输入和输出 61.6 程序和进程 81.7 出错处理 101.8 用户标识 121.9 信号 141.10 时间值 151.11 系统调用和库函数 161.12 小结 17习题 18第2章 UNIX标准化及实现 192.1 引言 192.2 UNIX标准化 192.2.1 ISO C 192.2.2 IEEE POSIX 202.2.3 Single UNIX Specification 252.2.4 FIPS 262.3 UNIX系统实现 262.3.1 SVR4 262.3.2 4.4BSD 272.3.3 FreeBSD 272.3.4 Linux 272.3.5 Mac OS X 282.3.6 Solaris 282.3.7 其他UNIX系统 282.4 标准和实现的关系 282.5 限制 292.5.1 ISO C限制 292.5.2 POSIX限制 302.5.3 XSI限制 322.5.4 sysconf、pathconf和fpathconf函数 322.5.5 不确定的运行时限制 382.6 选项 422.7 功能测试宏 442.8 基本系统数据类型 452.9 标准之间的冲突 452.10 小结 46习题 46第3章 文件I/O 473.1 引言 473.2 文件描述符 473.3 open函数 483.4 creat函数 493.5 close函数 503.6 lseek函数 503.7 read函数 533.8 write函数 543.9 I/O的效率 543.10 文件共享 563.11 原子操作 593.12 dup和dup2函数 603.13 sync、fsync和fdatasync函数 613.14 fcntl函数 623.15 ioctl函数 663.16 /dev/fd 673.17 小结 68习题 68第4章 文件和 714.1 引言 714.2 stat、fstat和lstat函数 714.3 文件类型 724.4 设置用户ID和设置组ID 744.5 文件访问权限 754.6 新文件和的所有权 774.7 access函数 774.8 umask函数 794.9 chmod和fchmod函数 814.10 粘住位 834.11 chown、fchown和lchown函数 844.12 文件长度 854.13 文件截短 864.14 文件系统 864.15 link、unlink、remove和rename函数 894.16 符号链接 914.17 symlink和readlink函数 944.18 文件的时间 944.19 utime函数 954.20 mkdir和rmdir函数 974.21 读 984.22 chdir、fchdir和getcwd函数 1024.23 设备特殊文件 1044.24 文件访问权限位小结 1064.25 小结 106习题 107第5章 标准I/O库 1095.1 引言 1095.2 流和FILE对象 1095.3 标准输入、标准输出和标准出错 1105.4 缓冲 1105.5 打开流 1125.6 读和写流 1145.7 每次一行I/O 1165.8 标准I/O的效率 1175.9 二进制I/O 1195.10 定位流 1205.11 格式化I/O 1215.12 实现细节 1255.13 临时文件 1275.14 标准I/O的替代软件 1305.15 小结 130习题 130第6章 系统数据文件和信息 1336.1 引言 1336.2 口令文件 1336.3 阴影口令 1366.4 组文件 1376.5 附加组ID 1386.6 实现的区别 1396.7 其他数据文件 1396.8 登录账户记录 1406.9 系统标识 1416.10 时间和日期例程 1426.11 小结 146习题 146第7章 进程环境 1477.1 引言 1477.2 main函数 1477.3 进程终止 1477.4 命令行参数 1517.5 环境表 1527.6 C程序的存储空间布局 1527.7 共享库 1547.8 存储器分配 1547.9 环境变量 1577.10 setjmp和longjmp函数 1597.11 getrlimit和setrlimit函数 1647.12 小结 168习题 168第8章 进程控制 1718.1 引言 1718.2 进程标识符 1718.3 fork函数 1728.4 vfork函数 1768.5 exit函数 1788.6 wait和waitpid函数 1798.7 waitid函数 1838.8 wait3和wait4函数 1848.9 竞争条件 1858.10 exec函数 1888.11 更改用户ID和组ID 1928.12 解释器文件 1968.13 system函数 2008.14 进程会计 2038.15 用户标识 2088.16 进程时间 2088.17 小结 210习题 211第9章 进程关系 2139.1 引言 2139.2 终端登录 2139.3 网络登录 2169.4 进程组 2189.5 会话 2199.6 控制终端 2209.7 tcgetpgrp、tcsetpgrp和tcgetsid函数 2219.8 作业控制 2229.9 shell执行程序 2259.10 孤儿进程组 2289.11 FreeBSD实现 2309.12 小结 231习题 232第10章 信号 23310.1 引言 23310.2 信号概念 23310.3 signal函数 24010.4 不可靠的信号 24210.5 中断的系统调用 24410.6 可重入函数 24610.7 SIGCLD语义 24810.8 可靠信号术语和语义 25010.9 kill和raise函数 25110.10 alarm和pause函数 25210.11 信号集 25610.12 sigprocmask函数 25810.13 sigpending函数 25910.14 sigaction函数 26110.15 sigsetjmp和siglongjmp函数 26610.16 sigsuspend函数 26810.17 abort函数 27410.18 system函数 27610.19 sleep函数 28010.20 作业控制信号 28210.21 其他特征 28410.22 小结 285习题 285第11章 线程 28711.1 引言 28711.2 线程概念 28711.3 线程标识 28811.4 线程的创建 28811.5 线程终止 29111.6 线程同步 29711.7 小结 311习题 311第12章 线程控制 31312.1 引言 31312.2 线程限制 31312.3 线程属性 31412.4 同步属性 31812.5 重入 32412.6 线程私有数据 32812.7 取消选项 33112.8 线程和信号 33312.9 线程和fork 33612.10 线程和I/O 33912.11 小结 340习题 340第13章 守护进程 34113.1 引言 34113.2 守护进程的特征 34113.3 编程规则 34213.4 出错记录 34513.5 单实例守护进程 34813.6 守护进程的惯例 35013.7 客户进程-服务器进程模型 35413.8 小结 354习题 354第14章 高级I/O 35514.1 引言 35514.2 非阻塞I/O 35514.3 记录锁 35714.4 STREAMS 37014.5 I/O多路转接 37914.5.1 select和pselect函数 38114.5.2 poll函数 38414.6 异步I/O 38614.6.1 系统V异步I/O 38614.6.2 BSD异步I/O 38714.7 readv和writev函数 38714.8 readn和writen函数 38914.9 存储映射I/O 39014.10 小结 395习题 396第15章 进程间通信 39715.1 引言 39715.2 管道 39815.3 popen和pclose函数 40315.4 协同进程 40815.5 FIFO 41215.6 XSI IPC 41515.6.1 标识符和键 41515.6.2 权限结构 41615.6.3 结构限制 41715.6.4 优点和缺点 41715.7 消息队列 41815.8 信号量 42215.9 共享存储 42715.10 客户进程-服务器进程属性 43215.11 小结 434习题 434第16章 网络IPC:套接字 43716.1 引言 43716.2 套接字描述符 43716.3 寻址 43916.3.1 字节序 44016.3.2 地址格式 44116.3.3 地址查询 44216.3.4 将套接字与地址绑定 44916.4 建立连接 45016.5 数据传输 45216.6 套接字选项 46416.7 带外数据 46616.8 非阻塞和异步I/O 46716.9 小结 468习题 468第17章 高级进程间通信 46917.1 引言 46917.2 基于STREAMS的管道 46917.2.1 命名的STREAMS管道 47217.2.2 唯一连接 47317.3 UNIX域套接字 47617.3.1 命名UNIX域套接字 47717.3.2 唯一连接 47817.4 传送文件描述符 48217.4.1 经由基于STREAMS的管道传送文件描述符 48417.4.2 经由UNIX域套接字传送文件描述符 48617.5 open服务器版本1 49317.6 open服务器版本2 49817.7 小结 505习题 505第18章 终端I/O 50718.1 引言 50718.2 综述 50718.3 特殊输入字符 51218.4 获得和设置终端属性 51618.5 终端选项标志 51618.6 stty命令 52218.7 波特率函数 52318.8 行控制函数 52418.9 终端标识 52418.10 规范模式 52918.11 非规范模式 53218.12 终端的窗口大小 53718.13 termcap,terminfo和curses 53918.14 小结 540习题 540第19章 伪终端 54119.1 引言 54119.2 概述 54119.3 打开伪终端设备 54419.3.1 基于STREAMS的伪终端 54719.3.2 基于BSD的伪终端 54919.3.3 基于Linux的伪终端 55119.4 pty_fork函数 55319.5 pty程序 55519.6 使用pty程序 55919.7 高级特性 56419.8 小结 565习题 565第20章 数据库函数库 56720.1 引言 56720.2 历史 56720.3 函数库 56820.4 实现概述 56920.5 集中式或非集中式 57220.6 并发 57420.7 构造函数库 57420.8 源代码 57520.9 性能 59820.10 小结 600习题 601第21章 与网络打印机通信 60321.1 引言 60321.2 网络打印协议 60321.3 超文本传输协议 60521.4 打印假脱机技术 60521.5 源代码 60721.6 小结 644习题 645附录A 函数原型 647附录B 其他源代码 677附录C 部分习题答案 685参考书目 709索引 715
作者简介
  作者:W.RichardStevens国际知名的Unix和网络专家,《TCP/IP详解》(三卷本)作者W.RichardStevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的教师和顾问。Stevens先生1951年生于赞比亚,他的家庭曾多次搬迁,最终定居于南非。早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程;还曾在康涅狄格州纽黑文市的健康系统国际公司任主管计算机服务的副总裁。Stevens先生不幸病逝于1999年9月1日,他的离去是计算机界的巨大损失。UNIX环境高级编程(第2版)>>更多作品
目录
第1章UNIX基础知识
  1.1引言
  1.2 UNIX体系结构
  1.3登录
  1.4文件和目录
  1.5输入和输出
  1.6程序和进程
  1.7出错处理
  1.8用户标识
  1.9信号
  1.10时间值
  1.1l系统调用和库函数
  1.12小结
  习题
第2章UNIX标准化及实现
  2.1引言
  2.2 UNIX标准化
    2.2 1 ISO C
    2.2.2 IEEEPOSIX
    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 ISOC限制
    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函数
  3.4 creat函数
  3.5 close函数
  3.6 iseek函数
  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 star、fstat和lstat函数
4.3文件类型
  4.4设置用户ID和设置组ID
  4.5文件访问权限
  4.6新文件和目录的所有权
  4.7 access函数
  4.8 umask函数
  4.9 chmod和fchmod函数
  4.10粘住位
  4.11 chown、fchown和ichown函数
  4.12文件长度
  4.13文件截短
  4.14文件系统
  4.15 link、unlink、remove和rename函数
  4.16符号链接
  4.17 symlink和readlink函数
  4.18文件的时间
  4.19 utime函数
  4.20 mkdir和rmdir函数
  4.21读目录
  4.22 chdir、fchdir和getcwd函数
  4.23设备特殊文件
  4.24文件访问权限位小结
  4.25小结
  习题
第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格式化IIO
  5.12实现细节
  5.13临时文件
  5.14标准I/O的替代软件
  5.15小结
  习题
第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 set3mp和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和wait4函数
  8.9竞争条件
  8.10 exec函数
  8.11更改用户ID和组ID
  8.12解释器文件
  8.13 system函数
  8.14进程会计
  8.15用户标识
  8.16进程时间
  8.17小结
  习题
第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 sigsetjrap和siglongjmp函数
  10.16 sigsuspend函数
  10.17 abort函数
  10.18 system函数
  10.19 sleep函数
  10.20作业控制信号
  10.21其他特征
  10.22小结
  习题
第1l章线程
  11.1引言
  11.2线程概念
  11.3线程标识
  11.4线程的创建
  11.5线程终止
  11.6线程同步
  11.7小结
  习题
第12章线程控制
  12.1引言
  12.2线程限制
  12.3线程属性
  12.4同步属性
  12.5重入
  12.6线程私有数据
  12.7取消选项
  12.8线程和信号
  12.9线程和fork
  12.10线程和I/0
  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非阻塞UO
    14.3记录锁
    14.4 STREAMS
    14.5 I/O多路转接
    14.5.1 select和pselect函数
    14.5.2 poll函数
    14.6异步I/O
    14.6.1系统V异步I/O
    14.6.2 BSD异步I/O
    14.7 readv和writev函数
    14.8 readn和writen函数
    14.9存储映射I/O
    14.10小结
    习题
    第15章进程间通信
    15.1引言
    15.2管道
    15.3 popen和pclose函数
    15.4协同进程
    15.5 FIFO
    15.6 XSI IPC
    15.6.1标识符和键
    15.6.2权限结构
    15.6.3结构限制
    15.6.4优点和缺点
    15.7消息队列
    15.8信号量
    15.9共享存储
    15.10客户进程一服务器进程属性
    15.11小结
    习题
    第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基于STREAMS的管道
    17.2.1命名的STREAMS管道
    17.2.2唯一连接
  17.3 UNIX域套接字
    17.3.1命名UNIX域套接字
    17.3.2唯一连接
  17.4传送文件描述符
    17.4.1经由基于STREAMS的管道传送文件描述符
    17.4.2经由UNIX域套接字传送文件描述符
  17.5 open服务器版本1
  17.6 open服务器版本2
  17.7小结
  习题
第18章终端I/O
  18.1引言
  18.2综述
  18.3特殊输入字符
  18.4获得和设置终端属性
  18.5终端选项标志
  18.6 stty命令
  18.7波特率函数
  18.8行控制函数
  18.9终端标识
  18.10规范模式
  18.11非规范模式
  18.12终端的窗口大小
  18.13 termcaD.terminfo和curses
  18.14小结
  习题
第19章伪终端
  19.1引言
  19.2概述
  19.3打开伪终端设备
    19.3.1基于STREAMS的伪终端
    19.3.2基于BSD的伪终端
    19.3.3基于Linux的伪终端
  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超文本传输协议
  21.4打印假脱机技术
  21.5源代码
  21.6小结
  习题
附录A函数原型
附录B其他源代码
附录C部分习题答案
参考书目
索引
猜您喜欢

读书导航