
| Rich Teer 加拿大不列颠哥伦比亚省基洛纳市的一名UNIX顾问,UNIX社区中一名受人尊重的资深成员,知名的Solaris系统管理和编程专家,持有SCSA、SCNA和SCSA证书。他具有15年的C编程经验、9年多从事Sun系统工作的经验,其中有2年是Sun Microsystems公司的技术支持顾问。同时,他也是W.RichardStevens的畅销书《UNIX Network Programming》(第2版)的技术审校。... .. << 查看详细 |
| 译者序 前言. 第一部分 综述 第1章 solaris系统 1.1 引言 1.2 登录 1.3 shell 1.4 文件、目录和文件系统 1.5 输入和输出 1.6 程序、进程和线程 1.7 错误处理 1.8 用户标识 1.9 信号 1.10 unix时间值 1.11 系统调用和库函数 1.12 64位编程概述 1.12.1 编写纯64位的程序 1.12.2 编译和安装64位的程序 1.12.3 大文件的编译环境 1.12.4 过渡期的大文件编译环境 .1.13 小结 练习 第2章 solaris简史 2.1 引言 2.2 初期:sunos 2.3 sunos之后:solaris 2.4 标准 2.4.1 ansi/iso/iec c 2.4.2 system v接口定义 2.4.3 ieee posix 2.4.4 开放组的xpg4 2.4.5 单一unix规范 2.5 solaris 2.5 2.6 solaris 2.6 2.7 solaris 7 2.8 solaris 8 2.9 solaris 9 2.10 solaris标准遵守情况 2.11 编译符合标准的应用程序 2.12 小结 练习 第二部分 基本主题 第3章 实用工具函数 3.1 引言 3.2 处理字符类 3.2.1 测试字符类成员资格 3.2.2 改变字符类成员资格 3.2.3 字符类小结 3.3 处理字符串 3.3.1 得到字符串的长度 3.3.2 比较字符串 3.3.3 连接字符串 3.3.4 复制字符串 3.3.5 字符串查找函数 3.3.6 生成字符串的副本 3.3.7 把一个字符串分割成标记 3.3.8 转换字符串的函数 3.3.9 把字符串转换成数字 3.3.10 把数字转换成字符串 3.4 处理字节数组 3.4.1 比较字节数组 3.4.2 复制字节数组 3.4.3 查找字节数组 3.4.4 初始化字节数组 3.5 动态内存 3.5.1 内存对齐 3.5.2 分配动态内存 3.5.3 释放动态内存 3.6 其他内存管理包 3.6.1 malloc库 3.6.2 bsdmalloc库 3.6.3 mapmalloc库 3.6.4 watchmalloc共享对象 3.6.5 比较malloc库 3.7 临时文件 3.7.1 产生临时文件名 3.7.2 创建临时文件 3.8 分析命令行参数 3.9 错误报告 3.10 挂起进程 3.11 小结 练习 第4章 基本的文件i/o 4.1 引言 4.2 文件描述符 4.3 open函数 4.4 creat函数 4.5 dose和closefrom函数 4.6 lseek和llseek函数 4.7 tell函数 4.8 read和pread函数 4.9 write和pwrite函数 4.10 readn和writen函数 4.11 i/o效率 4.12 文件共享 4.13 原子的操作 4.14 dup和dup2函数 4.15 fcntl函数 4.16 ioctl函数 4.17 fdwalk函数 4.18 直接i/o 4.19 /dev/fd文件系统 4.20 小结 练习 第5章 标准i/o库 5.1 引言 5.2 文件流、数据类型和常量 5.3 标准输入、标准输出和标准错误输出 5.4 打开文件流 5.5 关闭文件流 5.6 读和写 5.6.1 字符输入函数 5.6.2 字符输出函数 5.6.3 行输入函数 5.6.4 行输出函数 5.6.5 二进制i/o 5.7 流状态 5.8 格式化i/o 5.8.1 格式输出 5.8.2 格式输入 5.8.3 格式转换规范 5.8.4 c语言转义序列 5.9 定位流 5.10 文件流锁定 5.11 缓冲 5.12 标准i/o的效率 5.13 小结 练习 第6章 日期和时间操作 6.1 引言 6.2 转换时间的复杂性 6.3 获得当前时间 6.4 设置当前时间 6.5 获得当前时区 6.6 unix时间和日历时间的转换 6.6.1 localtime和localtime__r函数 6.6.2 gmtime和gmtime_r函数 6.6.3 mktime函数 6.7 格式日期i/o 6.7.1 将日期转换成格式字符串 6.7.2 将格式字符串转换成日期 6.8 小结 练习 第7章 用户和组 7.1 引言 7.2 用户名 7.3 用户d 7.4 组d 7.5 组成员资格 7.6 口令文件 7.7 影像口令文件 7.8 读取和加密口令 7.9 组文件 7.10 utmpx和wtmpx文件 7.11 utmp和wtmp文件 7.12 lastlog文件 7.13 shells文件 7.14 小结 练习 第8章 系统信息和资源限制 8.1 引言 8.2 系统信息和识别 8.3 系统资源限制 8.4 每个进程的资源限制 8.5 资源控制工具 8.6 资源控制示例 8.7 资源使用信息 8.8 使用/proc文件系统确定资源使用信息 8.9 确定系统的平均负荷 8.10 小结 练习 第9章 安全的c编程 9.1 引言 9.2 缓冲区溢出 9.3 程序的环境 9.4 防御性编程 9.5 最小特权原贝口 9.6 使用chroot“监牢” 9.7 编写安全程序的技巧 9.8 小结 练习 第三部分 输入/输出 第10章 文件和目录 10.1 引言 10.2 路径名组件 10.2.1 dirname函数 10.2.2 basename函数 10.3 stat、fstat和lstat函数 10.4 文件类型 10.5 set-user-id和set-group-id 10.6 粘着位 10.7 文件访问权限 10.8 access函数 10.9 umask函数 10.10 chmod和fchmcd函数 10.11 chown、fchown和lchown函数 10.12 文件尺寸 10.13 文件截取 10.14 文件系统 10.15 link和unlink函数 10.16 remove和rename函数 10.17 符号链接 10.18 解析可能包含符号链接的路径 10.18.1 resolvepath函数 10.18.2 reatpath函数 10.19 symlink和readlink函数 10.20 文件时间 10.21 改变文件的访问时间和修改时间 10.21.1 utime函数 10.21.2 utimes函数 10.22 创建和删除目录 10.23 读取目录 10.23.1 opendir和fdopendir函数 10.23.2 readdir和readdir_r函数 10.23.3 seekdir、rewinddir和telldir函数 10.23.4 closedir函数 10.23.5 ftw和nftw函数 10.24 chdir、fchdir和getcwd函数 10.25 chroot和fchroot函数 10.26 特殊文件 10.27 sync和fsync函数 10.28 综合讨论 10.29 小结 练习 第11章 使用文件系统 11.1 引言 11.2 磁盘术语 11.3 已挂载的文件系统表 11.3.1 getmntent、getmntany和getextmntent函数 11.3.2 hasmntopt函数 11.3.3 resetmnttab函数 11.3.4 putmntent函数 11.4 mntfs文件系统ioctl命令 11.5 文件系统默认值 11.5.1 getvfsent系列函数 11.5.2 添加项到/etc/vfstab 11.6 挂载和卸载文件系统 11.6.1 mount函数 11.6.2 umount和umount2函数 11.7 获得文件系统的状态 11.7.1 statvfs和fstatvfs函数 11.7.2 ustat函数 11.8 读取文件系统数据结构 11.8.1 超级块 11.8.2 索引节点表 11.8.3 柱面组 11.9 小结 练习 第12章 终端i/o 12.1 引言 12.2 终端i/o概述 12.3 特殊的输入字符 12.4 获得和设置终端属性 12.5 终端选项标志 12.6 波特率函数 12.7 行控制函数 12.7.1 tcdrain函数 12.7.2 tctlow函数 12.7.3 tcflush函数 12.7.4 tcsendbreak函数 12.8 终端标识 12.8.1 ctermid和ctermid_r函数 12.8.2 isatty函数 12.8.3 ttyrmme和ttyname_r函数 12.9 规范模式 12.10 非规范模式 12.11 终端窗口尺寸 12.12 设备无关的终端控制 12.13 小结 练习 第13章 高级i/o 13.1 引言 13.2 非阻塞i/o 13.3 记录锁定 13.4 使用fcntl的记录锁定 13.5 使用locld的记录锁定 13.6 死锁和活锁 13.7 锁继承性和释放 13.8 强制锁与建议锁的比较 13.9 streams i/o子系统 13.10 streams消息 13.11 putmsg和putprnsg函数 13.12 getmsg和getpmsg函数 13.13 streams ioctl操作 13.14 使用read和write的streams i/o 13.14.1 从streams设备中读取 13.14.2 写入到streams设备 13.15 i/o多路复用 13.16 select函数 13.17 port函数.. 13.18 /dev/poll设备驱动程序 13.19 异步i/o 13.20 和streams设备文件一起的异步i/o 13.21 和其他文件一起的异步i/o 13.21.1 aioread和aiowrite函数 13.21.2 aiowait函数 13.21.3 aiocancel函数 13.22 readv和writev函数 13.23 sendfile和sendfilev函数 13.23.1 sendfile函数 13.23.2 sendfilev函数 13.24 内存映射的i/o 13.25 mmap和munmap函数 13.26 mprotect函数 13.27 madvise函数 13.28 msync函数 13.29 在内存中锁定页面 13.29.1 mlock和munlock函数 13.29.2 mlockall和munlockall函数 13.29.3 plock函数 13.30 memcntl函数 13.31 内存映射i/o的小结 13.32 访问控制列表 13.33 acl和facl函数 13.34 aclfromtext和acltotext函数 13.35 aclcheck函数 13.36 aclfrommode和acltomode函数 13.37 aclsort函数 13.38 扩展的文件属性 13.39 openat和attropen函数 13.40 fstatat函数 13.41 unlinkat函数 13.42 renameat函数 13.43 fchownat函数 13.44 futimesat函数 13.45 改变扩展属性文件权限 13.46 小结 练习 第四部分 进程和进程控制 第14章 unix进程的环境 14.1 引言 14.2 进程启动 14.3 进程终止 14.3.1 exit和_exit函数 14.3.2 atexit函数 14.4 命令行参数 14.5 环境变量 14.5.1 getenv函数 14.5.2 putenv函数 14.6 c程序的内存布局 14.7 共享的对象 14.8 内存分配 14.8.1 sbrk函数 14.8.2 brk函数 14.9 setjmp和longjmp函数 14.9.1 自动变量、寄存器变量和易变的变量 14.9.2 _setjmp和_longjmp函数 14.9.3 使用自动变量时的常见错误 14.10 资源限制 14.11 小结 练习 第15章 进程控制 15.1 引言 15.2 进程标识符 15.2.1 getpid函数 15.2.2 getppid函数 15.3 fork和fork1函数 15.4 vfork函数 15.5 exit和_exit函数 15.6 wait函数 15.7 waitpid函数 15.8 wait3和wait4函数 15.9 waitid函数 15.10 竞争条件 15.11 exec函数 15.11.1 execl函数 15.11.2 execv函数 15.11.3 execle函数 15.11.4 execve函数 15.11.5 execlp函数 15.11.6 execvp函数 15.11.7 exec函数的总结 15.12 解释程序文件 15.13 system函数 15.14 进程记账 15.15 小结 练习 第16章 进程关系 16.1 引言 16.2 终端登录 16.3 网络登录 16.4 进程组 16.5 会话 16.6 控制终端 16.7 tcgetpgrp和tcsetpgrp函数 16.8 tcgetsid函数 16.9 作业控制 16.10 程序的外壳执行 16.11 孤立的进程组 16.12 小结 练习 第17章 信号 17.1 引言 17.2 信号概念 17.3 signal函数 17.4 不可靠的信号 17.5 可靠的信号 17.6 sigset函数 17.7 pause函数 17.8 sighold、sigrelse、sigignore和sigpause函数 17.9 中断的系统调用 17.10 可重人函数 17.11 比较sigchld和sigcld信号 17.12 kill、killpg、raise、sigsend和sigsendset函数 17.13 alarm函数 17.14 间隔计时器 17.15 posix信号 17.16 信号集 17.17 sigprocmask函数 17.18 sigpending函数 17.19 sigaction函数 17.20 sigfpe函数 17.21 sigsetjmp和siglongjmp函数 17.22 sigsuspend函数 17.23 sigwait函数 17.24 abort函数 17.25 重新审视system函数 17.26 重新审视sleep函数 17.27 作业控制信号 17.28 软件信号 17.29 备选信号栈 17.30 系统信号消息 17.31 sig2str和str2sig函数 17.32 小结 练习 第18章 守护进程 18.1 引言 18.2 守护程序的特性 18.3 错误日志 18.4 streams log驱动器 18.5 syslog工具 18.6 成为守护程序 18.7 仅启动守护程序的一个副本 18.8 小结 练习 第五部分 进程间通信 第19章 使用管道和fifo的进程间通信 19.1 引言 19.2 管道 19.3 popen和pclose函数 19.4 协作进程 19.5 fifo 19.6 迭代服务器与并行服务器 19.7 小结 练习 第20章 system v进程间的通信工具 20.1 引言 20.2 system vipc的概念 20.3 system v消息队列 20.4 system v信号量集 20.5 system v共享内存 20.6 性能比较 20.7 小结 练习 第21章 高级进程间通信 21.1 引言 21.2 传递文件描述符 21.3 开放的服务器(版本1) 21.4 客户-服务器连接函数 21.5 开放的服务器(版本2) 21.6 小结 练习 第22章 门 22.1 引言 22.2 基本门函数 22.3 门信息函数 22.4 门的高级功能 22.5 门客户或门服务器的提前终止 22.6 小结 练习 第六部分 伪终端 第23章 伪终端 23.1 引言 23.2 伪终端概述 23.3 打开伪终端设备 23.4 pty_fork函数 23.5 pty程序 23.6 使用pty程序 23.7 高级特征 23.8 小结 练习 附录 附录a 国际化和本地化基本知识 附录b bsd源代码兼容性包 附录c 函数小结 附录d 其他源代码... 附录e 部分练习题答案 |
商品评论(0条)