从零开始学Linux编程 罗利民著 PDF下载

转载至:  https://download.csdn.net/download/qq_38857770/9858514

下载链接:  点我一键跳转到 下载链接

下载声明:  本资料仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!

《从零开始学Linux编程》内容简介:Linux系统可以免费地应用到多种服务器上,所以开发人员都在往Linux系统上转移,且很多开发都是使用C语言来完成的,这也是《从零开始学Linux编程》推出的关键所在。《从零开始学Linux编程》共分为五篇:第一篇是Linux系统知识,讲述Linux系统的安装和使用、常用命令、文本编辑器及程序的编译与调试;第二篇是C语言基本知识,讲述C语言的基本语法、指针、结构体、系统库函数等知识;第三篇是Linux系统编程,讲述Shell编程和文件处理方法;第四篇是Linux网络编程,讲解TCP和UDP网络编程的知识;第五篇是LinuxC项目实战,通过案例的学习,既复习了前面介绍的知识,也了解了项目实践的流程和技巧,从而增加读者的编辑经验。

第1篇 Linux系统知识

第1章 认识Linux系统 1

1.1 Linux发行版的介绍 1

1.1.1 Red Hat Linux 1

1.1.2 Debian Linux 1

1.2 Linux的安装 2

1.2.1 Linux的分区格式 2

1.2.2 在Windows系统中

划分Linux分区 2

1.2.3 Red Hat Linux 9.0的

安装 4

1.2.4 GRUB在Windows

分区中引导Linux 13

1.3 VMware虚拟机安装Linux

系统 15

1.3.1 VMware软件安装 15

1.3.2 新建虚拟计算机 17

1.3.3 VMware的使用 21

1.3.4 在VMware虚拟机中

安装Linux系统 23

1.4 第一个C程序 25

1.4.1 在Linux中编写C程序

代码 25

1.4.2 编译程序 25

1.5 小结 26

1.6 小测试 26

第2章 常用的Linux操作命令 28

2.1 目录与文件命令 28

2.1.1 查看目录命令pwd 28

2.1.2 打开目录命令cd 28

2.1.3 查看目录命令ls 29

2.1.4 建立文件命令touch 30

2.1.5 建立与删除文件夹

命令mkdir、rmdir 30

2.1.6 文件复制命令cp 31

2.1.7 文件移动和更名

命令mv 32

2.1.8 删除文件与目录

命令rm 32

2.1.9 创建链接命令ln 33

2.1.10 查看文件信息

命令wc 33

2.1.11 文件查看命令cat 34

2.1.12 查看文件视图

命令head与tail 34

2.1.13 文件权限设置

命令chmod 35

2.1.14 查找文件命令find 36

2.2 man系统帮助命令 36

2.2.1 man手册的使用方法 37

2.2.2 帮助文档的结构 37

2.3 info手册 38

2.4 小结 39

2.5 小测试 39

第3章 文本编辑器的使用 40

3.1 VIM的使用 40

3.1.1 VIM的启动 40

3.1.2 在桌面上创建VIM

启动器 40

3.1.3 VIM的工作模式 41

3.1.4 保存与打开文件 42

3.1.5 移动光标 43

3.1.6 常用操作 43

3.1.7 选项设置 45

3.1.8 调用shell命令 46

3.2 VIM使用实例 46

3.2.1 字符的插入与删除 46

3.2.2 字符的查找与替换 47

3.3 带菜单的GVIM 48

3.3.1 文件的新建与保存 48

3.3.2 查找与替换 49

3.4 图形化的gedit 50

3.4.1 gedit的启动与打开

文件 50

3.4.2 gedit编辑文件 50

3.4.3 gedit打印文件 51

3.4.4 gedit的首选项 52

3.5 小结 54

3.6 小测试 55

第4章 编译与调试 56

4.1 编译的概念和理解 56

4.1.1 程序编译的过程 56

4.1.2 编译器 57

4.2 gcc编译器 57

4.2.1 gcc编译器简介 57

4.2.2 gcc对源程序扩展名

的支持 57

4.3 C程序的编译 58

4.3.1 编写第一个C程序 58

4.3.2 用gcc编译程序 59

