《Linux专家之路 Linux下的C编程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:严世贤,贾明编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2001
  • ISBN:7115097275
  • 页数:429 页
图书介绍:本书详尽而细致地介绍了在Linux操作系统下进行网络编程所需要的各种知识,对网络编程的模型和原理、套接字函数的使用方法、多线程和多进程的结构以及大型网络应用程序的设计方法等进行了全面的讲解。书中还穿插了大量的实例程序,并配以说明,更加方便读者的学习和理解。本书内容的精心安排、简洁的措辞、丰富的实例可以使初学者迅速掌握Linux网络编程的技术,同时,Linux的高级程序员也可以从中得到一些启示,从而最大限度地发挥Linux程序的潜能。本书适用于各种Linux网络程序的开发维护人员。

第1篇 基础篇 3

第1章 Linux系统和C语言简介 3

1.1 Linux系统简介 4

1.1.1 Linux系统的发展简介 4

1.1.2 Linux系统的主要优异性能 5

1.1.3 Linux系统的主要构成 5

1.1.4 现行Linux系统的主要版本 6

1.2 C语言简介 6

1.2.1 C语言概述 6

1.2.2 数据类型 7

1.2.3 运算符和表达式 15

1.2.4 C程序语句 16

1.2.5 函数 22

1.2.6 编译预处理 23

1.3 Linux平台下C程序的开发 25

1.3.1 在UNIX操作系统下运行C程序的步骤 25

1.3.2 用Turbo C运行C程序的步骤 25

1.3.3 Linux平台下C程序的开发 25

1.4 小结与练习 26

1.4.1 小结 26

1.4.2 习题与思考 26

第2章 Emacs编辑器 27

2.1 Emacs简介 28

2.1.1 Emacs编辑器的运行和结束 28

2.1.2 基本操作 28

2.2 C模式 30

2.2.1 自动缩进 30

2.2.5 使用Emacs进行编译和调试 31

2.2.4 自动状态 31

2.2.2 注释 31

2.2.3 预处理扩展 31

2.3 小结与练习 32

2.3.1 小结 32

2.3.2 习题与思考 32

第3章 C语言编译器gcc 35

3.1 gcc的使用 36

3.1.1 一个最基本的实例 36

3.1.2 gcc的用法 37

3.1.3 警告 40

3.1.4 优化gcc 41

3.1.5 调试标记 46

3.1.6 使用高级gcc选项 48

3.2.2 GUN连接器ld 51

3.2.3 GUN汇编器as 51

3.2.1 C预处理器cpp 51

3.2 gcc编译流程简介 51

3.2.4 文件处理器ar 52

3.2.5 库显示ldd 52

3.3 其他编译调试工具 52

3.3.1 C++编译器g++ 52

3.3.2 EGCS 52

3.3.3 calls 53

3.3.4 indent 53

3.3.5 gprof 53

3.3.6 f2c和p2c 53

3.4 小结与练习 53

3.4.1 小结 53

3.4.2 习题与思考 54

第4章 调试工具gdb 55

4.1 gdb符号调试器简介 56

4.2.1 调试步骤 57

4.2 gdb功能详解及其应用 57

4.2.2 显示数据命令display和print 67

4.2.3 使用断点 73

4.2.4 使用观察窗 77

4.2.5 core dump分析 81

4.3 其他调试工具 88

4.4 小结与练习 88

4.4.1 小结 88

4.4.2 习题与思考 88

第5章 程序自动维护工具make 91

5.1 简单使用及属性控制 92

5.1.1 make的简单使用 94

5.1.2 make属性的控制 105

5.2.1 宏的使用 112

5.2 高级使用 112

5.2.2 内部规则 118

5.2.3 make递归 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.1 静态内存 184

8.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/O 197

8.5.1 创建内存映像文件 198

8.5.2 撤销内存映像文件 199

8.5.3 将内存映像写入外存 199

8.6.1 小结 202

8.6.2 习题与思考 202

8.5.4 改变内存映像文件的属性 202

8.6 小结与练习 202

第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和进程组ID 222

9.2.5 system函数 227

9.3.2 时间片的分配 229

9.3.1 进程组 229

9.3 多个进程间的关系 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篇 提高篇 241

第10章 信号及信号处理 241

10.1.1 信号简介 242

10.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.1 SYSV子系统的基本概念 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.2 习题与思考 314

11.6.1 小结 314

11.6 小结与练习 314

第12章 网络编程 315

12.1 基本原理 316

12.1.1 计算机网络体系结构模式 316

12.1.2 TCP/IP协议 318

12.1.3 客户/服务器模式 319

12.1.4 套接口编程基础 323

12.1.5 IP地址转换 336

12.2 TCP套接口编程 341

12.2.1 基于TCP的客户——服务器模式 341

12.2.2 信号处理 349

12.2.3 高级技术 350

12.3 UDP套接口编程 360

12.3.2 主要系统调用函数 361

12.3.1 基于UDP的客户——服务器模式 361

12.3.3 基于UDP套接口编程实例 362

12.3.4 可靠性问题 365

12.3.5 UDP套接口的连接 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 使用terminfo 381

13.2 伪终端 384

13.3 小结与练习 385

13.3.1 小结 385

13.3.2 习题与思考 385

第14章 实例一 389

14.1 实例 390

14.2 小结与练习 394

14.2.1 小结 394

14.2.2 习题与思考 394

第15章 实例二 395

15.1 实例 396

第3篇 实战篇 399

15.2 小结与练习 406

15.2.1 小结 406

15.2.2 习题与思考 406

附录 部分习题参考答案 407