Linux 下的C编程 含盘 Linux专家之路
分類: 图书,计算机/网络,操作系统/系统开发,LINUX ,
作者: 贾明等
出 版 社: 人民邮电出版社
出版时间: 2001-11-1字数: 669千版次: 第1版第1次页数: 429印刷时间: 2001-11开本:印次:纸张: 胶版纸I S B N : 9787115097880包装: 平装编辑推荐
本书系统地介绍了在Linux 平台下用C语言进行程序开发的过程,并通过列举大量的程序实例,使读者很快掌握在Linux平台下进行C程序开发的方法和技巧,并具备开发大型应用程序的能力。
本书内容详实,主要包括:Linux平台下C语言编程环境的介绍,C语言编译器、调试工具和自动维护工具的使用方法,Linux系统提供特有的函数调用,在C程序中访问文件的方法,进程的概念、进程间通信以及多进程同步运行的实现手段,C语言网络编程方法等。
本书结构合理、概念清晰、实例丰富,并具有很强的启发性和实用性, 适用于在Linux系统下进行C语言编程的程序员和广大爱好者阅读。
目录
第1篇基础篇
第1章Linux系统和C语言简介3
1.1Linux系统简介4
1.1.1Linux系统的发展简介4
1.1.2Linux系统的主要优异性能5
1.1.3Linux系统的主要构成5
1.1.4现行Linux系统的主要版本6
1.2C语言简介6
1.2.1C语言概述6
1.2.2数据类型7
1.2.3运算符和表达式15
1.2.4C程序语句16
1.2.5函数22
1.2.6编译预处理23
1.3Linux平台下C程序的开发25
1.3.1在UNIX操作系统下运行C程序的步骤25
1.3.2用Turbo C运行C程序的步骤25
1.3.3Linux平台下C程序的开发25
1.4小结与练习26
1.4.1小结26
1.4.2习题与思考26
第2章Emacs编辑器27
2.1Emacs简介28
2.1.1Emacs编辑器的运行和结束28
2.1.2基本操作28
2.2C模式30
2.2.1自动缩进30
2.2.2注释31
2.2.3预处理扩展31
2.2.4自动状态31
2.2.5使用Emacs进行编译和调试31
2.3小结与练习32
2.3.1小结32
2.3.2习题与思考32
第3章C语言编译器gcc35
3.1gcc的使用36
3.1.1一个最基本的实例36
3.1.2gcc的用法37
3.1.3警告40
3.1.4优化gcc41
3.1.5调试标记46
3.1.6使用高级gcc选项48
3.2gcc编译流程简介51
3.2.1C预处理器 cpp51
3.2.2GUN连接器 ld51
3.2.3GUN汇编器 as51
3.2.4文件处理器 ar52
3.2.5库显示 ldd52
3.3其他编译调试工具52
3.3.1C++编译器 g++52
3.3.2EGCS52
3.3.3calls53
3.3.4indent53
3.3.5gprof53
3.3.6f2c和p2c53
3.4小结与练习53
3.4.1小结53
3.4.2习题与思考54
第4章调试工具gdb55
4.1gdb符号调试器简介56
4.2gdb功能详解及其应用57
4.2.1调试步骤57
4.2.2显示数据命令display和print67
4.2.3使用断点73
4.2.4使用观察窗77
4.2.5core dump分析81
4.3其他调试工具88
4.4小结与练习88
4.4.1小结88
4.4.2习题与思考88
第5章程序自动维护工具make91
5.1简单使用及属性控制92
5.1.1make的简单使用94
5.1.2make属性的控制105
5.2高级使用112
5.2.1宏的使用112
5.2.2内部规则118
5.2.3make递归121
5.2.4依赖性的计算122
5.3库的使用125
5.3.1创建库和维护库126
5.3.2库的链接127
5.4小结与练习128
5.4.1小结128
5.4.2习题与思考129
第6章文件操作131
6.1文件系统简介132
6.1.1文件132
6.1.2文件的相关信息134
6.1.3文件系统135
6.2基于文件描述符的I/O操作136
6.2.1文件的创建、打开与关闭136
6.2.2文件的读写操作139
6.2.3文件的定位144
6.3文件的其他操作146
6.3.1文件属性的修改146
6.3.2文件的其他操作150
6.4特殊文件的操作152
6.4.1目录文件的操作153
6.4.2链接文件的操作154
6.4.3管道文件的操作157
6.4.4设备文件158
6.5小结与练习158
6.5.1小结158
6.5.2习题与思考159
第7章输入输出——基于流的操作161
7.1流简介162
7.2基于流的I/O操作164
7.2.1流的打开和关闭164
7.2.2缓冲区的操作166
7.2.3直接输入输出167
7.2.4格式化输入输出170
7.2.5基于字符和行的输入输出173
7.3临时文件178
7.4小结与练习182
7.4.1小结182
7.4.2习题与思考182
第8章内存管理183
8.1静态内存与动态内存184
8.1.1静态内存184
8.1.2动态内存186
8.2安全性问题187
8.3内存管理操作188
8.3.1动态内存的分配188
8.3.2动态内存的释放189
8.3.3调整动态内存的大小190
8.3.4分配堆栈192
8.3.5内存锁定193
8.4使用链表193
8.5内存映像I/O197
8.5.1创建内存映像文件198
8.5.2撤销内存映像文件199
8.5.3将内存映像写入外存199
8.5.4改变内存映像文件的属性202
8.6小结与练习202
8.6.1小结202
8.6.2习题与思考203
第9章进程控制205
9.1进程的基本概念206
9.1.1进程基本介绍206
9.1.2进程的属性207
9.2进程控制的相关函数208
9.2.1进程的创建208
9.2.2进程等待213
9.2.3进程的终止218
9.2.4进程ID和进程组ID222
9.2.5system函数227
9.3多个进程间的关系229
9.3.1进程组229
9.3.2时间片的分配229
9.3.3进程的同步231
9.4线程232
9.4.1线程的创建232
9.4.2线程属性的设置232
9.4.3结束线程234
9.4.4线程的挂起234
9.4.5取消线程235
9.4.6互斥236
9.5小结与练习236
9.5.1小结236
9.5.2习题与思考237
第2篇提高篇
第10章信号及信号处理241
10.1信号及其使用简介242
10.1.1信号简介242
10.1.2信号的使用244
10.2信号操作的相关系统调用245
10.2.1信号处理245
10.2.2信号的阻塞255
10.2.3发送信号262
10.3信号处理的潜在危险272
10.4小结与练习272
10.4.1小结272
10.4.2习题与思考273
第11章进程间通信275
11.1简介276
11.2共享内存和信号量276
11.2.1SYSV子系统的基本概念277
11.2.2共享内存278
11.2.3信号量286
11.3管道299
11.3.1管道的创建和关闭299
11.3.2管道的读写操作301
11.4命名管道303
11.4.1命名管道的创建303
11.4.2命名管道的使用304
11.5消息队列309
11.5.1消息队列的创建与打开310
11.5.2向消息队列中发送消息310
11.5.3从消息队列中接收消息311
11.5.4消息队列的控制312
11.6小结与练习314
11.6.1小结314
11.6.2习题与思考314
第12章网络编程315
12.1基本原理316
12.1.1计算机网络体系结构模式316
12.1.2TCP/IP协议318
12.1.3客户/服务器模式319
12.1.4套接口编程基础323
12.1.5IP地址转换336
12.2TCP套接口编程341
12.2.1基于TCP的客户——服务器模式341
12.2.2信号处理349
12.2.3高级技术350
12.3UDP套接口编程360
12.3.1基于UDP的客户——服务器模式361
12.3.2主要系统调用函数361
12.3.3基于UDP套接口编程实例362
12.3.4可靠性问题365
12.3.5UDP套接口的连接367
12.4原始套接口编程368
12.4.1基本形式和操作369
12.4.2原始套接口编程实例370
12.5小结与练习376
12.5.1小结376
12.5.2习题与思考376
第13章底层终端编程377
13.1底层终端编程378
13.1.1属性控制378
13.1.2使用terminfo381
13.2伪终端384
13.3小结与练习385
13.3.1小结385
13.3.2习题与思考385
第3篇实战篇
第14章实例一389
14.1实例390
14.2小结与练习394
14.2.1小结394
14.2.2习题与思考394
第15章实例二395
15.1实例396
15.2小结与练习406
15.2.1小结406
15.2.2习题与思考406
附录部分习题参考答案407