图书目录

第1篇  基  础  篇

第1章  Linux简介以及Shell编程基础( 教学视频:140分钟) 2

1.1  Linux系统概述 2

1.1.1  Linux发展简史 2

1.1.2  Linux系统组成 3

1.1.3  使用Linux的优势 4

1.1.4  Linux的应用领域 4

1.1.5  Linux发行版的种类 5

1.2  图形化界面操作 5

1.2.1  系统登录、注销与关闭系统 6

1.2.2  系统管理 6

1.2.3  操作文件与目录 7

1.3  命令行界面操作 8

1.3.1  系统登录与退出 8

1.3.2  操作文件与目录 9

1.3.3  压缩与解压缩文件 20

1.3.4  常用网络操作 22

1.3.5  用户管理和操作 24

1.3.6  系统管理常见操作 25

1.4  Shell脚本编程基础 30

1.4.1  创建Shell脚本 30

1.4.2  Shell中的特殊字符 31

1.4.3  使用Shell变量 32

1.4.4  条件测试 34

1.4.5  Shell中的结构控制语句 35

1.4.6  定义Shell函数 40

1.5  小结 41

1.6  本章习题 41

第2章  C语言基础( 教学视频:90分钟) 42

2.1  C语言概述 42

2.1.1  C语言的四大特点 42

2.1.2  程序的基本结构 42

2.1.3  程序的开发流程 43

2.2  C语言数据处理 44

2.2.1  数据的表达方式——数据类型 44

2.2.2  常用运算符 46

2.2.3  程序的基础——表达式 48

2.3  语句类型 49

2.3.1  表达式语句 49

2.3.2  选择语句if/switch 49

2.3.3  循环语句for/while/do...while 52

2.3.4  跳转语句goto/continue/break 55

2.3.5  复合语句和空语句 57

2.4  数据的集合--数组 57

2.4.1  使用一维数组 58

2.4.2  使用二维数组和多维数组 59

2.4.3  字符数组和字符串 61

2.5  C语言的预处理 62

2.5.1  宏定义define 62

2.5.2  文件包含include 64

2.5.3  条件编译 65

2.6  小结 66

2.7  本章习题 67

第3章  深入C语言( 教学视频:89分钟) 68

3.1  保存地址值的变量--指针 68

3.1.1  使用指针 68

3.1.2  指针和数组的互换 72

3.1.3  指针的集合——指针数组 74

3.2  函数 76

3.2.1  定义与声明函数 76

3.2.2  调用函数与参数传递 77

3.2.3  变量在函数中的作用域 78

3.2.4  变量的存储类型 80

3.2.5  外部函数和内部函数 82

3.2.6  函数的递归 83

3.2.7  使用函数指针 85

3.3  结构体、共用体和枚举 86

3.3.1  不同类型数据的集合——结构体 86

3.3.2  共用同一内存的数据集合——共用体 91

3.3.3  罗列数据的集合——枚举 92

3.4  小结 94

3.5  本章习题 94

第4章  文本编辑器( 教学视频:80分钟) 95

4.1  使用VI编辑器 95

4.1.1  启动VI 95

4.1.2  切换VI的工作模式 96

4.1.3  保存文件和退出 98

4.1.4  移动光标 99

4.1.5  滚动屏幕 101

4.1.6  输入、删除与修改文本 103

4.1.7  复制与粘贴文本 106

4.1.8  查找与替换文本 108

4.1.9  其他功能 111

4.2  VI高效编辑程序技巧 112

4.2.1  在程序中跳转 112

4.2.2  补全关键字 113

4.2.3  缩进源代码 113

4.3  使用Emacs编辑器 115

4.3.1  启动/退出Emacs 115

4.3.2  打开与保存文件 116

4.3.3  移动光标与滚动屏幕 117

4.3.4  编辑文本 118

4.3.5  查找与替换文本 118

4.3.6  切分窗口 119

4.3.7  使用帮助功能 120

4.4  小结 120

4.5  本章习题 120

第5章  使用GCC编译器( 教学视频:46分钟) 122

5.1  安装GCC 122

5.2  GCC常用选项 122

