UNIX系统编程──基于SVR4
UNIX系统编程──基于SVR4
David A. Curry
孙伟峰 译
出版时间:2001年07月
页数:576
功能完备的程序都要用到操作系统服务。即使是最简单的程序也要读取输入,生成输出,实际应用中程序的需求就更复杂了。包括检测日期和时间,使用网络,启动进程并与之通信。所谓“系统编程”,实际上就是指使用这些操作系统服务来编写程序。
本书是经典Unix编程图书。详细讲述了Unix与应用程序相互作用的技术细节。包含了许多实例,涉及的主题从字符串处理到网络编程。你可以以此为起点,通过编程实践,更上一层楼。
本书虽然主要针对AT&T SVR4版本,但也专门照顾到了其他三种最重要的Unix实现:Sun Solaris、HP-UX和SGI IRIX。还包括从BSD Unix向SVR4移植程序的注意事项。
本书讲述的主题包括:
*使用低层I/O子例程和标准I/O库
*创建和删除目录,改变文件属性,处理多个输入流,文件和记录上锁,以及内存映像文件。
*读取、输出和设置系统时间和日期
*如何获取当前的登录用户、如何获取用户的登录和注销时间,以及如何修改程序的有效用户ID和组ID,如何写set-user-id程序
*修改各种系统限制配置参数
*创建进程、作业控制和信号处理
*使用管道、FIFO、Unix域套接字、消息队列、信号量以及共享内存进行进程间通信
*读取和设置串行线的各种属性,例如波特率、字符回显和流控制
*使用Berkeley套接字和TLI进行网络编程
  1. 前言
  2. 第一章 SVR4导论
  3. 与标准兼容
  4. 编译器
  5. BSD 源码兼容包
  6. 第二章 实用子例程
  7. 字符串操作
  8. 内存块操作函数
  9. 操作字符类
  10. 动态内存分配
  11. 操作临时文件
  12. 分析命令行参数
  13. 其他函数
  14. 本章小结
  15. 第三章 低层I/O子例程
  16. 文件描述符
  17. 打开和关闭文件
  18. 输入和输出
  19. 重置读写偏移量
  20. 复制文件描述符
  21. 本章小结
  22. 第四章 标准I/O库
  23. 数据类型和常量
  24. 打开和关闭文件
  25. 基于字符的输入输出
  26. 基于行的输入输出
  27. 基于缓冲区的输入输出
  28. 格式化输入和输出
  29. 重置输入/输出的偏移量
  30. 重新分配文件指针
  31. 缓冲
  32. stream的状态
  33. 文件指针和文件描述符
  34. 本章小结
  35. 第五章 文件和目录
  36. 文件系统基本概念
  37. UNIX 文件系统
  38. 获得文件属性
  39. 修改文件的属性
  40. 创建和删除文件及目录
  41. 与目录相关的特殊操作
  42. 本章小结
  43. 第六章 文件的特殊操作
  44. 文件描述符的属性
  45. 管理多个文件描述符
  46. 文件和记录上锁
  47. 内存映像文件
  48. 文件系统/dev/fd
  49. 其他函数
  50. 本章小结
  51. 第七章 日期时间操作
  52. 复杂的时间
  53. 获得当前的时间
  54. 获得本地时区
  55. 在UNIX时间格式和日常时间格式之间相互转换
  56. 格式化数据串
  57. 本章小结
  58. 第八章 用户和组
  59. 登录名
  60. 用户的ID号
  61. 组ID
  62. 口令文件
  63. 映像口令(shadow password)文件
  64. 组文件
  65. 文件utmp和wtmp
  66. 文件Lastlog
  67. 文件shells
  68. 编写set-user-id和set-group-id程序
  69. 本章小结
  70. 第九章 系统配置和资源限制
  71. 基本的系统信息
  72. 系统资源限制
  73. 进程的资源限制
  74. 资源利用信息
  75. 本章小结
  76. 第十章 信号
  77. 信号的基本概念
  78. 基本的信号处理
  79. 不可靠的信号
  80. 可靠的信号
  81. 信号和系统调用
  82. 使用信号进行“定时”处理
  83. 高级信号处理
  84. 将伯克利的信号处理函数移植到SVR4
  85. 本章小结
  86. 第十一章 进程
  87. 进程的基本概念
  88. 终止进程
  89. 执行一个程序
  90. 和进程相关的高级函数调用
  91. 输入输出重定向
  92. 作业控制
  93. 统计进程的执行时间
  94. 移植注意
  95. 本章小结
  96. 第十二章 终端
  97. 终端I/O的基本概念
  98. 和终端相关的函数
  99. POSIX的终端控制
  100. POSIX之前的终端控制
  101. 终端窗口的大小
  102. 本章小结
  103. 第十三章 进程间通信
  104. 管道
  105. FIFO
  106. UNIX的套接字
  107. 系统V的IPC 函数
  108. 本章小结
  109. 第十四章 使用套接字进行网络编程
  110. 网络的基本概念
  111. 创建一个套接字
  112. 服务器端的函数
  113. 客户端的函数
  114. 示例程序
  115. 其他函数
  116. 本章小结
  117. 第十五章 使用TLI进行网络编程
  118. 结构体netbuf
  119. 网络选择
  120. 主机名-主机地址转换
  121. TLI工具函数
  122. 传输终端点管理
  123. 无连接的服务
  124. 面向连接的服务
  125. 其他函数
  126. 在TLI中进行读写
  127. 本章小结
  128. 第十六章 其他子例程
  129. 当发生错误时退出
  130. 错误日志
  131. 搜索
  132. 排序
  133. 环境变量
  134. 口令
  135. 随机数
  136. 目录树
  137. 数据库管理
  138. 模式匹配
  139. 国际化
  140. 本章小结
  141. 附录一 ANSI C对C的改进
  142. 附录二 访问文件系统的数据结构
  143. 附录三 文件系统/proc
  144. 附录四 伪终端
  145. 附录五 在链路层访问网络