4.3.3 查看gcc的参数 59

4.3.4 设置输出的文件 60

4.3.5 查看编译过程 61

4.3.6 设置编译的语言 61

4.4 编译过程的控制 62

4.4.1 编译过程简介 62

4.4.2 控制预处理过程 63

4.4.3 生成汇编代码 63

4.4.4 生成目标代码 64

4.4.5 链接生成可执行文件 64

4.5 gdb调试程序 65

4.5.1 gdb简介 65

4.5.2 在程序中加入调试

信息 65

4.5.3 启动gdb 65

4.5.4 在gdb中加载需要

调试的程序 66

4.5.5 在gdb中查看代码 66

4.5.6 在程序中加入断点 66

4.5.7 查看断点 67

4.5.8 运行程序 67

4.5.9 查看变量 68

4.6 程序调试实例 69

4.6.1 编写一个程序 69

4.6.2 编译文件 70

4.6.3 程序调试 70

4.6.4 gdb帮助的使用 72

4.7 gdb常用命令 72

4.8 编译程序常见的错误与问题 74

4.8.1 逻辑错误与语法错误 74

4.8.2 C程序中的错误与

异常 74

4.8.3 编译中的警告提示 74

4.8.4 找不到包含文件的

错误 75

4.8.5 错误地使用逗号 75

4.8.6 括号不匹配错误 75

4.8.7 小括号不匹配错误 76

4.8.8 变量类型或结构体声明

错误 76

4.8.9 使用不存在的函数

错误 76

4.8.10 大小写错误 76

4.8.11 数据类型错误 77

4.8.12 赋值类型错误 77

4.8.13 循环或判断语句中

多加分号 77

4.9 小结 78

4.10 小测试 78

第2篇 C语言基本知识

第5章 C语言基础 79

5.1 C程序的基本概念 79

5.1.1 C程序的基本结构 79

5.1.2 C程序的一般格式 80

5.1.3 C程序中的注释 81

5.2 数据类型 82

5.2.1 整型(int) 82

5.2.2 浮点型(float) 83

5.2.3 字符型(char) 84

5.2.4 变量名 85

5.2.5 字符NULL 86

5.3 变量赋值与输出 86

5.3.1 变量赋值 86

5.3.2 printf函数输出变量 86

5.3.3 scanf函数从键盘

读入变量 88

5.4 运算符 89

5.4.1 算术运算符 89

5.4.2 关系运算符 91

5.4.3 逻辑运算符 91

5.5 小结 92

5.6 小测试 93

第6章 C程序的常用语句 94

6.1 流程控制语句 94

6.1.1 if条件语句 94

6.1.2 if语句嵌套 96

6.1.3 switch选择执行语句 98

6.1.4 for循环语句 99

6.1.5 for循环嵌套 101

6.1.6 for循环应用实例:输出

九九乘法口诀表 102

6.1.7 while循环语句 103

6.1.8 do while循环语句 104

6.1.9 转移控制语句:

continue 105

6.1.10 转移控制语句:

break 106

6.1.11 转移控制语句:

return 106

6.2 流程控制语句实例 107

6.2.1 三个数字的排序 107

6.2.2 解一元二次方程 108

6.3 两种特殊语句结构 111

6.3.1 三元操作符 111

6.3.2 块语句 112

6.4 小结 112

6.5 小测试 112

第7章 数组与指针 114

7.1 数组的理解与操作 114

7.1.1 什么是数组 114

7.1.2 数组的定义与访问 115

7.1.3 数组使用实例 116

7.2 指针 117

7.2.1 对指针的理解 117

7.2.2 指针操作符 117

7.2.3 指针的定义与访问 118

7.2.4 指针使用实例 119

7.3 数组与指针 120

7.3.1 数组与指针的关系 120

7.3.2 指针的算术运算 120

7.3.3 字符数组与字符串 121

7.4 二维数组与多维数组 122

7.4.1 对二维数组的理解 122

7.4.2 二维数组与指针 123

7.5 实例 125

7.5.1 学生成绩统计实例 125

7.5.2 冒泡法排序实例 126

7.5.3 统计字符串中的字符 127

