《零点起飞学Linux C编程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:陈冠军等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302324195
  • 页数:363 页
图书介绍:本书由浅入深,循序渐进地讲述如何在Linux系统下使用C语言进行应用程序开发。全书内容包括Linux系统的基本操作、C语言基础、Linux C语言难点、数据结构、相关工具集、基本应用程序开发、文件操作、进程操作、进程间通信、多线程编程、网络编程、以及图形界面编程等。最后介绍了一个完整的Linux命令源代码,设计实现了一个客户/服务器程序,涵盖了网络编程和GUI编程的相关知识。

第1篇 基础篇 2

第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篇 应用篇 180

第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()和exee()函数创建进程 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多路复用1/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篇 案例篇 354

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

15.1服务器端程序设计 354

15.2客户端程序设计 358

15.2.1字符界面客户端程序 358

15.2.2图形界面客户端程序 360

15.3小结 363