5.2.1  编译程序 122

5.2.2  设置警告信息 125

5.2.3  设置优化级别 128

5.2.4  设置连接器 129

5.2.5  其他功能选项 132

5.3  小结 133

5.4  本章习题 133

第6章  调试工具( 教学视频:54分钟) 134

6.1  安装GDB 134

6.2  使用GDB 134

6.2.1  启动/退出GDB 134

6.2.2  载入程序 135

6.2.3  列出源代码 135

6.2.4  执行程序 136

6.2.5  使用帮助功能 137

6.3  设置断点与管理断点 138

6.3.1  设置断点 138

6.3.2  查看断点信息 139

6.3.3  删除断点 139

6.3.4  删除指定行上的断点 140

6.3.5  禁用指定的断点 140

6.3.6  设置观察点 140

6.4  显示数据与修改变量值 141

6.4.1  准备示例程序 141

6.4.2  显示变量或表达式的值 142

6.4.3  自动显示变量或表达式的值 143

6.4.4  查看变量的数据类型 144

6.4.5  修改变量的值 144

6.5  执行命令和调用函数 145

6.5.1  单步执行 145

6.5.2  退出被调用的函数 145

6.5.3  执行到指定行 146

6.5.4  跳转执行 146

6.5.5  强制调用函数 147

6.6  其他常用操作 147

6.6.1  查看堆栈信息 147

6.6.2  查看源程序信息 148

6.6.3  查看寄存器 148

6.6.4  查看程序的汇编代码 148

6.7  小结 149

6.8  本章习题 149

第7章  Linux C基本应用( 教学视频:75分钟) 151

7.1  字符串的操作 151

7.1.1  字符判断 151

7.1.2  初始化字符串 153

7.1.3  复制字符串 153

7.1.4  比较字符串 155

7.1.5  查找字符/字符串 157

7.1.6  连接与分割字符串 158

7.2  数据转换 160

7.2.1  字母大小写转换 160

7.2.2  转换字符串 161

7.3  分配与释放内存 163

7.3.1  分配内存 163

7.3.2  释放内存 164

7.3.3  更改已分配内存的大小 165

7.4  时间和日期 165

7.4.1  获取时间和日期 165

7.4.2  时间和日期的格式转换 167

7.4.3  计算时间差 169

7.5  其他应用 169

7.5.1  命令行参数分析 170

7.5.2  获取用户和用户组信息 172

7.5.3  环境变量操作 175

7.6  小结 177

7.7  本章习题 177

第2篇  应  用  篇

第8章  文件系统编程( 教学视频:52分钟) 180

8.1  Linux文件系统简介 180

8.2  使用文件 180

8.2.1  创建或打开文件 180

8.2.2  关闭文件 184

8.2.3  读写文件 184

8.2.4  其他文件操作函数 188

8.3  文件属性操作 190

8.3.1  获取文件属性 190

8.3.2  设置文件属性 194

8.4  目录操作 195

8.4.1  创建目录文件 196

8.4.2  打开和关闭目录 197

8.4.3  读取目录 197

8.4.4  获取和更改当前工作目录 198

8.5  小结 199

8.6  本章习题 199

第9章  标准输入输出( 教学视频:45分钟) 201

9.1  标准输入输出的基本操作 201

9.1.1  打开文件 201

9.1.2  关闭文件 202

9.1.3  清空缓冲区 202

9.1.4  设置缓冲区属性 203

9.2  非格式化输入输出 203

9.2.1  单字节输入输出 204

9.2.2  字符串输入输出 207

9.2.3  数据块输入输出 209

9.3  格式化输入输出 212

9.4  小结 217

9.5  本章习题 217

第10章  进程操作( 教学视频:69分钟) 219

10.1  进程的概念 219

10.1.1  进程的组成 219

10.1.2  进程的状态 220

10.2  Linux进程信息的组成 221

10.2.1  Linux进程的状态 221

10.2.2  进程调度信息 222

10.2.3  进程的标识符 222

10.2.4  进程间通信 223

10.2.5  进程链接信息 223

10.2.6  进程的时间和定时器信息 223

