从零开始学Linux编程

副标题:无

作   者:罗利民,王浩编著

分类号:

ISBN:9787121170263

微信扫一扫,移动浏览光盘

简介

书籍 计算机书籍   linux系统可以免费应用到多种服务器上,所以开发人员都在往linux系统上转移,且很多开发都是使用c语言来完成的,这也是《从零开始学linux编程》推出的关键所在。    《从零开始学linux编程》共分为5篇:第1篇是linux系统知识,讲述linux系统的安装和使用、常用命令、文本编辑器及程序的编译与调试;第2篇是c语言基本知识,讲述c语言的基本语法、指针、结构体、系统库函数等知识;第3篇是linux系统编程,讲述shell编程和文件处理方法;第4篇是linux网络编程,讲解tcp和udp网络编程的知识;第5篇是linux c项目实战,通过案例的学习,既复习了前面介绍的知识,也了解了项目实践的流程和技巧,从而增加读者的编程经验。    全书配合大量的图例及代码说明,内容精练,重点突出,实例丰富。如果你一点都不了解linux和c语言编程,那么《从零开始学linux编程》将是你不错的选择。

目录

《从零开始学linux编程》

第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 编译程序 26

1.5 小结 27

1.6 小测试 27

第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 107

6.2 流程控制语句实例 107

6.2.1 三个数字的排序 108

6.2.2 解一元二次方程 109

6.3 两种特殊语句结构 111

6.3.1 三元操作符 111

6.3.2 块语句 112

6.4 小结 113

6.5 小测试 113

第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() 250

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


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

从零开始学Linux编程
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon