《Linux操作系统环境下C语言程序设计》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:王继业主编
  • 出 版 社:北京:中央民族大学出版社
  • 出版年份:2009
  • ISBN:9787811087024
  • 页数:264 页
图书介绍:本书介绍了新兴操作系统Linux环境下的操作方法和程序设计,包括文件、进程管理、信号、进程通信、网络和图形界面设计等。

第一章 什么是LINUX 1

1.1 LINUX的历史 1

1.1.1 Linux的诞生 1

1.1.2 Linux的吉祥物 1

1.1.3 Linux的发行版 2

1.1.4 自由软件基金会和GNU版权 3

1.2 LINUX特点 3

1.2.1 多用户系统 4

1.2.2 登录 5

1.2.3 文件系统的层次结构 6

1.2.4 一般linux系统的文件树结构 7

思考和练习 8

第二章 LINUX系统的安装 9

2.1 FEDORA CORE 6.0的安装过程 9

2.1.1 安装前的准备工作 9

2.1.2 开始安装FC6 10

2.1.3 硬盘分区 12

2.1.4 接下来的安装 14

2.1.5 安装后的配置 17

2.2 UBUNTU 8.04的安装 20

2.2.1 安装前的准备 20

2.2.2 开始安装 21

2.2.3 安装后的设置 25

思考和练习 26

第三章 LINUX的命令行操作 27

3.1 初识LINUX 27

3.1.1 登录Linux 27

3.1.2 几个有趣的命令 28

3.1.3 在文件系统中遨游 32

3.1.4 显示目录内容 33

3.2 常用LINUX命令 34

3.2.1 Linux系统中目录的层次结构 35

3.2.2 文件系统 36

3.2.3 处理文件 38

3.2.4 目录和文件的属性 40

3.2.5 其他命令 41

思考和练习 43

第四章 VI的使用 44

4.1 编辑方式 44

4.1.1 光标定位 45

4.1.2 搜索字符串 45

4.1.3 替换、删除 45

4.1.4 剪切和粘贴 46

4.1.5 撤消和重复 46

4.2 插入方式 46

4.3 命令方式 47

4.3.1 退出命令 47

4.3.2 文件 47

4.3.3 行号使用 47

4.3.4 字符串搜索 47

4.4 规则表达式 48

4.4.1 正文替换 48

4.4.2 删除正文 48

4.5 编辑程序的选项和运行系统命令 48

思考和练习 49

第五章 SHELL环境和程序设计 50

5.1 BASH 50

5.1.1 bash shell的基本特点 50

5.1.2 bash高级属性 52

5.2 管道中的过滤器 54

5.2.1 基本过滤命令 54

5.2.2 awk编程 59

5.3 SHELL程序设计 64

5.3.1 建立和运行shell程序 65

5.3.2 shell程序变量 65

5.3.3 语句和表达式 68

5.3.4 子函数及其他 74

思考和练习 78

第六章 C语言编程环境简介 79

6.1 第一个C程序 79

6.2 GNU C编译和连接 80

6.2.1 gcc命令行选项 80

6.2.2 函数库和头文件 81

6.2.3 GNU C扩展 82

6.3 GNU MAKE项目管理 84

6.3.1 编写make文件 84

6.3.2 伪目标 85

6.3.3 变量 85

6.3.4 隐含规则和规则模式 87

6.3.5 make命令行参量 87

思考和练习 87

第七章 文件系统操作 89

7.1 文件操作 89

7.1.1 文件的打开和关闭 89

7.1.2 文件的输入输出 90

7.1.3 设置打开文件的位置 91

7.1.4 文件描述符和文件指针 92

7.1.5 文件控制 92

7.1.6 一个例子 93

7.2 目录操作 94

7.2.1 工作目录 94

7.2.2 操作目录结构 95

7.2.3 目录、文件的属性 97

7.2.4 文件的其他操作 98

7.2.5 一个例子 98

7.3 设备文件 100

7.3.1 设备文件控制函数 100

7.3.2 串行口的编程 101

7.3.3 声卡的编程 104

思考和练习 110

第八章 进程管理 112

8.1 进程执行环境 112

8.1.1 程序的参数 112

8.1.2 环境变量 117

8.2 进程 118

8.2.1 获得进程号 118

8.2.2 创建进程 118

8.2.3 运行程序 119

8.2.4 进程的终止 120

8.2.5 进程的完成状态 121

8.2.6 进程创建的完整例子——执行外部命令 122

思考和练习 124

第九章 信号 125

9.1 信号的基本概念 125

9.1.1 信号的种类 125

9.1.2 信号的发生 125

