简介
书籍
计算机书籍
《21天学通linux c编程(第2版)(含dvd光盘1张)》由浅入深、通俗易懂地讲解了linux系统下的c程序设计。全书共21章,从linux系统安装开始,讲解了linux常用命令、shell编程、c语言基础、指针与函数、c程序网络编程、图形界面程序设计等内容。书中通过大量的实例来讲解知识要点,读者可以通过这些实例和练习系统地学习linux下的c程序设计,从而提高自己的编程能力。
《21天学通linux c编程(第2版)(含dvd光盘1张)》共分七篇。第一篇为linux基础篇,介绍linux编程平台的搭建及文本编辑器的使用;第二篇为shell编程篇,介绍linux下的常用shell命令与shell编程;第三篇为c程序基础篇,介绍c程序设计的基础知识;第四篇为指针与函数篇,重点介绍c语言中指针与函数的概念和用法;第五篇为文件与目录篇,介绍c语言中的文件与目录操作功能;第六篇为网络编程篇,介绍网络编程的基础知识和如何使用c语言进行网络编程;第七篇为图形界面开发篇,介绍基于linux的c程序图形界面开发及glade的使用。
《21天学通linux c编程(第2版)(含dvd光盘1张)》语言通俗易懂,内容丰富,注重理解与实例,知识涵盖面广,非常适合c语言的初学者、高校相关专业学生、程序开发人员、linux工作人员阅读和学习。
《21天学通linux c编程(第2版)(含dvd光盘1张)》附赠dvd光盘1张,内容包括超大容量手把手教学视频、电子教案(ppt)、源代码及各章习题答案。
目录
《21天学通linux c编程(第2版)(含dvd光盘1张)》
第一篇 linux基础篇
第1章 linux编程平台( 教学视频:64分钟) 23
1.1 linux发行版的介绍 23
1.1.1 red hat linux 23
1.1.2 debian linux 23
1.2 安装linux 24
1.2.1 linux的分区格式 24
1.2.2 在windows系统中划分linux分区 24
1.2.3 安装red hat linux 9.0 26
1.2.4 grub在windows分区中引导linux 33
1.3 vmware虚拟机安装linux系统 34
1.3.1 vmware软件安装 34
1.3.2 新建虚拟计算机 36
1.3.3 vmware的使用 39
1.3.4 在vmware虚拟机中安装linux系统 40
1.4 第一个c程序 41
1.4.1 在linux中编写c程序代码 41
1.4.2 编译程序 42
1.5 小结 42
.1.6 习题 43
第2章 使用文本编辑器( 教学视频:39分钟) 44
2.1 使用vim 44
2.1.1 启动vim 44
2.1.2 在桌面上创建vim启动器 45
2.1.3 vim的工作模式 45
2.1.4 保存与打开文件 45
2.1.5 移动光标 46
2.1.6 插入操作 48
2.1.7 删除操作 48
2.1.8 取消操作 49
2.1.9 保存操作 49
2.1.10 退出操作 50
2.1.11 查找操作 50
2.1.12 替换操作 50
2.1.13 选项设置 50
2.1.14 调用shell命令 51
2.2 vim使用实例 51
2.2.1 字符的插入与删除 51
2.2.2 字符的查找与替换 52
2.3 gvim 53
2.3.1 文件的新建与保存 53
2.3.2 查找与替换 53
2.4 gedit 54
2.4.1 gedit的启动与打开文本 54
2.4.2 gedit编辑文件 55
2.4.3 gedit打印文件 56
2.4.4 gedit的首选项 57
2.5 小结 59
2.6 习题 59
第二篇 shell编程篇
第3章 linux常用命令( 教学视频:59分钟) 60
3.1 目录与文件命令 60
3.1.1 查看当前路径命令pwd 60
3.1.2 切换目录命令cd 60
3.1.3 查看目录命令ls 61
3.1.4 建立文件命令touch 62
3.1.5 建立与删除目录命令mkdir、rmdir 63
3.1.6 文件复制命令cp 63
3.1.7 文件移动和更名命令mv 64
3.1.8 删除文件或目录命令rm 64
3.1.9 创建链接命令ln 65
3.1.10 查看文件信息命令wc 65
3.1.11 文件查看命令cat 66
3.1.12 查看文件视图命令head与tail 66
3.1.13 文件权限设置命令chmod 67
3.1.14 查找文件命令find 68
3.2 系统帮助命令man 68
3.2.1 man手册的使用方法 69
3.2.2 帮助文档的结构 69
3.3 小结 70
3.4 习题 70
3.5 面试题 70
第4章 shell编程( 教学视频:122分钟) 72
4.1 bash的使用 72
4.1.1 bash的内部命令与外部命令 72
4.1.2 命令补齐功能 72
4.1.3 命令通配符 73
4.1.4 使用命令的历史记录 73
4.1.5 命令的别名 74
4.2 shell程序的基本结构 74
4.3 局部变量 75
4.4 环境变量 76
4.4.1 查看环境变量 76
4.4.2 访问环境变量 76
4.4.3 定义环境变量 76
4.4.4 在系统配置文件中定义环境变量 77
4.5 位置变量 77
4.6 shell的运算符 78
4.6.1 变量赋值 78
4.6.2 算术运算符 78
4.7 输入和输出 80
4.7.1 echo命令输出结果 80
4.7.2 read命令读取信息 81
4.7.3 文件重定向 82
4.8 引号的使用方法 83
4.8.1 双引号 83
4.8.2 单引号 83
4.8.3 反引号 84
4.8.4 反斜线 84
4.9 测试语句 84
4.9.1 文件状态测试 85
4.9.2 数值测试 85
4.9.3 字符串测试 86
4.9.4 逻辑测试 87
4.10 流程控制结构 87
4.10.1 if语句 87
4.10.2 for语句 88
4.10.3 until语句 89
4.11 综合练习 90
4.11.1 程序的功能 90
4.11.2 编写程序的代码 90
4.12 小结 92
4.13 习题 92
4.14 面试题 92
第三篇 c程序基础篇
第5章 编译与调试( 教学视频:49分钟) 93
5.1 编译的概念和理解 93
5.1.1 程序编译的过程 93
5.1.2 编译器 93
5.2 gcc编译器 94
5.2.1 gcc编译器简介 94
5.2.2 gcc对源程序扩展名的支持 94
5.3 c程序的编译 95
5.3.1 编写第一个c程序 95
5.3.2 用gcc编译程序 96
5.3.3 查看gcc的参数 97
5.3.4 设置输出的文件 98
5.3.5 查看编译过程 98
5.3.6 设置编译的语言 99
5.3.7 设置ansic标准 99
5.3.8 编译c++程序 99
5.4 编译过程的控制 100
5.4.1 编译过程简介 100
5.4.2 控制预处理过程 101
5.4.3 生成汇编代码 101
5.4.4 生成目标代码 102
5.4.5 链接生成可执行文件 103
5.5 gdb调试程序 103
5.5.1 gdb简介 103
5.5.2 在程序中加入调试信息 103
5.5.3 启动gdb 104
5.5.4 加载需要调试的程序 104
5.5.5 查看代码 104
5.5.6 在程序中加入断点 105
5.5.7 查看断点 105
5.5.8 运行程序 105
5.5.9 变量的查看 106
5.6 gdb的帮助信息与常用命令 107
5.6.1 使用gdb的帮助命令 107
5.6.2 gdb常用命令 107
5.7 编译程序常见的错误与问题 108
5.7.1 逻辑错误与语法错误 108
5.7.2 c程序中的错误与异常 108
5.7.3 编译中的警告提示 109
5.7.4 找不到包含文件的错误 109
5.7.5 错误地使用逗号 109
5.7.6 括号不匹配错误 110
5.8 综合练习 110
5.8.1 编写程序 110
5.8.2 编译文件 111
5.8.3 调试程序 111
5.9 小结 113
5.10 习题 113
5.11 面试题 113
第6章 c语言基础( 教学视频:70分钟) 114
6.1 c程序的基本概念 114
6.1.1 c程序的基本结构 114
6.1.2 c程序的一般格式 115
6.1.3 c程序中的注释 116
6.2 数据类型 116
6.2.1 整型(int) 116
6.2.2 浮点型(float) 117
6.2.3 字符型(char) 118
6.2.4 变量名 119
6.2.5 字符null 120
6.3 变量的赋值与输出 120
6.3.1 变量的赋值 120
6.3.2 printf函数输出变量 120
6.3.3 scanf函数从键盘读入变量 122
6.4 运算符 123
6.4.1 算术运算符 123
6.4.2 关系运算符 125
6.4.3 逻辑运算符 125
6.5 综合练习 126
6.6 小结 127
6.7 习题 127
6.8 面试题 127
第7章 c程序的常用语句( 教学视频:87分钟) 128
7.1 流程控制语句 128
7.1.1 if条件语句 128
7.1.2 if语句的嵌套 130
7.1.3 switch选择执行语句 131
7.1.4 for循环语句 133
7.1.5 for循环的嵌套 135
7.1.6 for循环应用实例:输出九九乘法口诀表 136
7.1.7 while循环语句 137
7.1.8 do while循环语句 138
7.1.9 转移控制语句:continue 139
7.1.10 转移控制语句:break 140
7.1.11 转移控制语句:return 141
7.2 两种特殊语句结构 141
7.2.1 三元操作符(?) 141
7.2.2 块语句 142
7.3 综合练习 143
7.4 小结 144
7.5 习题 144
7.6 面试题 144
第四篇 指针与函数篇
第8章 数组与指针( 教学视频:66分钟) 146
8.1 数组的理解与操作 146
8.1.1 什么是数组 146
8.1.2 数组的定义与访问 147
8.1.3 数组使用实例 148
8.2 指针 149
8.2.1 指针的理解 149
8.2.2 指针操作符 149
8.2.3 指针的定义与访问 150
8.2.4 指针使用实例 151
8.3 数组与指针 151
8.3.1 数组与指针的关系 151
8.3.2 指针的算术运算 152
8.3.3 字符数组与字符串 153
8.4 二维数组与多维数组 154
8.4.1 二维数组的理解 154
8.4.2 二维数组与指针 156
8.5 实例 157
8.5.1 学生成绩统计实例 157
8.5.2 冒泡法排序实例 158
8.5.3 统计字符串中的字符 160
8.6 小结 162
8.7 习题 162
8.8 面试题 162
第9章 函数( 教学视频:67分钟) 164
9.1 函数的理解 164
9.1.1 什么是函数 164
9.1.2 库函数与自定义函数 165
9.1.3 函数的返回值 166
9.1.4 无参函数 167
9.1.5 有参函数 167
9.1.6 函数参数实例 168
9.2 自定义函数 169
9.2.1 编写自定义函数 169
9.2.2 函数中调用函数 170
9.2.3 函数的声明 172
9.2.4 递归函数 173
9.2.5 main函数的参数argc与argv 174
9.3 函数与指针 175
9.3.1 值调用与引用调用 175
9.3.2 引用调用与指针 176
9.3.3 指针参数简单实例 177
9.3.4 自定义函数中指针使用实例 178
9.3.5 数组作为参数 179
9.3.6 数组作为函数参数实例 180
9.4 返回值 182
9.4.1 函数返回值的类型 182
9.4.2 函数返回指针 182
9.4.3 函数返回指针实例 183
9.4.4 函数返回结果到参数 184
9.5 综合练习 185
9.6 小结 186
9.7 习题 186
9.8 面试题 186
第10章 字符与字符串处理( 教学视频:66分钟) 188
10.1 字符测试函数 188
10.1.1 数字或字母测试函数isalnum 188
10.1.2 字母测试函数isalpha 189
10.1.3 可打印字符测试函数isgraph 190
10.1.4 测试大小写字母函数islower和isupper 191
10.1.5 测试是否是数字isxdigit 192
10.1.6 测试字符是否为符号函数ispunct 192
10.1.7 其他字符测试函数 193
10.2 字符测试函数综合实例 194
10.3 字符串转换 195
10.3.1 c程序中的字符串 195
10.3.2 字符串转换成浮点型函数atof 196
10.3.3 字符串转换成整型函数atoi 196
10.3.4 字符串转换成长整型函数atol 197
10.3.5 将浮点型转换成字符串函数ecvt 198
10.3.6 字母的大写小转换函数tolower和toupper 199
10.3.7 其他字符串转换函数 200
10.4 字符串比较 201
10.4.1 字符串比较函数bcmp 201
10.4.2 字符串大小比较函数memcmp 202
10.4.3 忽略大小写比较字符串函数strncasecmp 203
10.5 字符串复制 204
10.5.1 字符串复制函数bcopy 204
10.5.2 字符串复制函数memccpy 204
10.5.3 复制字符串函数strcpy 205
10.5.4 字符串复制函数strncpy 206
10.6 字符串的清理与填充 207
10.6.1 字符串清理函数bzero 207
10.6.2 字符串填充函数memset 208
10.7 字符串查找 208
10.7.1 字符查找函数index与rindex 208
10.7.2 字符查找函数memchr 209
10.7.3 字符查找函数strchr与strrchr 210
10.8 字符串的连接与分割 211
10.8.1 字符串连接函数strcat 211
10.8.2 字符串分割函数strtok 211
10.9 综合练习 212
10.10 小结 214
10.11 习题 215
10.12 面试题 215
第11章 结构体( 教学视频:49分钟) 216
11.1 结构体的操作 216
11.1.1 结构体的理解 216
11.1.2 结构体的定义 216
11.1.3 结构体的访问 218
11.1.4 结构体数组 220
11.1.5 结构体使用实例 220
11.2 结构体与指针 223
11.2.1 结构体指针的定义 223
11.2.2 结构体指针的访问 223
11.2.3 结构体作为函数的参数 225
11.2.4 结构体指针作为函数的参数 226
11.2.5 结构体作为函数的返回值 228
11.2.6 结构体指针作为函数的返回值 230
11.3 综合练习 231
11.3.1 程序的需求分析 231
11.3.2 程序中的函数 232
11.3.3 程序中的结构体与全局变量 232
11.3.4 头文件和函数声明 233
11.3.5 定义结构体和全局变量 233
11.3.6 显示学生信息的函数 233
11.3.7 程序的选择菜单 234
11.3.8 学生信息输入函数 235
11.3.9 按姓名查找函数 235
11.3.10 删除学生函数 236
11.3.11 按年龄查找函数 237
11.3.12 按身高查找函数 237
11.3.13 按性别查找函数 238
11.3.14 程序的主函数 238
11.3.15 程序的运行和调试 240
11.4 小结 241
11.5 习题 242
11.6 面试题 242
第12章 时间函数( 教学视频:23分钟) 243
12.1 常用时间函数 243
12.1.1 返回时间函数time 243
12.1.2 取当前时间函数gmtime 244
12.1.3 字符串格式时间函数ctime 246
12.1.4 字符串格式时间函数asctime 247
12.1.5 取得当地时间函数localtime 248
12.1.6 将时间转换成秒数函数mktime 249
12.1.7 取得目前的时间函数gettimeofday 250
12.1.8 设置当前时间函数settimeofday 251
12.2 综合练习 252
12.3 小结 253
12.4 习题 253
12.5 面试题 253
第五篇 文件与目录篇
第13章 目录与文件( 教学视频:115分钟) 255
13.1 文件操作的权限 255
13.2 错误处理与错误号 256
13.2.1 错误定义的理解 256
13.2.2 用错误常数显示错误信息 257
13.2.3 用错误序号显示错误信息 258
13.3 创建与删除目录 258
13.3.1 创建目录函数mkdir 259
13.3.2 删除目录函数rmdir 260
13.4 文件的创建与删除 261
13.4.1 创建文件函数creat 261
13.4.2 删除文件函数remove 262
14.4.3 建立临时文件函数mkstemp 263
13.5 文件的打开与关闭 265
13.5.1 打开文件函数open 265
13.5.2 文件打开方式的设置 265
13.5.3 打开文件的权限 265
13.5.4 文件打开实例 265
13.5.5 关闭文件函数close 267
13.6 文件读写 268
13.6.1 写文件函数write 268
13.6.2 读取文件函数read 270
13.6.3 文件读写位置的移动 271
13.6.4 将缓冲区数据同步到磁盘的函数sync 273
13.6.5 将指定文件的缓冲区数据同步到磁盘的函数fsync 274
13.7 文件锁定 275
13.7.1 文件锁定的理解 276
13.7.2 文件锁定函数flock 276
13.7.3 文件锁定函数fcntl 278
13.7.4 文件锁定函数fcntl使用实例 279
13.8 文件的移动与复制 280
13.8.1 文件的移动函数rename 280
13.8.2 rename函数使用实例 280
13.8.3 文件复制实例 282
13.9 综合练习 283
13.9.1 程序功能分析 283
13.9.2 程序的函数 283
13.9.3 包含文件 284
13.9.4 数据的定义 284
13.9.5 菜单函数 284
13.9.6 显示电话信息函数 286
13.9.7 添加电话号码函数 286
13.9.8 按姓名查找函数 286
13.9.9 删除电话号码函数 287
13.9.10 保存到文件函数 288
13.9.11 从文件导入信息函数 288
13.9.12 主函数 289
13.10 小结 290
13.11 习题 291
13.12 面试题 291
第14章 文件i/o( 教学视频:42分钟) 292
14.1 文件的打开与关闭 292
14.1.1 文件打开函数fopen 292
14.1.2 文件打开函数fdopen 294
14.1.3 打开文件函数freopen 295
14.1.4 关闭文件函数fclose 296
14.2 文件的读写 297
14.2.1 字符写入函数putc与fputc 297
14.2.2 向文件中写入字符串函数fputs 298
14.2.3 数据写入函数fwrite 299
14.3 综合练习 300
14.4 小结 301
14.5 习题 301
14.6 面试题 301
第六篇 网络编程篇
第15章 网络编程( 教学视频:71分钟) 302
15.1 网络编程的基本概念 302
15.1.1 ip地址 302
15.1.2 端口 303
15.1.3 域名 303
15.1.4 tcp与udp 303
15.2 套接字 304
15.2.1 什么是套接字 304
15.2.2 套接字相关的数据类型 304
15.2.3 套接字类型 305
15.3 域名与ip地址 305
15.3.1 用域名取得主机的ip地址 305
15.3.2 用ip地址返回域名 307
15.4 网络协议 308
15.4.1 由协议名取得协议数据 308
15.4.2 由协议编号取得协议信息 310
15.4.3 取得系统支持的所有协议 311
15.5 网络服务 312
15.5.1 取得系统支持的网络服务 312
15.5.2 用名称取得系统所支持的服务 313
15.5.3 由端口取得服务名称 315
15.6 网络地址的转换 316
15.6.1 将网络地址转换成整型 316
15.6.2 将长整型数地址转换成网络地址 317
15.6.3 主机字符顺序与网络字符顺序的转换 318
15.7 错误处理 318
15.7.1 herror函数显示错误 318
15.7.2 捕获错误编号 319
15.8 综合练习 320
15.9 小结 321
15.10 习题 321
15.11 面试题 321
第16章 无连接的套接字通信( 教学视频:22分钟) 322
16.1 socket套接字 322
16.1.1 建立socket 322
16.1.2 取得socket状态 324
16.1.3 设置socket状态 325
16.2 无连接的套接字通信介绍 326
16.2.1 工作流程 327
16.2.2 信息发送函数sendto 327
16.2.3 信息接收函数recvfrom 328
16.3 综合练习 328
16.3.1 无连接套接字通信客户端 328
16.3.2 无连接套接字通信服务器 330
16.3.3 测试udp通信程序 331
16.4 小结 332
16.5 习题 332
16.6 面试题 333
第17章 面向连接的套接字通信( 教学视频:76分钟) 334
17.1 面向连接的套接字通信工作流程 334
17.2 绑定端口 335
17.2.1 绑定端口函数bind 335
17.2.2 bind函数绑定端口实例 336
17.3 监听与连接 337
17.3.1 等待监听函数listen 337
17.3.2 listen函数使用实例 337
17.3.3 接受连接函数accept 339
17.3.4 accept函数使用实例 339
17.3.5 请求连接函数connect 341
17.3.6 connect函数使用实例 341
17.4 数据的发送与接收 343
17.4.1 数据接收函数recv 343
17.4.2 recv函数使用实例 343
17.4.3 信息发送函数send 345
17.4.4 数据传输函数write与read 345
17.4.5 read函数接收数据实例 346
17.5 综合练习 348
17.5.1 服务器程序 348
17.5.2 客户端程序 350
17.5.3 实例程序测试 351
17.6 小结 352
17.7 习题 352
17.8 面试题 353
第七篇 图形界面开发篇
第18章 linux图形界面开发基础( 教学视频:28分钟) 354
18.1 x window系统简介 354
18.1.1 x window的历史 354
18.1.2 x window体系结构 355
18.2 linux桌面环境 355
18.2.1 kde 355
18.2.2 gnome 356
18.3 linux下的图形程序开发环境 357
18.3.1 gtk+简介 357
18.3.2 yum安装gtk 357
18.3.3 用软件包管理器安装gtk 358
18.4 常见问题 359
18.4.1 找不到gtk.h包含文件的错误 359
18.4.2 pkg-config参数有什么作用 359
18.5 综合练习 359
18.5.1 编写程序代码 359
18.5.2 编译程序 360
18.5.3 运行程序 361
18.6 小结 361
18.7 习题 361
18.8 面试题 362
第19章 图形界面编程( 教学视频:35分钟) 363
19.1 窗口 363
19.1.1 最简单的窗口程序 363
19.1.2 窗口的构建过程 364
19.1.3 新建窗口函数gtk_window_new 364
19.1.4 设置窗口的标题 365
19.1.5 设置窗口的大小与位置 366
19.2 标签 367
19.2.1 建立一个标签 367
19.2.2 将标签添加到窗口中 367
19.2.3 设置与获取标签的文本 368
19.3 按钮 369
19.3.1 添加一个按钮 370
19.3.2 取得与设置按钮的标签 371
19.4 文本框 372
19.4.1 建立文本框 372
19.4.2 获取与设置文本框数据 373
19.5 综合练习 374
19.6 小结 375
19.7 习题 375
19.8 面试题 376
第20章 界面布局( 教学视频:67分钟) 377
20.1 表格 377
20.1.1 表格的建立 377
20.1.2 表格中添加元件 378
20.1.3 表格使用实例 379
20.1.4 单元格的合并 380
20.1.5 表格中添加表格 381
20.2 垂直框 383
20.2.1 添加垂直框 383
20.2.2 垂直框中添加元件 384
20.3 水平窗格 385
20.3.1 新建一个窗格 385
20.3.2 窗格中添加元件 387
20.4 glade 388
20.4.1 glade简介 388
20.4.2 使用glade设计程序界面 388
20.4.3 glade设计窗口 389
20.4.4 添加表格 392
20.4.5 添加标签 392
20.4.6 添加文本框 395
20.4.7 添加按钮 396
20.4.8 添加信号与事件 397
20.4.9 glade实例 398
20.5 综合练习 399
20.6 小结 400
20.7 习题 401
20.8 面试题 401
第21章 信号与事件( 教学视频:18分钟) 402
21.1 信号 402
21.1.1 添加信号 402
21.1.2 事件函数的参数 403
21.1.3 在函数中使用全局变量 404
21.2 gtk事件 406
21.3 实例:加法计算器 406
21.3.1 程序功能的分析 406
21.3.2 程序实现 406
21.4 综合练习 408
21.4.1 程序的功能分析 408
21.4.2 程序的功能模块 409
21.4.3 包含头文件与定义全局变量 410
21.4.4 单击按钮输入函数 410
21.4.5 加法运算函数 410
21.4.6 减法运算函数 411
21.4.7 乘法运算函数 412
21.4.8 除法运算函数 412
21.4.9 输入小数点函数 413
21.4.10 清除数据函数 413
21.4.11 界面构建函数 413
21.4.12 添加事件函数 415
21.4.13 主函数 416
21.4.14 程序的编译和运行 416
21.5 小结 417
21.6 习题 417
21.7 面试题 417
第一篇 linux基础篇
第1章 linux编程平台( 教学视频:64分钟) 23
1.1 linux发行版的介绍 23
1.1.1 red hat linux 23
1.1.2 debian linux 23
1.2 安装linux 24
1.2.1 linux的分区格式 24
1.2.2 在windows系统中划分linux分区 24
1.2.3 安装red hat linux 9.0 26
1.2.4 grub在windows分区中引导linux 33
1.3 vmware虚拟机安装linux系统 34
1.3.1 vmware软件安装 34
1.3.2 新建虚拟计算机 36
1.3.3 vmware的使用 39
1.3.4 在vmware虚拟机中安装linux系统 40
1.4 第一个c程序 41
1.4.1 在linux中编写c程序代码 41
1.4.2 编译程序 42
1.5 小结 42
.1.6 习题 43
第2章 使用文本编辑器( 教学视频:39分钟) 44
2.1 使用vim 44
2.1.1 启动vim 44
2.1.2 在桌面上创建vim启动器 45
2.1.3 vim的工作模式 45
2.1.4 保存与打开文件 45
2.1.5 移动光标 46
2.1.6 插入操作 48
2.1.7 删除操作 48
2.1.8 取消操作 49
2.1.9 保存操作 49
2.1.10 退出操作 50
2.1.11 查找操作 50
2.1.12 替换操作 50
2.1.13 选项设置 50
2.1.14 调用shell命令 51
2.2 vim使用实例 51
2.2.1 字符的插入与删除 51
2.2.2 字符的查找与替换 52
2.3 gvim 53
2.3.1 文件的新建与保存 53
2.3.2 查找与替换 53
2.4 gedit 54
2.4.1 gedit的启动与打开文本 54
2.4.2 gedit编辑文件 55
2.4.3 gedit打印文件 56
2.4.4 gedit的首选项 57
2.5 小结 59
2.6 习题 59
第二篇 shell编程篇
第3章 linux常用命令( 教学视频:59分钟) 60
3.1 目录与文件命令 60
3.1.1 查看当前路径命令pwd 60
3.1.2 切换目录命令cd 60
3.1.3 查看目录命令ls 61
3.1.4 建立文件命令touch 62
3.1.5 建立与删除目录命令mkdir、rmdir 63
3.1.6 文件复制命令cp 63
3.1.7 文件移动和更名命令mv 64
3.1.8 删除文件或目录命令rm 64
3.1.9 创建链接命令ln 65
3.1.10 查看文件信息命令wc 65
3.1.11 文件查看命令cat 66
3.1.12 查看文件视图命令head与tail 66
3.1.13 文件权限设置命令chmod 67
3.1.14 查找文件命令find 68
3.2 系统帮助命令man 68
3.2.1 man手册的使用方法 69
3.2.2 帮助文档的结构 69
3.3 小结 70
3.4 习题 70
3.5 面试题 70
第4章 shell编程( 教学视频:122分钟) 72
4.1 bash的使用 72
4.1.1 bash的内部命令与外部命令 72
4.1.2 命令补齐功能 72
4.1.3 命令通配符 73
4.1.4 使用命令的历史记录 73
4.1.5 命令的别名 74
4.2 shell程序的基本结构 74
4.3 局部变量 75
4.4 环境变量 76
4.4.1 查看环境变量 76
4.4.2 访问环境变量 76
4.4.3 定义环境变量 76
4.4.4 在系统配置文件中定义环境变量 77
4.5 位置变量 77
4.6 shell的运算符 78
4.6.1 变量赋值 78
4.6.2 算术运算符 78
4.7 输入和输出 80
4.7.1 echo命令输出结果 80
4.7.2 read命令读取信息 81
4.7.3 文件重定向 82
4.8 引号的使用方法 83
4.8.1 双引号 83
4.8.2 单引号 83
4.8.3 反引号 84
4.8.4 反斜线 84
4.9 测试语句 84
4.9.1 文件状态测试 85
4.9.2 数值测试 85
4.9.3 字符串测试 86
4.9.4 逻辑测试 87
4.10 流程控制结构 87
4.10.1 if语句 87
4.10.2 for语句 88
4.10.3 until语句 89
4.11 综合练习 90
4.11.1 程序的功能 90
4.11.2 编写程序的代码 90
4.12 小结 92
4.13 习题 92
4.14 面试题 92
第三篇 c程序基础篇
第5章 编译与调试( 教学视频:49分钟) 93
5.1 编译的概念和理解 93
5.1.1 程序编译的过程 93
5.1.2 编译器 93
5.2 gcc编译器 94
5.2.1 gcc编译器简介 94
5.2.2 gcc对源程序扩展名的支持 94
5.3 c程序的编译 95
5.3.1 编写第一个c程序 95
5.3.2 用gcc编译程序 96
5.3.3 查看gcc的参数 97
5.3.4 设置输出的文件 98
5.3.5 查看编译过程 98
5.3.6 设置编译的语言 99
5.3.7 设置ansic标准 99
5.3.8 编译c++程序 99
5.4 编译过程的控制 100
5.4.1 编译过程简介 100
5.4.2 控制预处理过程 101
5.4.3 生成汇编代码 101
5.4.4 生成目标代码 102
5.4.5 链接生成可执行文件 103
5.5 gdb调试程序 103
5.5.1 gdb简介 103
5.5.2 在程序中加入调试信息 103
5.5.3 启动gdb 104
5.5.4 加载需要调试的程序 104
5.5.5 查看代码 104
5.5.6 在程序中加入断点 105
5.5.7 查看断点 105
5.5.8 运行程序 105
5.5.9 变量的查看 106
5.6 gdb的帮助信息与常用命令 107
5.6.1 使用gdb的帮助命令 107
5.6.2 gdb常用命令 107
5.7 编译程序常见的错误与问题 108
5.7.1 逻辑错误与语法错误 108
5.7.2 c程序中的错误与异常 108
5.7.3 编译中的警告提示 109
5.7.4 找不到包含文件的错误 109
5.7.5 错误地使用逗号 109
5.7.6 括号不匹配错误 110
5.8 综合练习 110
5.8.1 编写程序 110
5.8.2 编译文件 111
5.8.3 调试程序 111
5.9 小结 113
5.10 习题 113
5.11 面试题 113
第6章 c语言基础( 教学视频:70分钟) 114
6.1 c程序的基本概念 114
6.1.1 c程序的基本结构 114
6.1.2 c程序的一般格式 115
6.1.3 c程序中的注释 116
6.2 数据类型 116
6.2.1 整型(int) 116
6.2.2 浮点型(float) 117
6.2.3 字符型(char) 118
6.2.4 变量名 119
6.2.5 字符null 120
6.3 变量的赋值与输出 120
6.3.1 变量的赋值 120
6.3.2 printf函数输出变量 120
6.3.3 scanf函数从键盘读入变量 122
6.4 运算符 123
6.4.1 算术运算符 123
6.4.2 关系运算符 125
6.4.3 逻辑运算符 125
6.5 综合练习 126
6.6 小结 127
6.7 习题 127
6.8 面试题 127
第7章 c程序的常用语句( 教学视频:87分钟) 128
7.1 流程控制语句 128
7.1.1 if条件语句 128
7.1.2 if语句的嵌套 130
7.1.3 switch选择执行语句 131
7.1.4 for循环语句 133
7.1.5 for循环的嵌套 135
7.1.6 for循环应用实例:输出九九乘法口诀表 136
7.1.7 while循环语句 137
7.1.8 do while循环语句 138
7.1.9 转移控制语句:continue 139
7.1.10 转移控制语句:break 140
7.1.11 转移控制语句:return 141
7.2 两种特殊语句结构 141
7.2.1 三元操作符(?) 141
7.2.2 块语句 142
7.3 综合练习 143
7.4 小结 144
7.5 习题 144
7.6 面试题 144
第四篇 指针与函数篇
第8章 数组与指针( 教学视频:66分钟) 146
8.1 数组的理解与操作 146
8.1.1 什么是数组 146
8.1.2 数组的定义与访问 147
8.1.3 数组使用实例 148
8.2 指针 149
8.2.1 指针的理解 149
8.2.2 指针操作符 149
8.2.3 指针的定义与访问 150
8.2.4 指针使用实例 151
8.3 数组与指针 151
8.3.1 数组与指针的关系 151
8.3.2 指针的算术运算 152
8.3.3 字符数组与字符串 153
8.4 二维数组与多维数组 154
8.4.1 二维数组的理解 154
8.4.2 二维数组与指针 156
8.5 实例 157
8.5.1 学生成绩统计实例 157
8.5.2 冒泡法排序实例 158
8.5.3 统计字符串中的字符 160
8.6 小结 162
8.7 习题 162
8.8 面试题 162
第9章 函数( 教学视频:67分钟) 164
9.1 函数的理解 164
9.1.1 什么是函数 164
9.1.2 库函数与自定义函数 165
9.1.3 函数的返回值 166
9.1.4 无参函数 167
9.1.5 有参函数 167
9.1.6 函数参数实例 168
9.2 自定义函数 169
9.2.1 编写自定义函数 169
9.2.2 函数中调用函数 170
9.2.3 函数的声明 172
9.2.4 递归函数 173
9.2.5 main函数的参数argc与argv 174
9.3 函数与指针 175
9.3.1 值调用与引用调用 175
9.3.2 引用调用与指针 176
9.3.3 指针参数简单实例 177
9.3.4 自定义函数中指针使用实例 178
9.3.5 数组作为参数 179
9.3.6 数组作为函数参数实例 180
9.4 返回值 182
9.4.1 函数返回值的类型 182
9.4.2 函数返回指针 182
9.4.3 函数返回指针实例 183
9.4.4 函数返回结果到参数 184
9.5 综合练习 185
9.6 小结 186
9.7 习题 186
9.8 面试题 186
第10章 字符与字符串处理( 教学视频:66分钟) 188
10.1 字符测试函数 188
10.1.1 数字或字母测试函数isalnum 188
10.1.2 字母测试函数isalpha 189
10.1.3 可打印字符测试函数isgraph 190
10.1.4 测试大小写字母函数islower和isupper 191
10.1.5 测试是否是数字isxdigit 192
10.1.6 测试字符是否为符号函数ispunct 192
10.1.7 其他字符测试函数 193
10.2 字符测试函数综合实例 194
10.3 字符串转换 195
10.3.1 c程序中的字符串 195
10.3.2 字符串转换成浮点型函数atof 196
10.3.3 字符串转换成整型函数atoi 196
10.3.4 字符串转换成长整型函数atol 197
10.3.5 将浮点型转换成字符串函数ecvt 198
10.3.6 字母的大写小转换函数tolower和toupper 199
10.3.7 其他字符串转换函数 200
10.4 字符串比较 201
10.4.1 字符串比较函数bcmp 201
10.4.2 字符串大小比较函数memcmp 202
10.4.3 忽略大小写比较字符串函数strncasecmp 203
10.5 字符串复制 204
10.5.1 字符串复制函数bcopy 204
10.5.2 字符串复制函数memccpy 204
10.5.3 复制字符串函数strcpy 205
10.5.4 字符串复制函数strncpy 206
10.6 字符串的清理与填充 207
10.6.1 字符串清理函数bzero 207
10.6.2 字符串填充函数memset 208
10.7 字符串查找 208
10.7.1 字符查找函数index与rindex 208
10.7.2 字符查找函数memchr 209
10.7.3 字符查找函数strchr与strrchr 210
10.8 字符串的连接与分割 211
10.8.1 字符串连接函数strcat 211
10.8.2 字符串分割函数strtok 211
10.9 综合练习 212
10.10 小结 214
10.11 习题 215
10.12 面试题 215
第11章 结构体( 教学视频:49分钟) 216
11.1 结构体的操作 216
11.1.1 结构体的理解 216
11.1.2 结构体的定义 216
11.1.3 结构体的访问 218
11.1.4 结构体数组 220
11.1.5 结构体使用实例 220
11.2 结构体与指针 223
11.2.1 结构体指针的定义 223
11.2.2 结构体指针的访问 223
11.2.3 结构体作为函数的参数 225
11.2.4 结构体指针作为函数的参数 226
11.2.5 结构体作为函数的返回值 228
11.2.6 结构体指针作为函数的返回值 230
11.3 综合练习 231
11.3.1 程序的需求分析 231
11.3.2 程序中的函数 232
11.3.3 程序中的结构体与全局变量 232
11.3.4 头文件和函数声明 233
11.3.5 定义结构体和全局变量 233
11.3.6 显示学生信息的函数 233
11.3.7 程序的选择菜单 234
11.3.8 学生信息输入函数 235
11.3.9 按姓名查找函数 235
11.3.10 删除学生函数 236
11.3.11 按年龄查找函数 237
11.3.12 按身高查找函数 237
11.3.13 按性别查找函数 238
11.3.14 程序的主函数 238
11.3.15 程序的运行和调试 240
11.4 小结 241
11.5 习题 242
11.6 面试题 242
第12章 时间函数( 教学视频:23分钟) 243
12.1 常用时间函数 243
12.1.1 返回时间函数time 243
12.1.2 取当前时间函数gmtime 244
12.1.3 字符串格式时间函数ctime 246
12.1.4 字符串格式时间函数asctime 247
12.1.5 取得当地时间函数localtime 248
12.1.6 将时间转换成秒数函数mktime 249
12.1.7 取得目前的时间函数gettimeofday 250
12.1.8 设置当前时间函数settimeofday 251
12.2 综合练习 252
12.3 小结 253
12.4 习题 253
12.5 面试题 253
第五篇 文件与目录篇
第13章 目录与文件( 教学视频:115分钟) 255
13.1 文件操作的权限 255
13.2 错误处理与错误号 256
13.2.1 错误定义的理解 256
13.2.2 用错误常数显示错误信息 257
13.2.3 用错误序号显示错误信息 258
13.3 创建与删除目录 258
13.3.1 创建目录函数mkdir 259
13.3.2 删除目录函数rmdir 260
13.4 文件的创建与删除 261
13.4.1 创建文件函数creat 261
13.4.2 删除文件函数remove 262
14.4.3 建立临时文件函数mkstemp 263
13.5 文件的打开与关闭 265
13.5.1 打开文件函数open 265
13.5.2 文件打开方式的设置 265
13.5.3 打开文件的权限 265
13.5.4 文件打开实例 265
13.5.5 关闭文件函数close 267
13.6 文件读写 268
13.6.1 写文件函数write 268
13.6.2 读取文件函数read 270
13.6.3 文件读写位置的移动 271
13.6.4 将缓冲区数据同步到磁盘的函数sync 273
13.6.5 将指定文件的缓冲区数据同步到磁盘的函数fsync 274
13.7 文件锁定 275
13.7.1 文件锁定的理解 276
13.7.2 文件锁定函数flock 276
13.7.3 文件锁定函数fcntl 278
13.7.4 文件锁定函数fcntl使用实例 279
13.8 文件的移动与复制 280
13.8.1 文件的移动函数rename 280
13.8.2 rename函数使用实例 280
13.8.3 文件复制实例 282
13.9 综合练习 283
13.9.1 程序功能分析 283
13.9.2 程序的函数 283
13.9.3 包含文件 284
13.9.4 数据的定义 284
13.9.5 菜单函数 284
13.9.6 显示电话信息函数 286
13.9.7 添加电话号码函数 286
13.9.8 按姓名查找函数 286
13.9.9 删除电话号码函数 287
13.9.10 保存到文件函数 288
13.9.11 从文件导入信息函数 288
13.9.12 主函数 289
13.10 小结 290
13.11 习题 291
13.12 面试题 291
第14章 文件i/o( 教学视频:42分钟) 292
14.1 文件的打开与关闭 292
14.1.1 文件打开函数fopen 292
14.1.2 文件打开函数fdopen 294
14.1.3 打开文件函数freopen 295
14.1.4 关闭文件函数fclose 296
14.2 文件的读写 297
14.2.1 字符写入函数putc与fputc 297
14.2.2 向文件中写入字符串函数fputs 298
14.2.3 数据写入函数fwrite 299
14.3 综合练习 300
14.4 小结 301
14.5 习题 301
14.6 面试题 301
第六篇 网络编程篇
第15章 网络编程( 教学视频:71分钟) 302
15.1 网络编程的基本概念 302
15.1.1 ip地址 302
15.1.2 端口 303
15.1.3 域名 303
15.1.4 tcp与udp 303
15.2 套接字 304
15.2.1 什么是套接字 304
15.2.2 套接字相关的数据类型 304
15.2.3 套接字类型 305
15.3 域名与ip地址 305
15.3.1 用域名取得主机的ip地址 305
15.3.2 用ip地址返回域名 307
15.4 网络协议 308
15.4.1 由协议名取得协议数据 308
15.4.2 由协议编号取得协议信息 310
15.4.3 取得系统支持的所有协议 311
15.5 网络服务 312
15.5.1 取得系统支持的网络服务 312
15.5.2 用名称取得系统所支持的服务 313
15.5.3 由端口取得服务名称 315
15.6 网络地址的转换 316
15.6.1 将网络地址转换成整型 316
15.6.2 将长整型数地址转换成网络地址 317
15.6.3 主机字符顺序与网络字符顺序的转换 318
15.7 错误处理 318
15.7.1 herror函数显示错误 318
15.7.2 捕获错误编号 319
15.8 综合练习 320
15.9 小结 321
15.10 习题 321
15.11 面试题 321
第16章 无连接的套接字通信( 教学视频:22分钟) 322
16.1 socket套接字 322
16.1.1 建立socket 322
16.1.2 取得socket状态 324
16.1.3 设置socket状态 325
16.2 无连接的套接字通信介绍 326
16.2.1 工作流程 327
16.2.2 信息发送函数sendto 327
16.2.3 信息接收函数recvfrom 328
16.3 综合练习 328
16.3.1 无连接套接字通信客户端 328
16.3.2 无连接套接字通信服务器 330
16.3.3 测试udp通信程序 331
16.4 小结 332
16.5 习题 332
16.6 面试题 333
第17章 面向连接的套接字通信( 教学视频:76分钟) 334
17.1 面向连接的套接字通信工作流程 334
17.2 绑定端口 335
17.2.1 绑定端口函数bind 335
17.2.2 bind函数绑定端口实例 336
17.3 监听与连接 337
17.3.1 等待监听函数listen 337
17.3.2 listen函数使用实例 337
17.3.3 接受连接函数accept 339
17.3.4 accept函数使用实例 339
17.3.5 请求连接函数connect 341
17.3.6 connect函数使用实例 341
17.4 数据的发送与接收 343
17.4.1 数据接收函数recv 343
17.4.2 recv函数使用实例 343
17.4.3 信息发送函数send 345
17.4.4 数据传输函数write与read 345
17.4.5 read函数接收数据实例 346
17.5 综合练习 348
17.5.1 服务器程序 348
17.5.2 客户端程序 350
17.5.3 实例程序测试 351
17.6 小结 352
17.7 习题 352
17.8 面试题 353
第七篇 图形界面开发篇
第18章 linux图形界面开发基础( 教学视频:28分钟) 354
18.1 x window系统简介 354
18.1.1 x window的历史 354
18.1.2 x window体系结构 355
18.2 linux桌面环境 355
18.2.1 kde 355
18.2.2 gnome 356
18.3 linux下的图形程序开发环境 357
18.3.1 gtk+简介 357
18.3.2 yum安装gtk 357
18.3.3 用软件包管理器安装gtk 358
18.4 常见问题 359
18.4.1 找不到gtk.h包含文件的错误 359
18.4.2 pkg-config参数有什么作用 359
18.5 综合练习 359
18.5.1 编写程序代码 359
18.5.2 编译程序 360
18.5.3 运行程序 361
18.6 小结 361
18.7 习题 361
18.8 面试题 362
第19章 图形界面编程( 教学视频:35分钟) 363
19.1 窗口 363
19.1.1 最简单的窗口程序 363
19.1.2 窗口的构建过程 364
19.1.3 新建窗口函数gtk_window_new 364
19.1.4 设置窗口的标题 365
19.1.5 设置窗口的大小与位置 366
19.2 标签 367
19.2.1 建立一个标签 367
19.2.2 将标签添加到窗口中 367
19.2.3 设置与获取标签的文本 368
19.3 按钮 369
19.3.1 添加一个按钮 370
19.3.2 取得与设置按钮的标签 371
19.4 文本框 372
19.4.1 建立文本框 372
19.4.2 获取与设置文本框数据 373
19.5 综合练习 374
19.6 小结 375
19.7 习题 375
19.8 面试题 376
第20章 界面布局( 教学视频:67分钟) 377
20.1 表格 377
20.1.1 表格的建立 377
20.1.2 表格中添加元件 378
20.1.3 表格使用实例 379
20.1.4 单元格的合并 380
20.1.5 表格中添加表格 381
20.2 垂直框 383
20.2.1 添加垂直框 383
20.2.2 垂直框中添加元件 384
20.3 水平窗格 385
20.3.1 新建一个窗格 385
20.3.2 窗格中添加元件 387
20.4 glade 388
20.4.1 glade简介 388
20.4.2 使用glade设计程序界面 388
20.4.3 glade设计窗口 389
20.4.4 添加表格 392
20.4.5 添加标签 392
20.4.6 添加文本框 395
20.4.7 添加按钮 396
20.4.8 添加信号与事件 397
20.4.9 glade实例 398
20.5 综合练习 399
20.6 小结 400
20.7 习题 401
20.8 面试题 401
第21章 信号与事件( 教学视频:18分钟) 402
21.1 信号 402
21.1.1 添加信号 402
21.1.2 事件函数的参数 403
21.1.3 在函数中使用全局变量 404
21.2 gtk事件 406
21.3 实例:加法计算器 406
21.3.1 程序功能的分析 406
21.3.2 程序实现 406
21.4 综合练习 408
21.4.1 程序的功能分析 408
21.4.2 程序的功能模块 409
21.4.3 包含头文件与定义全局变量 410
21.4.4 单击按钮输入函数 410
21.4.5 加法运算函数 410
21.4.6 减法运算函数 411
21.4.7 乘法运算函数 412
21.4.8 除法运算函数 412
21.4.9 输入小数点函数 413
21.4.10 清除数据函数 413
21.4.11 界面构建函数 413
21.4.12 添加事件函数 415
21.4.13 主函数 416
21.4.14 程序的编译和运行 416
21.5 小结 417
21.6 习题 417
21.7 面试题 417
21天学通Linux C编程
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!