零点起飞学LinuxC编程

零点起飞学LinuxC编程"

作者:陈冠军等
ISBN:9787302324195
定价:¥59
字数:千字
页数:
出版时间:2013.09.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书结合大量实例,由浅入深、循序渐进地介绍了Linux平台 C程序开发技术。本书涉及面广,从基本操作到高级技术,再到实际应用,几乎涉及Linux C开发的所有重要知识点。本书讲解详细,示例丰富,每个知识点都配有具体的示例讲解,读者可以轻松上手。本书特意提供了典型习题及教学PPT以方便教学。另外,配书光盘中提供了大量的配套教学视频及源代码,便于读者更加高效的学习。

全书共分3篇。第1篇介绍C语言的基础知识和一些Linux编程的相关工具,内容包括C语言基础、指针、函数、文本编辑器、GCC编译器,以及调试工具使用技术;第2篇介绍Linux C应用技术,内容包括文件系统编程、标准输入输出、进程编程、网络编程,以及GUI编程等相关应用技术;第3篇介绍了面向实际应用的客户端/服务器端程序案例,以让读者学以致用。

本书适合所有想从事Linux C开发的人员阅读,也可作为大中专院校及职业院校相关课程的教材。另外,本书也可供Linux平台的程序员和编程爱好者作为实际工作中的参考书籍。

前言

Linux操作系统是一款广泛应用的操作系统。Linux借助其免费、开源等特点,在服务器、安全行业等特殊领域受到了广泛应用。现在,Linux的各种衍生操作系统更是深入手机等嵌入式设备领域。由于Linux操作系统是使用C语言开发和实现的,所以Linux最为有效的开发方式是采用C语言开发。

虽然Linux下采用标准的C语言,但对于普通C语言爱好者来说,要熟练掌握Linux C编程仍然困难重重。因为读者在完全陌生的战场(操作系统),使用完全陌生的武器(开发工具),和完全陌生的敌人(技术)作战。首先,Linux操作系统与Windows操作系统不同,造成用户连基本的文件操作都无法顺利进行。其次,Linux下没有Visual C++等常见的Windows开发工具,取而代之的是完全陌生的GCC、VI等工具。最后,Linux下开发会遇到操作系统层面的相关技术。这些技术同样是完全陌生的。基于以上原因,本人编写了本书,力求帮助读者克服这些困难,从而顺利学习Linux C编程。

本书由浅入深,全面系统地讲解了Linux C编程技术,篇章结构划分合理,可以帮助读者建立完善的Linux C编程技术体系。同时,针对Linux C编程技术新的应用趋势,着重讲解了最新应用所使用的技术。考虑到新手入门的特点,本书有针对性地加强了示例的数量,帮助读者尽可能地掌握好每项技术。同时,为了方便读者更加高效而直观的学习,本书专门提供了配套多媒体教学视频辅助读者学习。相信通过阅读本书,读者可以顺利进入Linux C编程的世界。

本书有何特色

1.配多媒体教学视频

本书提供配套的多媒体教学视频辅助教学。视频涵盖本书各个知识点,从而帮助读者高效、直观地掌握各项技术。

2.门槛低,容易入门

本书站在初学者的角度,尽量避免过多的专业术语,避免云山雾罩的讲解,以通俗易懂的语言,让学习的难度大幅降低。即便零基础的读者,只要跟着本书的讲解一步步学下去,也能掌握书中所讲解的内容。

3.内容全面、系统

本书详细介绍了Linux C编程所需要的知识,包括语法、函数,以及文本编辑器、GCC编译器和调试工具等,通过学习这些技术,读者就可以轻松地开发应用程序。

4.讲解由浅入深,循序渐进

本书的编排采用循序渐进的方式,内容梯度从易到难,讲解由浅入深,适合各个层次的读者阅读,并均有所获。

5.写作细致,处处为读者着想

本书内容编排、概念表述、语法讲解、示例讲解、源代码注释等都很细致,作者讲解时不厌其烦,细致入微,将问题讲解得很清楚,扫清了读者的学习障碍。

6.贯穿大量的开发实例和技巧

本书在讲解知识点时贯穿了大量短小精悍的典型实例,力求让读者获得真正实用的 知识。

7.提供教学PPT,方便老师教学

本书适合大中专院校和职业学校作为职业技能课程的教学用书,所以专门制作了教学PPT,以方便各院校的老师教学时使用。

本书内容安排

第1篇  基础篇(第1~7章)

本篇主要内容包括Linux简介、C语言基础、指针、函数及文本编辑器和GCC编译器等相关工具的介绍。本篇主要是让读者了解Linux C编程的应用领域、Linux C的基础语法知识及相关工具。本篇是Linux C编程的基础,只有完全掌握了本篇的内容,才可以在后面的学习中游刃有余。

第2篇  应用篇(第8~14章)

本篇主要内容包括文件系统编程、标准输入输出、进程编程、线程编程、网络编程及GUI编程等。本篇是GUI的进阶部分,主要介绍了Linux C开发中相关技术的编程实现。学习本篇后读者可以使用Linux C实现一些简单的应用程序。

第3篇  案例篇(第15章)

本篇主要介绍了客户端/服务器端程序案例。本篇介绍的是Linux C开发的实际应用,读者学习完本篇的知识,可以搭建起一个简易的客户端/服务器系统。

本书光盘内容

* 本书重点内容的配套教学视频;

* 本书实例涉及的源代码及可执行文件。

本书读者对象

* Linux C开发入门人员;

* Linux C编程爱好者;

* Linux C编程从业人员;

* Linux C编程培训学员;

* 大中专院校的学生。

本书阅读建议

* 建议基础薄弱的读者,从前至后顺次阅读,尽量不要跳跃。

* 书中的实例和示例建议读者都要亲自上机动手实践,学习效果更好。

* 课后习题都动手做一做,以检查自己对本章内容的掌握程度,如果不能顺利完成,建议回过头来重新学习一下本章内容。

* 学习每章内容时,建议读者先仔细阅读书中的讲解,然后再结合本章教学视频学习,学习效果更佳。

* 第3篇的内容偏重于实战。这本书内容在初期不需要掌握,只要理解思想即可。

本书作者

本书由陈冠军主笔编写。其他参与编写的人员有毕梦飞、蔡成立、陈涛、陈晓莉、陈燕、崔栋栋、冯国良、高岱明、黄成、黄会、纪奎秀、江莹、靳华、李凌、李胜君、李雅娟、刘大林、刘惠萍、刘水珍、马月桂、闵智和、秦兰、汪文君、文龙。

阅读本书的过程中,若有任何疑问,可以发邮件到book@wanjuanchina.net或bookservice2008@163.com,或者到www.wanjuanchina.net的图书论坛上留言,以获得帮助。

目录

第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

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个