微信扫一扫,移动浏览光盘
简介
本书介绍Linux环境下Shell编程、C语言系统编程和Gtk+编程三个方面的知识。第1章~3章介绍Linux操作系统的基础知识、Linux常用命令和Shell编程;第4章介绍C语言的基础知识;第5~第8章介绍Linux系统编程,包括文件I/O、标准I/O库、进程和信号以及进程间通信等方面的知识;第9~第10章介绍如何使用Gtk+库进行图形界面编程。
本书编写的宗旨是引导读者快速入门,所以行文注重循序渐进、逻辑连贯、语言简洁、阐述清晰、例程详尽。
本书适合作为高等院校计算机相关专业“Linux环境编程”课程的教材或参考书,也适合具有一定编程基础的读者将其作为学习Linux环境下应用程序开发之入门教程。
目录
目 录
第1章 Linux基础 1
1.1 概述 1
1.1.1 Linux内核和发行版 1
1.1.2 Linux的发展要素 3
1.2 Linux的安装 5
1.2.1 在虚拟机上安装 5
1.2.2 在实体机上安装 12
1.3 Linux操作环境 12
1.3.1 GNOME简介 12
1.3.2 Linux文件系统 17
1.3.3 Shell 22
1.4 小结 24
1.5 习题 25
第2章 Linux Shell命令操作 26
2.1 获取帮助 26
2.1.1 --help选项 27
2.1.2 man 28
2.1.3 info 29
2.2 通配符、引号、管道和输入输出重定向 29
2.2.1 通配符 29
2.2.2 转义字符 30
2.2.3 引号 30
2.2.4 管道 31
2.2.5 输入、输出重定向 31
2.3 基础操作 33
2.3.1 sudo 33
2.3.2 路径和当前工作目录 33
2.3.3 创建和删除文件 34
2.3.4 创建和删除目录 35
2.3.5 查看用户、日期和输出简单信息 35
2.3.6 命令历史和名称补全 36
2.3.7 ls命令 37
2.3.8 别名 38
2.4 浏览及搜索文件系统 39
2.4.1 find 39
2.4.2 which 40
2.4.3 whereis 40
2.4.4 locate 41
2.5 阅读文本文件 42
2.5.1 cat 42
2.5.2 more和less 42
2.5.3 head和tail 43
2.6 编辑文本文件 43
2.6.1 vi 43
2.6.2 gedit 46
2.7 文件内容操作命令 46
2.7.1 grep 46
2.7.2 sort 48
2.7.3 diff 49
2.7.4 wc 50
2.8 文件的复制、移动、链接和归档 51
2.8.1 cp 51
2.8.2 mv 52
2.8.3 ln 53
2.8.4 tar 53
2.9 文件系统操作 55
2.9.1 挂载——mount 55
2.9.2 卸载——umount 57
2.9.3 查看系统信息 57
2.10 用户管理 58
2.11 文件权限操作 59
2.12 进程相关命令 61
2.12.1 进程和作业 61
2.12.2 查看进程——ps 62
2.12.3 结束进程——kill 64
2.13 网络相关命令 64
2.14 小结 66
2.15 习题 66
第3章 Linux Shell编程 68
3.1 基础知识 68
3.1.1 第一个Shell程序 68
3.1.2 如何运行Shell程序 69
3.1.3 Shell的命令种类 70
3.1.4 Shell执行命令的顺序 71
3.1.5 注释、退出状态和逻辑操作 71
3.1.6 复合命令 72
3.2 Shell变量 73
3.2.1 变量的赋值与引用 73
3.2.2 命令替换 74
3.2.3 变量属性声明 75
3.2.4 数组变量 75
3.2.5 变量引用操作符 77
3.2.6 位置参数和特殊变量 79
3.2.7 read命令 81
3.2.8 export语句 82
3.3 控制结构 83
3.3.1 条件测试 83
3.3.2 if语句 88
3.3.3 case语句 89
3.3.4 while语句 91
3.3.5 until语句 92
3.3.6 for语句 93
3.3.7 break、continue和exit 96
3.4 Shell函数 98
3.5 Shell内部命令 99
3.6 Shell程序调试 101
3.7 小结 103
3.8 习题 103
第4章 Linux C语言编程基础 105
4.1 gcc编译器 105
4.1.1 概述 105
4.1.2 第一个C程序 106
4.1.3 编译选项 107
4.2 Eclipse CDT 111
4.2.1 简介、安装和启动 111
4.2.2 创建项目并运行 112
4.2.3 程序调试方法 116
4.3 C语言基础 118
4.3.1 C语言概述 118
4.3.2 数据类型 119
4.3.3 运算符与表达式 128
4.3.4 C语言的语句 130
4.3.5 控制结构 130
4.3.6 函数 135
4.3.7 内存管理 137
4.3.8 编译预处理 138
4.4 小结 142
4.5 习题 143
第5章 文件 144
5.1 Linux文件I/O概述 144
5.1.1 简介 144
5.1.2 文件和目录 144
5.1.3 文件和设备 145
5.1.4 系统调用和标准函数库 146
5.2 底层文件访问 146
5.2.1 文件描述符 146
5.2.2 文件的创建、打开和关闭 147
5.2.3 文件的读、写 148
5.2.4 文件的定位 150
5.2.5 文件属性的读取 152
5.2.6 文件属性的修改 157
5.3 链接文件的操作 162
5.3.1 创建硬链接 162
5.3.2 创建和读取符号链接 162
5.3.3 删除链接 163
5.4 目录文件的操作 165
5.4.1 目录文件的创建与删除 165
5.4.2 目录文件的打开与关闭 166
5.4.3 目录文件的读取 167
5.5 设备文件 168
5.6 小结 168
5.7 习题 169
第6章 标准I/O库 170
6.1 流和文件指针 170
6.2 缓存 171
6.3 流的打开和关闭 171
6.3.1 打开流 171
6.3.2 关闭流 173
6.4 基于字符和行的I/O 173
6.4.1 字符I/O 173
6.4.2 行I/O 176
6.5 二进制I/O 178
6.5.1 读二进制流 178
6.5.2 写二进制流 179
6.5.3 二进制I/O的常见用法 179
6.6 定位流 181
6.7 格式化I/O 182
6.7.1 格式化输出 182
6.7.2 格式化输入 185
6.8 临时文件 186
6.9 文件流和文件描述符 188
6.10 小结 188
6.11 习题 188
第7章 进程和信号 192
7.1 进程的基本概念 192
7.1.1 什么是进程 192
7.1.2 Linux进程环境 193
7.2 进程的结构 199
7.2.1 进程控制块和进程表 199
7.2.2 进程标识 199
7.2.3 进程的状态 200
7.3 进程控制 202
7.3.1 system函数 202
7.3.2 exec函数 203
7.3.3 fork函数 206
7.3.4 vfork函数 208
7.3.5 进程的终止状态 209
7.3.6 wait和waitpid函数 210
7.4 信号 213
7.4.1 简介 213
7.4.2 捕获信号 214
7.4.3 发送信号 216
7.4.4 信号集 219
7.4.5 sigaction函数 220
7.5 小结 222
7.6 习题 222
第8章 进程间通信 224
8.1 IPC简介 224
8.2 管道 225
8.2.1 pipe函数 225
8.2.2 popen和pcolse函数 227
8.3 命名管道(FIFO) 229
8.4 SysV IPC 232
8.5 信号量 233
8.5.1 简介 233
8.5.2 semget函数 233
8.5.3 semop函数 234
8.5.4 semctl函数 234
8.5.5 信号量的应用 235
8.6 共享内存 238
8.6.1 简介 238
8.6.2 shmget函数 239
8.6.3 shmat和shmdt函数 239
8.6.4 shmctl函数 240
8.6.5 共享内存的应用 240
8.7 消息队列 243
8.7.1 简介 243
8.7.2 msgget函数 244
8.7.3 msgsnd函数 245
8.7.4 msgrcv函数 245
8.7.5 msgctl函数 246
8.7.6 消息队列的应用 246
8.8 小结 248
8.9 习题 249
第9章 Gtk+编程基础 250
9.1 Gtk+简介 250
9.2 glib库 251
9.3 Gtk+程序结构 254
9.3.1 第一个Gtk+程序 254
9.3.2 Gtk+的数据类型 255
9.3.3 初始化Gtk+ 256
9.3.4 创建和显示窗口/构件 256
9.3.5 Gtk+的主循环 257
9.4 响应Gtk+的信号 257
9.4.1 完善第一个Gtk+程序 257
9.4.2 事件和信号 259
9.5 构件的基本概念 264
9.5.1 有窗口构件和无窗口构件 264
9.5.2 敏感性 264
9.5.3 焦点、独占和缺省构件 265
9.5.4 构件状态 265
9.6 构件的排列 266
9.6.1 容器构件 266
9.6.2 尺寸分配 266
9.6.3 GtkWindow 267
9.6.4 GtkBox 268
9.6.5 GtkTable 269
9.7 小结 272
9.8 习题 272
第10章 Gtk+构件 273
10.1 基础构件 273
10.1.1 GtkImage 273
10.1.2 GtkButton 274
10.1.3 GtkEntry 275
10.1.4 GtkLabel 278
10.1.5 GtkCheckButton 280
10.1.6 GtkComboBoxText 282
10.1.7 GtkRadioButton 284
10.1.8 GtkScrolledWindow 287
10.1.9 GtkTextView 287
10.1.10 GtkSeparator 291
10.1.11 GtkFrame 291
10.2 菜单 293
10.3 工具栏 299
10.4 树型构件和列表构件 304
10.4.1 模型 304
10.4.2 视图 306
10.5 对话框 313
10.5.1 GtkMessageDialog 313
10.5.2 GtkFileChooserDialog 314
10.5.3 自定义对话框 316
10.6 小结 318
10.7 习题 318
参考文献 320
第1章 Linux基础 1
1.1 概述 1
1.1.1 Linux内核和发行版 1
1.1.2 Linux的发展要素 3
1.2 Linux的安装 5
1.2.1 在虚拟机上安装 5
1.2.2 在实体机上安装 12
1.3 Linux操作环境 12
1.3.1 GNOME简介 12
1.3.2 Linux文件系统 17
1.3.3 Shell 22
1.4 小结 24
1.5 习题 25
第2章 Linux Shell命令操作 26
2.1 获取帮助 26
2.1.1 --help选项 27
2.1.2 man 28
2.1.3 info 29
2.2 通配符、引号、管道和输入输出重定向 29
2.2.1 通配符 29
2.2.2 转义字符 30
2.2.3 引号 30
2.2.4 管道 31
2.2.5 输入、输出重定向 31
2.3 基础操作 33
2.3.1 sudo 33
2.3.2 路径和当前工作目录 33
2.3.3 创建和删除文件 34
2.3.4 创建和删除目录 35
2.3.5 查看用户、日期和输出简单信息 35
2.3.6 命令历史和名称补全 36
2.3.7 ls命令 37
2.3.8 别名 38
2.4 浏览及搜索文件系统 39
2.4.1 find 39
2.4.2 which 40
2.4.3 whereis 40
2.4.4 locate 41
2.5 阅读文本文件 42
2.5.1 cat 42
2.5.2 more和less 42
2.5.3 head和tail 43
2.6 编辑文本文件 43
2.6.1 vi 43
2.6.2 gedit 46
2.7 文件内容操作命令 46
2.7.1 grep 46
2.7.2 sort 48
2.7.3 diff 49
2.7.4 wc 50
2.8 文件的复制、移动、链接和归档 51
2.8.1 cp 51
2.8.2 mv 52
2.8.3 ln 53
2.8.4 tar 53
2.9 文件系统操作 55
2.9.1 挂载——mount 55
2.9.2 卸载——umount 57
2.9.3 查看系统信息 57
2.10 用户管理 58
2.11 文件权限操作 59
2.12 进程相关命令 61
2.12.1 进程和作业 61
2.12.2 查看进程——ps 62
2.12.3 结束进程——kill 64
2.13 网络相关命令 64
2.14 小结 66
2.15 习题 66
第3章 Linux Shell编程 68
3.1 基础知识 68
3.1.1 第一个Shell程序 68
3.1.2 如何运行Shell程序 69
3.1.3 Shell的命令种类 70
3.1.4 Shell执行命令的顺序 71
3.1.5 注释、退出状态和逻辑操作 71
3.1.6 复合命令 72
3.2 Shell变量 73
3.2.1 变量的赋值与引用 73
3.2.2 命令替换 74
3.2.3 变量属性声明 75
3.2.4 数组变量 75
3.2.5 变量引用操作符 77
3.2.6 位置参数和特殊变量 79
3.2.7 read命令 81
3.2.8 export语句 82
3.3 控制结构 83
3.3.1 条件测试 83
3.3.2 if语句 88
3.3.3 case语句 89
3.3.4 while语句 91
3.3.5 until语句 92
3.3.6 for语句 93
3.3.7 break、continue和exit 96
3.4 Shell函数 98
3.5 Shell内部命令 99
3.6 Shell程序调试 101
3.7 小结 103
3.8 习题 103
第4章 Linux C语言编程基础 105
4.1 gcc编译器 105
4.1.1 概述 105
4.1.2 第一个C程序 106
4.1.3 编译选项 107
4.2 Eclipse CDT 111
4.2.1 简介、安装和启动 111
4.2.2 创建项目并运行 112
4.2.3 程序调试方法 116
4.3 C语言基础 118
4.3.1 C语言概述 118
4.3.2 数据类型 119
4.3.3 运算符与表达式 128
4.3.4 C语言的语句 130
4.3.5 控制结构 130
4.3.6 函数 135
4.3.7 内存管理 137
4.3.8 编译预处理 138
4.4 小结 142
4.5 习题 143
第5章 文件 144
5.1 Linux文件I/O概述 144
5.1.1 简介 144
5.1.2 文件和目录 144
5.1.3 文件和设备 145
5.1.4 系统调用和标准函数库 146
5.2 底层文件访问 146
5.2.1 文件描述符 146
5.2.2 文件的创建、打开和关闭 147
5.2.3 文件的读、写 148
5.2.4 文件的定位 150
5.2.5 文件属性的读取 152
5.2.6 文件属性的修改 157
5.3 链接文件的操作 162
5.3.1 创建硬链接 162
5.3.2 创建和读取符号链接 162
5.3.3 删除链接 163
5.4 目录文件的操作 165
5.4.1 目录文件的创建与删除 165
5.4.2 目录文件的打开与关闭 166
5.4.3 目录文件的读取 167
5.5 设备文件 168
5.6 小结 168
5.7 习题 169
第6章 标准I/O库 170
6.1 流和文件指针 170
6.2 缓存 171
6.3 流的打开和关闭 171
6.3.1 打开流 171
6.3.2 关闭流 173
6.4 基于字符和行的I/O 173
6.4.1 字符I/O 173
6.4.2 行I/O 176
6.5 二进制I/O 178
6.5.1 读二进制流 178
6.5.2 写二进制流 179
6.5.3 二进制I/O的常见用法 179
6.6 定位流 181
6.7 格式化I/O 182
6.7.1 格式化输出 182
6.7.2 格式化输入 185
6.8 临时文件 186
6.9 文件流和文件描述符 188
6.10 小结 188
6.11 习题 188
第7章 进程和信号 192
7.1 进程的基本概念 192
7.1.1 什么是进程 192
7.1.2 Linux进程环境 193
7.2 进程的结构 199
7.2.1 进程控制块和进程表 199
7.2.2 进程标识 199
7.2.3 进程的状态 200
7.3 进程控制 202
7.3.1 system函数 202
7.3.2 exec函数 203
7.3.3 fork函数 206
7.3.4 vfork函数 208
7.3.5 进程的终止状态 209
7.3.6 wait和waitpid函数 210
7.4 信号 213
7.4.1 简介 213
7.4.2 捕获信号 214
7.4.3 发送信号 216
7.4.4 信号集 219
7.4.5 sigaction函数 220
7.5 小结 222
7.6 习题 222
第8章 进程间通信 224
8.1 IPC简介 224
8.2 管道 225
8.2.1 pipe函数 225
8.2.2 popen和pcolse函数 227
8.3 命名管道(FIFO) 229
8.4 SysV IPC 232
8.5 信号量 233
8.5.1 简介 233
8.5.2 semget函数 233
8.5.3 semop函数 234
8.5.4 semctl函数 234
8.5.5 信号量的应用 235
8.6 共享内存 238
8.6.1 简介 238
8.6.2 shmget函数 239
8.6.3 shmat和shmdt函数 239
8.6.4 shmctl函数 240
8.6.5 共享内存的应用 240
8.7 消息队列 243
8.7.1 简介 243
8.7.2 msgget函数 244
8.7.3 msgsnd函数 245
8.7.4 msgrcv函数 245
8.7.5 msgctl函数 246
8.7.6 消息队列的应用 246
8.8 小结 248
8.9 习题 249
第9章 Gtk+编程基础 250
9.1 Gtk+简介 250
9.2 glib库 251
9.3 Gtk+程序结构 254
9.3.1 第一个Gtk+程序 254
9.3.2 Gtk+的数据类型 255
9.3.3 初始化Gtk+ 256
9.3.4 创建和显示窗口/构件 256
9.3.5 Gtk+的主循环 257
9.4 响应Gtk+的信号 257
9.4.1 完善第一个Gtk+程序 257
9.4.2 事件和信号 259
9.5 构件的基本概念 264
9.5.1 有窗口构件和无窗口构件 264
9.5.2 敏感性 264
9.5.3 焦点、独占和缺省构件 265
9.5.4 构件状态 265
9.6 构件的排列 266
9.6.1 容器构件 266
9.6.2 尺寸分配 266
9.6.3 GtkWindow 267
9.6.4 GtkBox 268
9.6.5 GtkTable 269
9.7 小结 272
9.8 习题 272
第10章 Gtk+构件 273
10.1 基础构件 273
10.1.1 GtkImage 273
10.1.2 GtkButton 274
10.1.3 GtkEntry 275
10.1.4 GtkLabel 278
10.1.5 GtkCheckButton 280
10.1.6 GtkComboBoxText 282
10.1.7 GtkRadioButton 284
10.1.8 GtkScrolledWindow 287
10.1.9 GtkTextView 287
10.1.10 GtkSeparator 291
10.1.11 GtkFrame 291
10.2 菜单 293
10.3 工具栏 299
10.4 树型构件和列表构件 304
10.4.1 模型 304
10.4.2 视图 306
10.5 对话框 313
10.5.1 GtkMessageDialog 313
10.5.2 GtkFileChooserDialog 314
10.5.3 自定义对话框 316
10.6 小结 318
10.7 习题 318
参考文献 320
Linux programming
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×