第1章 Linux标准I/O编程 1
1.1 Linux系统调用和用户编程接口 2
1.1.1系统调用 2
1.1.2用户编程接口 2
1.2 Linux标准I/O概述 3
1.2.1标准I/O的由来 3
1.2.2流的含义 3
1.3标准I/O编程 4
1.3.1流的打开 4
1.3.2流的关闭 5
1.3.3错误处理 5
1.3.4流的读写 7
1.3.5流的定位 11
1.3.6格式化输入输出 12
1.4实验内容 13
1.4.1文件的复制 13
1.4.2循环记录系统时间 15
第2章 Linux文件I/O编程 17
2.1 Linux文件I/O概述 18
2.1.1 POSIX规范 18
2.1.1虚拟文件系统 18
2.1.2文件和文件描述符 19
2.1.3文件I/O和标准I/O的区别 20
2.2文件I/O操作 20
2.2.1文件打开和关闭 20
2.2.2文件读写 22
2.2.3文件定位 25
2.2.4文件锁 27
2.3实验内容——生产者和消费者 33
第3章 Linux多任务编程 42
3.1 Linux下多任务机制的介绍 43
3.1.1任务 43
3.1.2进程 43
3.1.3线程 48
3.2进程编程 49
3.2.1进程编程基础 49
3.2.2 Linux守护进程 62
3.3实验内容编写多进程程序 70
第4章 Linux进程间通信 77
4.1 Linux下进程间通信概述 78
4.2管道通信 79
4.2.1管道简介 79
4.2.2无名管道系统调用 79
4.2.3有名管道 83
4.3信号通信 86
4.3.1信号概述 86
4.3.2信号发送与设置 88
4.4信号量 94
4.4.1信号量概述 94
4.4.2信号量编程 95
4.5共享内存 100
4.6消息队列 107
4.7实验内容 113
4.7.1有名管道通信实验 113
4.7.2共享内存实验 117
第5章 Linux多线程编程 124
5.1线程基本编程 125
5.2线程之间的同步与互斥 129
5.2.1互斥锁线程控制 129
5.2.2信号量线程控制 130
5.3线程属性 134
5.4多线程实验 139
第6章 Linux网络编程基础 146
6.1网络体系结构 147
6.1.1 OSI模型和TCP/IP模型 147
6.1.2 TCP/IP模型特点 148
6.1.3 TCP和UDP 149
6.2网络基础编程 152
6.2.1套接字概述 152
6.2.2 IP地址 153
6.2.3端口 155
6.2.4字节序 156
6.2.5 TCP编程 157
6.2.6 UDP编程 165
6.3服务器模型 169
6.3.1循环服务器(TCP) 169
6.3.2并发服务器(TCP) 174
6.4实验内容——NTP的客户端实现 177
第7章 Linux高级网络编程 186
7.1网络超时检测 187
7.1.1套接字接收超时检测 187
7.1.2定时器超时检测 190
7.2广播 192
7.2.1广播地址 192
7.2.2广播包的发送和接收 193
7.3组播 196
7.3.1组播地址 197
7.3.2组播包的发送和接收 197
7.4 UNIX域套接字 201
7.4.1本地地址 201
7.4.2 UNIX域流式套接字 201
7.4.3 UNIX域用户数据报套接字 204
参考文献 208