10.2.7  进程的文件系统信息 224

10.2.8  进程的其他信息 224

10.3  Linux C之进程控制 225

10.3.1  使用system()函数创建进程 225

10.3.2  使用管道创建新进程 226

10.3.3  获取进程信息 227

10.3.4  使用fork()函数复制进程 229

10.3.5  使用vfork()和exec()函数创建进程 233

10.3.6  终止进程 236

10.4  守护进程 238

10.4.1  创建守护进程 238

10.4.2  守护进程的输出 241

10.5  小结 243

10.6  本章习题 243

第11章  进程间通信( 教学视频:82分钟) 244

11.1  管道 244

11.1.1  管道如何工作 244

11.1.2  使用匿名管道 244

11.1.3  使用命名管道 248

11.2  信号 252

11.2.1  信号如何工作 252

11.2.2  信号的类型 253

11.2.3  处理信号 254

11.2.4  发送信号 257

11.2.5  使用信号集 261

11.3  消息队列 262

11.3.1  创建或打开消息队列 262

11.3.2  控制消息队列 264

11.3.3  读/写消息队列 265

11.4  信号量 269

11.4.1  创建或打开信号量集 269

11.4.2  控制信号量 270

11.4.3  操作信号量 271

11.5  共享内存 273

11.5.1  创建或打开共享内存 273

11.5.2  读/写共享内存 275

11.6  小结 277

11.7  本章习题 277

第12章  多线程编程( 教学视频:40分钟) 279

12.1  什么是线程 279

12.2  线程的基本操作 280

12.2.1  创建线程 280

12.2.2  合并线程 281

12.2.3  终止线程 282

12.2.4  线程属性 287

12.3  线程的同步 290

12.3.1  使用互斥量 290

12.3.2  使用条件变量 292

12.3.3  使用信号量 295

12.4  小结 297

12.5  本章习题 297

第13章  网络编程( 教学视频:56分钟) 299

13.1  计算机网络基础知识 299

13.1.1  什么是OSI参考模型 299

13.1.2  什么是TCP/IP协议栈 300

13.2  套接字编程基础 301

13.2.1  套接字编程原理 301

13.2.2  创建套接字 302

13.2.3  绑定套接字 303

13.2.4  监听网络端口 304

13.2.5  接收连接请求 305

13.2.6  建立连接 305

13.2.7  面向连接的数据传输 305

13.2.8  面向无连接的数据传输 306

13.2.9  关闭套接字 306

13.3  数据流套接字实例 307

13.3.1  构建服务器端 307

13.3.2  构建客户端 308

13.3.3  调试程序 310

13.4  数据报套接字实例 310

13.4.1  构建服务器端 310

13.4.2  构建客户端 311

13.4.3  调试程序 312

13.5  服务器模型 313

13.5.1  循环服务器 313

13.5.2  并发服务器 314

13.5.3  多路复用I/O并发服务器 316

13.6  域名系统 318

13.6.1  通过域名获取主机信息 318

13.6.2  通过地址获取主机信息 319

13.6.3  获取本地主机信息 320

13.7  小结 320

13.8  本章习题 320

第14章  Linux GUI编程( 教学视频:68分钟) 321

14.1  GTK+/Gnome开发简介 321

14.1.1  第一个GTK+应用程序 321

14.1.2  信号连接回调函数 323

14.2  常用GTK+构件 325

14.2.1  使用容器构件 325

14.2.2  使用按钮构件 329

14.2.3  使用标签构件 332

14.2.4  使用文本及文本输入构件 333

14.2.5  使用进度条构件 337

14.2.6  使用组合框 340

14.2.7  使用对话框 343

14.3  GUI生成器Glade 348

14.3.1  Glade软件界面 348

14.3.2  创建应用程序界面 349

14.3.3  C语言代码联编 350

14.4  小结 352

14.5  本章习题 352

第3篇  案  例  篇

第15章  客户端/服务器端程序( 教学视频:15分钟) 354

15.1  服务器端程序设计 354

15.2  客户端程序设计 358

15.2.1  字符界面客户端程序 358

15.2.2  图形界面客户端程序 360

15.3  小结 363