第1章 Unix系统编程概述
1.1 介绍
1.2 什么是系统编程
1.2.1 简单的程序模型
1.2.2 系统模型
1.2.3 操作系统的职责
1.2.4 为程序提供服务
1.3 理解系统编程
1.3.1 系统资源
1.3.2 目标:理解系统编程
1.3.3 方法:通过三个问题来理解
1.4 从用户的角度来理解Unix
1.4.1 Unix能做些什么
1.4.2 登录--运行程序--注销
1.4.3 目录操作
1.4.4 文件操作
1.5 从系统的角度来看Unix
1.5.1 用户和程序之间的连接方式
1.5.2 网络桥牌
1.5.3 bc:Unix的计算器
1.5.4 从bc/dc到Web
1.6 动手实践
1.7 工作步骤与概要图
1.7.1 接下来的工作步骤
1.7.2 Unix的概要图
1.7.3 Unix的发展历程
小结
第2章 用户、文件操作与联机帮助:编写who命令
2.1 介绍
2.2 关于命令who
2.3 问题1:who命令能做些什么
2.4 问题2:who命令是如何工作的
2.5 问题3:如何编写who
2.5.1 问题:如何从文件中读取数据结构
2.5.2 答案:使用open、read和close
2.5.3 编写wh01.c
2.5.4 显示登录信息
2.5.5 编写wh02.c
2.5.6 回顾与展望
2.6 编写cp(读和写)
2.6.1 问题1:cp命令能做些什么
2.6.2 问题2:cp命令是如何创建/重写文件的
2.6.3 问题3:如何编写cp
2.6.4 Unix编程看起来好像很简单
2.7 提高文件I/O效率的方法:使用缓冲
2.7.1 缓冲区的大小对性能的影响
2.7.2 为什么系统调用需要很多时间
2.7.3 低效率的wh02.c
2.7.4 在wh02.c中运用缓冲技术
2.8 内核缓冲技术
2.9 文件读写
2.9.1 注销过程:做了些什么
2.9.2 注销过程:如何工作的
2.9.3 改变文件的当前位置
2.9.4 编写终端注销的代码
2.10 处理系统调用中的错误
小结
第3章 目录与文件属性:编写ls
3.1 介绍
3.2 问题1:1s命令能做什么
3.2.1 1s可以列出文件名和文件的属性
3.2.2 列出指定目录或文件的信息
3.2.3 经常用到的命令行选项
3.2.4 问题1的答案
3.3 文件树
3.4 问题2:1s是如何工作的
3.4.1 什么是目录
3.4.2 是否可以用open、read和close来操作目录
3.4.3 如何读目录的内容
……
第4章 文件系统:编写pwd
第5章 连接控制:学3]stty
第6章 为用户编程:终端控制和信号
第7章 事件驱动编程:编写一个视频游戏
第8章 进程和程序:编写命令解释器sh
第9章 可编程的shell、shell变量和环境:编写自己的shell.
第10章 I/O重定向和管道
第11章 连接到近端或远端的进程:服务器与Socket(套接宇)
第12章 连接和协议:编写Web服务器
第13章 基于数据报(Datagram)的编程:编写许可证服务器
第14章 线程机制:并发函数的使用
第15章 进程间通信(1PC)
展开