7.5.4 小写字母转换成大写

字母 129

7.5.5 用指针访问数组 130

7.6 常见问题 131

7.6.1 错误的写操作 131

7.6.2 指针的错误赋值 132

7.6.3 数组指针的越界错误 133

7.7 小结 134

7.8 小测试 134

第8章 函数 135

8.1 对函数的理解 135

8.1.1 什么是函数 135

8.1.2 系统函数(库函数)

与用户自定义函数 136

8.1.3 函数的返回值 137

8.1.4 无参函数 138

8.1.5 有参函数 138

8.1.6 函数参数实例 138

8.2 自定义函数 140

8.2.1 自定义函数的编写 140

8.2.2 函数中调用函数 141

8.2.3 函数声明 143

8.2.4 递归函数 144

8.2.5 main函数的参数

argc与argv 145

8.3 函数与指针 145

8.3.1 值调用与引用调用 146

8.3.2 引用调用与指针 146

8.3.3 指针参数实例 147

8.3.4 自定义函数中指针

使用实例 148

8.3.5 数组作为参数 149

8.3.6 数组作为函数参数

实例 150

8.4 返回值 151

8.4.1 函数返回值的类型 151

8.4.2 函数返回指针 152

8.4.3 函数返回指针实例 153

8.4.4 函数返回结果到参数 154

8.5 库函数 154

8.5.1 库函数的种类 154

8.5.2 库函数包含文件 155

8.5.3 头文件使用实例 156

8.6 小结 156

8.7 小测试 156

第9章 字符与字符串处理 158

9.1 字符测试函数介绍 158

9.1.1 数字或字母测试

函数isalnum() 158

9.1.2 字母测试函数

isalpha() 159

9.1.3 可打印字符测试

函数isgraph() 160

9.1.4 大小写字母测试函数

islower()和isupper() 160

9.1.5 数字测试函数

isdigit() 161

9.1.6 符号测试函数

ispunct() 162

9.1.7 其他字符测试函数 163

9.2 字符测试函数综合实例 163

9.2.1 统计字符串中各类

字符的个数 163

9.2.2 判断电话号码与姓名

是否正确 165

9.3 字符串转换 167

9.3.1 C程序中的字符串 167

9.3.2 字符串转换成浮点型

函数atof() 167

9.3.3 字符串转换成整型

函数atoi() 168

9.3.4 字符串转换成长整型

函数atol() 169

9.3.5 将浮点型数转换成

字符串函数ecvt() 170

9.3.6 字母的大小写转换

函数tolower()和

toupper() 170

9.3.7 其他字符串转换

函数 171

9.4 字符串比较 172

9.4.1 字符串比较函数

bcmp() 172

9.4.2 字符串大小比较

函数memcmp() 173

9.4.3 忽略大小写比较字符串

函数strncasecmp() 174

9.5 字符串复制 175

9.5.1 字符串复制函数

bcopy() 175

9.5.2 字符串复制

函数memccpy() 175

9.5.3 字符串复制函数

strcpy() 176

9.5.4 字符串复制函数

strncpy() 177

9.6 字符串的清理与填充 177

9.6.1 字符串清理函数

bzero() 177

9.6.2 字符串填充函数

memset() 178

9.7 字符串查找 179

9.7.1 字符串查找函数index()

与rindex() 179

9.7.2 字符串查找函数

memchr() 180

9.7.3 字符串查找函数

strchr()与strrchr() 180

9.8 字符串的连接与分割 181

9.8.1 字符串连接函数

strcat() 181

9.8.2 字符串分割函数

strtok() 182

9.9 其他字符串函数 182

9.9.1 字符串长度函数

strlen() 183

9.9.2 允许出现字符查找

函数strspn() 183

9.9.3 不允许出现字符查找

函数strcspn() 184

9.10 小结 185

9.11 小测试 185

第10章 结构体 186

10.1 结构体操作 186

10.1.1 对结构体的理解 186

10.1.2 结构体的定义 186

10.1.3 结构体的访问 188

10.1.4 结构体数组 189

10.1.5 结构体使用实例 190

10.2 结构体与指针 191

10.2.1 结构体指针的定义 192

