图书介绍
linux C编程实战PDF|Epub|txt|kindle电子书版本网盘下载
![linux C编程实战](https://www.shukui.net/cover/65/32238703.jpg)
- 童永清编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115174086
- 出版时间:2008
- 标注页数:412页
- 文件大小:241MB
- 文件页数:426页
- 主题词:C语言-程序设计
PDF下载
下载说明
linux C编程实战PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 Linux和C编程基础2
第1章 Linux系统概述2
1.1 Linux操作系统介绍2
1.1.1 Linux的发展历程2
1.1.2 Linux的特性2
1.1.3 Linux的内核版本和发行版本3
1.2 C语言简介4
1.2.1 C语言的发展历史4
1.2.2 C语言的特点5
1.3 Linux的安装、启动与关闭5
1.4 Linux的基本使用5
1.4.1 Linux终端5
1.4.2 Linux Shell5
1.4.3 Linux的常用命令6
1.5 Linux下程序的开发环境和开发过程9
1.6 习题12
第2章 C编程基础、Vi和Emacs编辑器13
2.1 C程序的结构13
2.2 C语言的基本数据类型14
2.2.1 整型14
2.2.2 浮点型16
2.2.3 字符型17
2.3 运算符和表达式19
2.3.1 算术运算符与算术表达式20
2.3.2 赋值运算符与赋值表达式22
2.3.3 逗号运算符与逗号表达式22
2.4 标准输入输出函数23
2.4.1 字符输出函数putchar23
2.4.2 字符输入函数getchar24
2.4.3 格式化输出函数printf24
2.4.4 格式化输入函数scanf26
2.5 Vi编辑器的使用27
2.5.1 Vi的工作模式27
2.5.2 启动Vi28
2.5.3 保存文件和退出Vi29
2.5.4 光标的移动29
2.5.5 文本的删除30
2.5.6 文本查找和替换30
2.5.7 文本的复制与粘贴30
2.6 Emacs编辑器的使用31
2.7 命名规范33
2.7.1 标识符33
2.7.2 关键字33
2.7.3 命名规范33
2.8 面试题选与实例精讲34
2.8.1 面试题选34
2.8.2 实例精讲35
2.9 习题37
第3章 C程序控制结构和gcc编译器38
3.1 C程序的控制结构38
3.1.1 C程序语句概述38
3.1.2 C程序的3种基本控制结构39
3.2 分支控制结构40
3.2.1 关系运算符与关系表达式40
3.2.2 逻辑运算符与逻辑表达式41
3.2.3 if语句42
3.2.4 switch语句44
3.3 循环控制结构46
3.3.1 while语句46
3.3.2 do...while语句47
3.3.3 for语句48
3.3.4 break语句和continue语句50
3.4 gcc编译器51
3.4.1 程序的编译过程51
3.4.3 gcc的常用选项52
3.4.3 gcc的报错类型及对策54
3.5 面试题选与实例精讲55
3.5.1 面试题选55
3.5.2 实例精讲56
3.6 习题58
第4章 C函数、数组、指针和调试器gdb59
4.1 函数59
4.1.1 函数的定义59
4.1.2 函数的调用61
4.1.3 变量的访问控制和存储类别64
4.2 数组67
4.2.1 一维数组的定义和使用67
4.2.2 二维数组的定义和使用67
4.2.3 字符数组和字符串69
4.3 指针70
4.3.1 地址和指针70
4.3.2 指针的定义和使用71
4.3.3 指针和数组72
4.3.4 指针和函数75
4.3.5 指向字符串的指针79
4.4 字符串函数82
4.4.1 puts和gets82
4.4.2 strcpy和strncpy82
4.4.3 strcat和strncat83
4.4.4 strcmp和strncmp83
4.4.5 strlen84
4.4.6 strlwr和strupr84
4.4.7 strstr和strchr84
4.5 调试器gdb85
4.5.1 启动和退出gdb85
4.5.2 显示和查找程序源代码86
4.5.3 执行程序和获得帮助87
4.5.4 设置和管理断点87
4.5.5 查看和设置变量的值91
4.5.6 控制程序的执行93
4.6 面试题选95
4.7 习题106
第5章 C语言预处理、结构体和make的使用107
5.1 C语言预处理命令107
5.1.1 宏定义107
5.1.2 文件包含109
5.1.3 条件编译110
5.2 结构体和共用体111
5.2.1 声明和引用结构体111
5.2.2 结构体和数组113
5.2.3 结构体和指针114
5.2.4 共用体116
5.2.5 使用typedef117
5.3 位运算117
5.3.1 位运算符和位运算117
5.3.2 位域119
5.4 make的使用和Makefile的编写120
5.4.1 make的一般使用121
5.4.2 Makefile文件的构成123
5.4.3 使用变量127
5.4.4 隐含规则131
5.4.5 使用条件语句132
5.4.6 使用库133
5.4.7 make命令参数详解134
5.5 面试题选135
5.6 进一步学习建议140
5.7 习题140
第二篇 Linux系统编程142
第6章 文件操作142
6.1 系统编程概述142
6.2 Linux的文件结构142
6.2.1 Linux的文件系统模型143
6.2.2 文件的分类144
6.2.3 文件的访问权限控制145
6.3 文件的输入输出147
6.3.1 文件的创建、打开与关闭147
6.3.2 文件的读写149
6.3.3 文件读写指针的移动150
6.3.4 dup、dup2、fcntl、ioctl系统调用152
6.4 文件属性操作160
6.4.1 获取文件属性160
6.4.2 设置文件属性162
6.5 文件的移动和删除164
6.5.1 文件的移动164
6.5.2 文件的删除165
6.6 目录操作166
6.6.1 目录的创建和删除166
6.6.2 获取当前目录167
6.6.3 设置工作目录167
6.6.4 获取目录信息168
6.7 编程实践:实现自己的ls命令170
6.8 习题176
第7章 进程控制177
7.1 进程概述177
7.1.1 Linux进程177
7.1.2 进程控制179
7.1.3 进程的内存映像179
7.2 进程操作180
7.2.1 创建进程180
7.2.2 创建守护进程185
7.2.3 进程退出187
7.2.4 执行新程序188
7.2.5 等待进程结束191
7.3 进程的其他操作194
7.3.1 获得进程ID194
7.3.2 setuid和setgid194
7.3.3 改变进程的优先级196
7.4 编程实践:实现自己的myshell197
7.5 习题203
第8章 线程控制204
8.1 线程和进程关系204
8.2 创建线程205
8.2.1 线程创建函数pthread_create205
8.2.2 线程属性207
8.3 线程终止208
8.4 私有数据210
8.5 线程同步212
8.5.1 互斥锁212
8.5.2 条件变量213
8.5.3 异步信号216
8.6 出错处理216
8.6.1 错误检查216
8.6.2 错误码217
8.6.3 错误的提示信息218
8.7 习题219
第9章 信号及信号处理220
9.1 Linux信号介绍220
9.1.1 信号的来源220
9.1.2 信号的种类220
9.1.3 进程对信号的响应223
9.2 信号处理223
9.2.1 信号的捕捉和处理223
9.2.2 信号处理函数的返回227
9.2.3 信号的发送231
9.2.4 信号的屏蔽236
9.3 编程中如何获得帮助240
9.4 编程实践:应用实例240
9.4.1 实例一:信号的发送与处理240
9.4.2 实例二:信号应用于事件通知242
9.5 习题244
第10章 进程间通信245
10.1 进程间通信概述245
10.2 管道246
10.2.1 管道的概念246
10.2.2 管道的创建与读写246
10.2.3 管道的应用实例250
10.3 有名管道251
10.3.1 有名管道的概念251
10.3.2 有名管道的创建与读写252
10.3.3 有名管道的应用实例253
10.4 消息对列256
10.4.1 消息对列的基本概念256
10.4.2 消息队列的创建与读写257
10.4.3 获取和设置消息队列的属性260
10.4.4 消息队列的应用实例262
10.5 信号量265
10.5.1 信号量的基本概念265
10.5.2 信号量的创建与使用265
10.5.3 信号量的应用实例268
10.6 共享内存270
10.6.1 共享内存的数据结构270
10.6.2 共享内存的创建与操作270
10.6.3 共享内存的应用实例271
10.7 库的创建和使用275
10.7.1 Linux库的概念275
10.7.2 静态库的创建和使用276
10.7.3 动态库的创建和使用277
10.8 进一步学习建议279
10.9 习题279
第三篇 Linux网络和图形界面编程第11章 网络编程282
11.1 网络编程基本原理282
11.1.1 网络模型与协议282
11.1.2 地址284
11.1.3 端口285
11.1.4 IP协议285
11.1.5 用户数据报协议UDP286
11.1.6 传输控制协议TCP286
11.1.7 客户机/服务器模型287
11.2 套接字编程287
11.2.1 套接字地址结构288
11.2.2 创建套接字288
11.2.3 建立连接289
11.2.4 绑定套接字290
11.2.5 在套接字上监听290
11.2.6 接受连接291
11.2.7 TCP套接字的数据传输291
11.2.8 UDP套接字的数据传输292
11.2.9 关闭套接字294
11.2.10 主要系统调用函数294
11.3 一个面向连接的Client/Server实例301
11.4 编写安全的代码308
11.4.1 网络攻击308
11.4.2 缓冲区溢出309
11.4.3 输入检查310
11.5 编程实践:编程实现端口扫描器实例311
11.6 进一步学习建议314
11.7 习题314
第12章 GTK+图形界面编程315
12.1 Linux下的图形界面编程315
12.1.1 Qt和GTK+315
12.1.2 GTK+简介315
12.2 一个简单的例子316
12.3 消息和回调函数319
12.4 GTK+的面向对象机制320
12.5 排列控件323
12.5.1 使用box排列控件323
12.5.2 使用table排列控件325
12.6 常用控件330
12.6.1 进度条、微条按钮、组合框330
12.6.2 表格控件332
12.6.3 生成对话框333
12.6.4 使用菜单334
12.7 进一步学习建议336
第四篇 Linux项目实践338
第13章 项目实践:BT下载软件的开发338
13.1 BT软件简述338
13.2 BitTorrent协议339
13.2.1 概要介绍339
13.2.2 基于BT协议的文件分发系统的构成339
13.2.3 B编码340
13.2.4 种子文件的结构340
13.2.5 与Tracker交互342
13.2.6 peer之间的通信协议343
13.2.7 关键算法和策略345
13.3 系统结构设计347
13.4 各个模块的设计和实现348
13.4.1 种子解析模块的设计和实现349
13.4.2 位图管理模块的设计和实现359
13.4.3 出错处理模块的设计和实现363
13.4.4 运行日志模块的设计和实现364
13.4.5 信号处理模块的设计和实现365
13.4.6 Peer管理模块的设计和实现366
13.4.7 消息处理模块的设计和实现372
13.4.8 缓冲管理模块的设计和实现384
13.4.9 策略管理模块的设计和实现393
13.4.10 连接Tracker模块的设计和实现397
13.4.11 与peer交换数据模块的设计和实现403
13.4.12 主函数的设计和实现411
13.4.13 调试和测试412