书名:UNIX系统编程──基于SVR4
作者:David A. Curry
译者:孙伟峰 译
国内出版社:中国电力出版社
出版时间:2001年07月
页数:576
书号:7-5083-0659-7
原版书出版商:O'Reilly Media
David A. Curry
 
David A. Curry目前是IBM公司Internet紧急反应服务部门(IBM-ERS)的高级Internet安全分析师,负责该部门的安全脆弱性警告服务,以及开发此服务的质量管理程序。他拥有普度大学的计算机科学学士学位。
David自1985年开始Unix系统编程。他曾任NASA Ames研究中心的助理研究员,以及加州SRI国际公司的高级系统程序员。1991年婚后,他决定定居中西部,于是返回了普度大学,成为该大学工程计算机网的Unix系统编程组负责人,直至1995年。
David是USENIX协会和美国国家计算机安全协会的会员。还是IBM-ERS在紧急反应和安全小组论坛(FIRST)的代表。他写过许多在网上广为流传的程序,还是另两本书《Using C on the Unix System》(O'Reilly)和《Unix System Security》(Addison-Wesley)的作者。
 
 
本书封面上的动物是狮子,一种大型的食肉猫科动物,主要栖息在西印度和撒哈拉以南。狮子是猫科动物中最喜群居的,一个狮群通常由1到4只雄狮,和30只左右的雌狮和幼狮组成。每个狮群又分成几组。狮群的领土从15到150平方英里不等,以食物的多少而定,其边界用气味划分。
狮子以鲜肉和腐肉为食。它们更喜欢吃较大的猎物,比如斑马和羚羊。捕猎主要由雌狮承担,它们会互相协作,包抄较大的猎物。捕猎时,狮子会在阴暗处或植物丛中小心地移动,但风向的改变会经常使它们暴露。