10.2.2 结构体指针的访问 192

10.2.3 结构体作为函数的

参数 193

10.2.4 结构体指针作为函数

的参数 195

10.2.5 结构体作为函数的

返回值 196

10.2.6 结构体指针作为函数

的返回值 197

10.3 小结 199

10.4 小测试 199

第11章 时间函数 200

11.1 常用的时间函数 200

11.1.1 返回时间函数 200

11.1.2 取当前时间函数 201

11.1.3 字符串格式时间

函数 203

11.1.4 另一种字符串格式

时间函数 203

11.1.5 取得当地时间函数 204

11.1.6 将时间转换成秒数

函数 205

11.1.7 取得当前时间函数 206

11.1.8 设置当前时间函数 207

11.2 时间函数使用实例 208

11.2.1 运行程序所需要的

时间 208

11.2.2 两次输入之间的时间

间隔 209

11.2.3 设置系统时间 210

11.3 小结 211

11.4 小测试 211

第12章 C语言的编程规范 212

12.1 命名规范 212

12.2 格式规范 214

12.3 函数规范 215

12.4 其他规范 216

第3篇 Linux系统编程

第13章 Shell编程 218

13.1 bash的使用 218

13.1.1 bash的内部命令与

外部命令 218

13.1.2 命令补齐功能 218

13.1.3 命令通配符 219

13.1.4 使用命令的历史

记录 219

13.1.5 命令别名 220

13.2 Shell程序的基本结构 220

13.3 局部变量 221

13.4 环境变量 221

13.4.1 查看环境变量 222

13.4.2 访问环境变量 222

13.4.3 定义环境变量 222

13.4.4 在系统配置文件中

定义环境变量 222

13.4.5 位置变量 223

13.5 Shell运算符 224

13.5.1 变量赋值 224

13.5.2 算术运算符 224

13.6 输入和输出 225

13.6.1 echo命令输出结果 226

13.6.2 read命令读取信息 227

13.6.3 文件重定向 228

13.7 引号的使用方法 229

13.7.1 双引号 229

13.7.2 单引号 230

13.7.3 反引号 230

13.7.4 反斜线 230

13.8 测试语句 230

13.8.1 文件状态测试 231

13.8.2 数值测试 231

13.8.3 字符串测试 232

13.8.4 逻辑测试 233

13.9 流程控制结构 233

13.9.1 if语句 233

13.9.2 if语句应用实例 234

13.9.3 for语句 236

13.9.4 for循环应用实例 236

13.9.5 until循环 238

13.10 Shell编程实例 238

13.10.1 程序功能 239

13.10.2 编写程序代码 239

13.11 小结 240

13.12 小测试 240

第14章 目录与文件 242

14.1 文件操作权限 242

14.2 错误处理与错误号 243

14.2.1 对错误定义的理解 243

14.2.2 用错误常数显示错误

信息 244

14.2.3 用错误号显示错误

信息 245

14.3 创建与删除目录 245

14.3.1 创建目录函数

mkdir() 246

14.3.2 删除目录函数

rmdir() 247

14.4 文件的创建与删除 248

14.4.1 创建文件函数

creat() 248

14.4.2 删除文件函数

remove() 249

14.4.3 建立临时文件

函数mkstemp() 251

14.5 文件的打开与关闭 252

14.5.1 打开文件函数

open() 252

14.5.2 文件打开方式的

设置 252

14.5.3 打开文件的权限 253

14.5.4 文件打开实例 253

14.5.5 关闭文件函数

close() 254

14.6 文件读写 256

14.6.1 写入文件函数

write() 256

14.6.2 读取文件函数read() 257

14.6.3 文件读写位置的

移动 258

14.6.4 将缓冲区数据写入

磁盘函数sync() 260

14.6.5 将缓冲区数据写入

磁盘函数fsync() 261

14.7 文件锁定 262

14.7.1 对文件锁定的理解 263

14.7.2 文件锁定函数flock() 263

14.8 文件的移动与复制 265

14.8.1 文件移动函数

rename() 265

14.8.2 rename()函数使用

实例 265

14.8.3 文件复制实例 266

14.9 小结 268

14.10 小测试 268