9.1.3 信号的传递与响应 126

9.2 一些标准的信号 127

9.2.1 程序出错信号 127

9.2.2 程序终止信号 128

9.2.3 闹钟信号 129

9.2.4 异步I/O信号 130

9.2.5 作业控制信号 130

9.2.6 操作错误信号 131

9.2.7 外围信号 131

9.2.8 信号消息 132

9.3 特定信号的反应 132

9.3.1 信号的控制的基本方法 132

9.3.2 信号的控制的高级方法 134

9.3.3 signal()函数和sigaction()函数的关系 134

9.3.4 sigaction函数举例 135

9.3.5 sigaction函数的标志 136

9.3.6 初始化信号回调 136

9.4 定义信号句柄 137

9.4.1 能够返回的信号句柄 137

9.4.2 结束进程的信号句柄 138

9.4.3 信号函数中的非局域转移 139

9.4.4 信号函数执行时到达的信号 140

9.4.5 时间相近信号的合并 141

9.4.6 信号句柄和非重入函数 143

9.4.7 数据的原子操作和信号 145

9.4.8 非原子操作带来的问题 145

9.4.9 原子类型 146

9.4.10 原子类型应用范式 146

9.5 被信号中断的原始操作 146

9.6 信号的产生 147

9.6.1 进程自己产生 147

9.6.2 其他进程产生信号 148

9.6.3 使用kill的权限 149

9.6.4 利用kill函数进行进程通讯 149

9.7 信号的阻塞 150

9.7.1 阻塞信号的作用 151

9.7.2 信号集 151

9.7.3 进程的信号掩码 152

9.7.4 举例:禁止关键代码时信号到达 152

9.7.5 在信号句柄中阻塞信号 153

9.7.6 查找阻塞的信号 154

9.7.7 信号阻塞的代替方法 154

9.8 等待信号 155

9.8.1 用pause()函数 155

9.8.2 pause()函数产生的问题 156

9.8.3 用sigsuspend()函数 156

思考和练习 157

第十章 进程间通讯 158

10.1 管道和命名管道 158

10.1.1 管道 158

10.1.2 命名管道 162

10.2 系统VIPC机制 162

10.2.1 一般概念 163

10.2.2 消息队列 164

10.2.3 信号量 167

10.2.4 共享内存 173

思考和练习 177

第十一章 SOCKET通讯 178

11.1 SOCKET的基本概念 178

11.1.1 什么是Socket 178

11.1.2 网络协议 179

11.1.3 数据结构 180

11.2 IP地址和域名 181

11.2.1 IP地址 181

11.2.2 域名系统 183

11.3 SOCKET相关系统调用 186

11.3.1 socket() 186

11.3.2 bind() 186

11.3.3 connect() 188

11.3.4 accept()和listen() 189

11.3.5 send()和recv() 190

11.3.6 sendto()和recvfrom() 191

11.3.7 close()和shutdown() 192

11.3.8 getpeername()函数 192

11.3.9 gethostname()函数 192

11.3.10 原始格式通讯的一个例子 193

思考和练习 199

第十二章 非连接通讯—UDP 200

12.1 UDP服务器 200

12.1.1 建立UDP监听套接口 201

12.1.2 UDP应用协议举例 203

12.2 接收UDP 206

12.2.1 UDP客户机 206

12.2.2 UDP客户举例 207

思考和练习 211

第十三章 面向连接的通讯—TCP 212

13.1 服务器程序 212

13.1.1 守护进程 212

13.1.2 使用TCP连接的服务器 214

13.1.3 一些额外的处理 216

13.1.4 使用TCP的服务器程序样例 217

13.2 客户程序 219

思考和练习 223

第十四章 使用GTK进行图形界面设计 224

14.1 GTK的基本概念和机制 224

14.1.1 Linux下的图形系统 224

14.1.2 Gtk和gnome 225

14.1.3 gtk基本实现机制 225

14.2 使用GTK进行基本的图形界面设计 226

14.2.1 最简单的gtk程序 226

14.2.2 添加按钮 227

14.2.3 更多信号相关的操作 229

14.2.4 部件的布局 229

14.2.5 常用的窗口部件 234

14.3 使用GLADE进行界面设计 235

14.3.1 glade简介 235

14.3.2 简单的实例 235

14.3.3 进一步改进 238

14.3.4 简单的计算器 240

思考和练习 243

附录A GNU通用公共许可证(GPL)中文版 244

附录B GNU通用公共授权(第三版) 249

附录C LINUX课程上机实验 258

插图、表格和示例程序目录 261

参考书目 264