第4章 文件I/O ………………………………………………………………………… 74
		4.1 文件系统简介……………………………………………………………………… 74
		4.1.1 UNIX/Linux文件系统概述……………………………………………… 75
		4.1.2 VFS虚拟文件系统………………………………………………………… 77
		4.1.3 索引节点inode …………………………………………………………… 77
		4.1.4 文件的类型………………………………………………………………… 78
		4.1.5 文件的访问权限…………………………………………………………… 80
		4.2 访问文件的内核数据结构………………………………………………………… 81
		4.3 文件基本I/O操作………………………………………………………………… 83
		4.3.1 打开/创建文件open/creat ……………………………………………… 83
		4.3.2 读文件……………………………………………………………………… 87
		4.3.3 写文件……………………………………………………………………… 88
		4.3.4 文件定位…………………………………………………………………… 90
		4.3.5 关闭文件…………………………………………………………………… 92
		4.3.6 文件操作举例……………………………………………………………… 93
		4.4 文件访问的同步…………………………………………………………………… 95
		4.5 项目:文件复制命令的实现……………………………………………………… 96
		4.5.1 项目分析与设计…………………………………………………………… 96
		4.5.2 项目实施…………………………………………………………………… 98
		4.5.3 项目编译与运行…………………………………………………………… 99
		第5章 文件属性管理………………………………………………………………… 102
		5.1 获取文件属性…………………………………………………………………… 102
		5.2 用户/组ID与名字的转换……………………………………………………… 105
		5.3 硬链接与符号链接……………………………………………………………… 107
		5.3.1 硬链接与符号链接的区别……………………………………………… 107
		5.3.2 相关的系统调用函数…………………………………………………… 108
		5.4 dup/dup2 ………………………………………………………………………… 109
		5.4.1 输入输出重定向………………………………………………………… 109
		5.4.2 dup/dup2函数…………………………………………………………… 110
		5.5 文件属性的修改………………………………………………………………… 113
		5.5.1 修改文件属性…………………………………………………………… 113
		5.5.2 改变文件属主及组chown/fchown/lchown …………………………… 114
		5.5.3 改变文件访问权限chmod/fchmod …………………………………… 115
		5.5.4 改变文件时间utime …………………………………………………… 115
		5.5.5 改变文件长度truncate/ftruncate ……………………………………… 116
		5.6 项目:显示文件长格式信息……………………………………………………… 116
		5.6.1 项目分析与设计………………………………………………………… 116
		5.6.2 项目实施………………………………………………………………… 117
		
			5.6.3 项目编译与运行………………………………………………………… 120
			第6章 目录文件管理………………………………………………………………… 123
			6.1 目录基本操作…………………………………………………………………… 123
			6.1.1 打开目录………………………………………………………………… 123
			6.1.2 读目录…………………………………………………………………… 124
			6.1.3 关闭目录………………………………………………………………… 125
			6.2 目录其他操作…………………………………………………………………… 126
			6.2.1 改变当前目录…………………………………………………………… 126
			6.2.2 创建目录………………………………………………………………… 127
			6.2.3 删除目录………………………………………………………………… 128
			6.2.4 目录指针定位…………………………………………………………… 128
			6.3 项目:显示指定目录下文件列表………………………………………………… 129
			6.3.1 项目分析与设计………………………………………………………… 129
			6.3.2 项目实施………………………………………………………………… 129
			6.3.3 项目编译与运行………………………………………………………… 134
			第7章 进程控制………………………………………………………………………… 136
			7.1 什么是Shell……………………………………………………………………… 136
			7.1.1 用户登录Shell…………………………………………………………… 136
			7.1.2 Shell执行命令…………………………………………………………… 137
			7.2 进程基本概念…………………………………………………………………… 138
			7.2.1 进程标识(ProcessID) ………………………………………………… 138
			7.2.2 用户标识………………………………………………………………… 139
			7.3 进程控制相关函数……………………………………………………………… 141
			7.3.1 创建进程………………………………………………………………… 141
			7.3.2 exec*函数……………………………………………………………… 150
			7.3.3 进程终止………………………………………………………………… 154
			7.3.4 等待进程结束…………………………………………………………… 155
			7.3.5 system函数……………………………………………………………… 162
			7.4 项目:实现简单的Shell ………………………………………………………… 164
			7.4.1 项目分析与设计………………………………………………………… 164
			7.4.2 项目实施………………………………………………………………… 165
			7.4.3 项目编译与运行………………………………………………………… 167
			第8章 线 程…………………………………………………………………………… 169
			8.1 线程概念………………………………………………………………………… 169
			8.2 线程基本操作…………………………………………………………………… 170
			8.3 线程间通信……………………………………………………………………… 175
			8.4 项目:线程实例…………………………………………………………………… 179
			8.4.1 项目分析与设计………………………………………………………… 179
			
				8.4.2 项目实施………………………………………………………………… 180
				8.4.3 项目编译与运行………………………………………………………… 182
				第9章 信号与管道…………………………………………………………………… 186
				9.1 信号……………………………………………………………………………… 186
				9.1.1 信号的概念……………………………………………………………… 186
				9.1.2 信号的产生……………………………………………………………… 187
				9.1.3 信号的响应方式………………………………………………………… 192
				9.1.4 sleep和pause …………………………………………………………… 194
				9.1.5 信号集…………………………………………………………………… 197
				9.2 管道……………………………………………………………………………… 207
				9.2.1 管道基本概念…………………………………………………………… 207
				9.2.2 FIFO ……………………………………………………………………… 214
				第10章 进程间通信(IPC)…………………………………………………………… 218
				10.1 System VIPC介绍…………………………………………………………… 218
				10.2 System V信号量……………………………………………………………… 220
				10.3 System V共享内存…………………………………………………………… 226
				10.4 System V消息队列…………………………………………………………… 231
				第11章 网络编程……………………………………………………………………… 239
				11.1 网络编程基本概念……………………………………………………………… 239
				11.1.1 常用网络相关命令和配置文件………………………………………… 239
				11.1.2 软件体系结构…………………………………………………………… 243
				11.1.3 网络协议及OSI参考模型……………………………………………… 245
				11.1.4 IP地址和端口………………………………………………………… 248
				11.1.5 字节顺序………………………………………………………………… 250
				11.1.6 网络数据传输方式……………………………………………………… 253
				11.2 套接字编程基础………………………………………………………………… 254
				11.2.1 套接字简介……………………………………………………………… 254
				11.2.2 套接字地址结构………………………………………………………… 255
				11.2.3 面向连接套接字通信过程……………………………………………… 257
				11.2.4 面向无连接套接字通信过程…………………………………………… 258
				11.3 套接字编程相关函数…………………………………………………………… 259
				11.3.1 socket …………………………………………………………………… 259
				11.3.2 bind……………………………………………………………………… 260
				11.3.3 listen …………………………………………………………………… 261
				11.3.4 accept …………………………………………………………………… 261
				11.3.5 connect ………………………………………………………………… 262
				11.3.6 send……………………………………………………………………… 263
				11.3.7 recv ……………………………………………………………………… 263
				
					1.3.8 close …………………………………………………………………… 264
					11.3.9 sendto…………………………………………………………………… 264
					11.3.10 recvfrom ……………………………………………………………… 265
					11.4 项目:基于网络的进程间通信………………………………………………… 266
					11.4.1 项目分析与设计………………………………………………………… 266
					11.4.2 项目实施………………………………………………………………… 267
					11.4.3 项目运行………………………………………………………………… 269
					11.5 基于UDP的网络编程………………………………………………………… 272
					11.6 域名解析………………………………………………………………………… 276
					11.6.1 域名概述………………………………………………………………… 276
					11.6.2 IP地址形式转换……………………………………………………… 278
					11.6.3 IP地址与主机名……………………………………………………… 280
					第12章 Linux网络传输系统………………………………………………………… 286
					12.1 项目构思………………………………………………………………………… 286
					12.2 项目设计………………………………………………………………………… 287
					12.3 项目实施………………………………………………………………………… 289
					12.4 项目运行………………………………………………………………………… 294
					附录A Linux主要的系统调用……………………………………………………… 297
					附录B 标准……………………………………………………………………………… 304
					附录C ASCII码………………………………………………………………………… 307
					附录D 学习知识要点及能力要点…………………………………………………… 309
					参考文献…………………………………………………………………………………… 315