第4篇 Linux网络编程

第15章 网络编程 269

15.1 网络编程的基本概念 269

15.1.1 IP地址 269

15.1.2 端口 270

15.1.3 域名 270

15.1.4 TCP与UDP 270

15.2 套接字 271

15.2.1 什么是套接字 271

15.2.2 套接字相关的数据

类型 271

15.2.3 套接字类型 272

15.3 域名与IP地址 272

15.3.1 用域名取得主机的IP

地址 272

15.3.2 用IP地址返回域名 274

15.4 网络协议 275

15.4.1 由协议名称取得协议

数据 275

15.4.2 由协议编号取得协议

信息 276

15.4.3 取得系统支持的所有

协议 277

15.5 网络服务 278

15.5.1 取得系统支持的网络

服务 278

15.5.2 用名称取得系统支持

的服务 279

15.5.3 由端口取得服务

名称 281

15.6 网络IP地址的转换 282

15.6.1 将网络地址转换成长

整型数 282

15.6.2 将长整型IP地址转换

成网络地址 283

15.6.3 主机字符顺序与网络

字符顺序的转换 284

15.7 错误处理 285

15.7.1 herror()函数显示

错误 285

15.7.2 捕获错误编号 285

15.8 小结 286

15.9 小测试 286

第16章 无连接的套接字通信 287

16.1 socket套接字 287

16.1.1 建立socket 287

16.1.2 取得socket状态 289

16.1.3 设置socket状态 290

16.2 面向无连接的套接字通信 291

16.2.1 工作流程 292

16.2.2 信息发送函数

sendto() 292

16.2.3 信息接收函数

recvfrom() 293

16.3 无连接的套接字通信实例 294

16.3.1 无连接的套接字通信

客户端 294

16.3.2 无连接的套接字通信

服务器 295

16.3.3 测试UDP通信程序 297

16.4 小结 298

16.5 小测试 298

第17章 面向连接的套接字通信 299

17.1 面向连接的套接字通信工作

流程 299

17.2 绑定端口 299

17.2.1 绑定端口函数

bind() 299

17.2.2 使用bind()函数绑定

端口实例 301

17.3 监听与连接 302

17.3.1 等待监听函数

listen() 302

17.3.2 listen()函数使用

实例 303

17.3.3 接受连接函数

accept() 304

17.3.4 accept()函数使用

实例 304

17.3.5 请求连接函数

connect() 306

17.3.6 connect()函数使用

实例 307

17.4 数据的发送与接收 308

17.4.1 数据接收函数

recv() 308

17.4.2 recv()函数使用实例 309

17.4.3 数据发送函数

send() 310

17.4.4 数据传输函数

write()与read() 311

17.4.5 read()函数接收数据

实例 311

17.5 面向连接的套接字通信

实例 313

17.5.1 服务器程序 313

17.5.2 客户端程序 316

17.5.3 实例程序测试 317

17.6 小结 318

17.7 小测试 318

第5篇 Linux C项目实战

第18章 电话本项目的开发 319

18.1 程序功能分析 319

18.2 程序的函数 319

18.3 包含文件 320

18.4 数据的定义 320

18.5 菜单函数 321

18.6 显示电话信息函数 322

18.7 添加电话号码函数 322

18.8 按姓名查找函数 322

18.9 删除电话号码函数 323

18.10 保存到文件函数 324

18.11 从文件导入信息函数 324

18.12 主函数 325

18.13 程序的运行 326

18.14 小结 327

打赏 支付宝打赏 微信打赏

如果文章对您有帮助,欢迎移至上方打赏按钮...

下载链接
公众号
Java菜市场,专注于技术干货分享,资源下载

[打开微信]->[扫描二维码]->[关注《Letter》]
发送“1248”,获取下载地址。
原力推-知识付费平台
原力推-知识付费平台
官网:https://yuanlitui.com
你可以把创造的任何有趣/有价值的内容变成付费版
出售给有需要的人,把洞察转化为价值

现在成为创作者免服务费
随手一点
  • 打酱油

    21人

  • 139人

  • 呵呵

    9人

  • 草泥马

    2人

文章评论 抢沙发