当前位置:首页 > 工业技术
Linux C编程
Linux C编程

Linux C编程PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:李玉波,朱自强,郭军编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302113696
  • 页数:371 页
图书介绍:本书系统地介绍了在Linux下用C语言进行程序开发的过程,通过列举大量实例,使读者很快掌握在Linux平台下进行C程序开发的方法和技巧,并具备开发大型应用程序的能力。主要内容包括:Linux下C语言及其编程环境的介绍,C语言编译器、调试工具、自动维护工具的使用方法,在C程序中访问文件的方法,过程的概念等。
《Linux C编程》目录
标签:编著 编程

目录 1

第1章 Linux下C语言编程简介 1

1.1 Linux简介 1

1.2 C语言的简介和特点 4

1.3 Linux程序设计基础知识 5

1.3.1 程序安装目录 5

1.3.2 头文件 5

1.3.3 库文件 6

1.4 Linux下C语言编程环境概述 7

1.5 Linux程序设计的特点 9

1.6 Linux下C语言编码的风格 10

1.6.1 GNU编程风格 10

1.6.2 Linux内核编程风格 11

第2章 vi与emacs编辑器 12

2.1 vim概述及应用 12

2.2 emacs简介及应用 17

2.3.1 最简单的文本编辑器ed 21

2.3 Linux下的其他编辑器 21

2.3.2 最容易上手的编辑器pico 23

第3章 gcc编译器 27

3.1 gcc简介 27

3.2 使用gcc 28

3.3 gcc警告提示功能 30

3.4 库依赖 32

3.5 gcc代码优化 33

3.6 加速 34

3.7 gcc常用选项 35

3.8 gcc的错误类型及对策 36

第4章 gdb调试器 38

4.1 gdb概述 38

4.2 使用gdb 41

4.2.1 gdb的命令概貌 42

4.2.2 gdb中运行Linux的shell程序 44

4.2.3 在gdb中运行程序 44

4.2.4 调试已运行的程序 45

4.2.5 暂停/恢复程序运行 45

4.2.6 查看栈信息 52

4.2.7 查看源程序 54

4.2.8 查看运行时数据 56

4.2.9 改变程序的执行 64

第5章 使用make 68

5.1 makefile实例文件分析 68

5.1.1 make与makefile文件的关系 69

5.1.2 在makefile文件中使用变量 71

5.1.3 让make自动推导依赖关系 72

5.1.5v清空目标文件的规则 73

5.1.4 另类风格的makefile文件 73

5.2 makefile文件概述 74

5.3 make书写规则 76

5.3.1 规则举例 76

5.3.2 在规则中使用通配符 77

5.3.3 文件搜寻 78

5.3.4 伪目标 79

5.3.5 多目标 80

5.3.6 静态模式 81

5.3.7 自动生成依赖性 82

5.4 使用命令 84

5.4.1 显示命令 84

5.4.2 执行命令 84

5.4.3 命令出错 85

5.4.4 嵌套执行make 85

5.4.5 定义命令包 87

5.5.1 变量的基础 88

5.5 使用变量 88

5.5.2 赋值变量 89

5.5.3 变量的高级用法 91

5.5.4 追加变量值 93

5.5.5 override指示符 94

5.5.6 多行变量 94

5.5.7 环境变量 95

5.5.8 目标变量 95

5.5.9 模式变量 96

5.6 使用条件判断 96

5.6.1 示例 97

5.6.2 语法 98

5.7 使用函数 100

5.7.1 函数的调用语法 100

5.7.2 字符串处理函数 100

5.7.3 文件名操作函数 104

5.7.4 foreach函数 105

5.7.5 if函数 106

5.7.6 call函数 106

5.7.7 origin函数 107

5.7.8 shell函数 108

5.7.9 控制make的函数 108

5.8 make的运行 109

5.8.1 make的退出码 109

5.8.2 指定makefile文件 110

5.8.3 指定目标 110

5.8.4 检查规则 111

5.8.5 make的参数 112

5.9 隐含规则 115

5.9.1 使用隐含规则 116

5.9.2 隐含规则一览 117

5.9.3 隐含规则使用的变量 119

5.9.4 隐含规则链 121

5.9.5 定义模式规则 121

5.9.6 隐含规则搜索算法 125

5.10 使用make更新函数库文件 126

5.10.1 函数库文件的成员 126

5.10.3 函数库文件的后缀规则 127

5.10.2 函数库成员的隐含规则 127

5.10.4 注意事项 128

第6章 文件的操作 129

6.1 Linux的文件结构 129

6.1.1 目录结构 129

6.1.2 文件和设备 130

6.2 系统调用和设备驱动程序 132

6.3 库函数 132

6.4 硬件设备文件的底层访问 133

6.4.1 write系统调用 134

6.4.2 read系统调用 135

6.4.3 open系统调用 136

6.4.4 creat系统调用 137

6.4.5 访问权限的初始化值 137

6.4.6 umask变量 138

6.4.7 close系统调用 139

6.4.8 ioctl系统调用 140

6.4.9 lseek系统调用 142

6.4.10 fstat、stat和lstat系统调用 144

6.4.11 dup和dup2系统调用 145

6.5 文件和目录的维护 146

6.5.1 chmod系统调用 146

6.5.2 chown系统调用 147

6.5.3 unlink、link、symlink系统调用 147

6.5.4 mkdir和rmdir系统调用 148

6.5.5 chdir系统调用和getcwd函数 148

7.1 流和FILE对象 149

7.2 标准输入、标准输出和标准出错 149

第7章 标准I/O库 149

7.3 缓存 150

7.3.1 全缓存 150

7.3.2 行缓存 150

7.3.3 不带缓存 150

7.4 打开流 152

7.5 读和写流 154

7.5.1 输入函数 154

7.6 每次一行I/O 156

7.5.2 输出函数 156

7.7 标准I/O的效率 157

7.8 二进制I/O 158

7.9 定位流 160

7.10 格式化I/O 161

7.10.1 格式化输出 161

7.10.2 格式化输入 161

7.11 实现细节 162

7.12 临时文件 162

8.1.1 进程的状态及其状态转换 163

第8章 进程控制 163

8.1 进程概述 163

8.1.2 Linux进程简介 165

8.1.3 进程控制 166

8.1.4 进程调度的概念 168

8.2 进程的一般操作 169

8.2.1 获得进程id 169

8.2.2 fork创建进程 170

8.2.3 exec系统调用 172

8.2.4 exit和exit 177

8.2.5 wait系统调用 179

8.2.6 sleep函数调用 187

8.3 进程的特殊操作 187

8.3.1 setuid和setgid系统调用 188

8.3.2 setpgrp和setpgid系统调用 189

8.3.3 chdir系统调用 190

8.3.4 chroot系统调用 190

8.3.5 nice系统调用 191

9.1 Linux下进程通信概述 192

第9章 进程间的通信 192

9.2 管道及有名管道 193

9.2.1 管道概述及相关API应用 194

9.2.2 有名管道概述及相关API应用 201

9.3 信号及其处理 207

9.3.1 信号及信号来源 207

9.3.2 信号的种类 207

9.3.3 进程对信号的响应 209

9.3.4 信号的发送 209

9.3.5 信号的安装(设置信号关联动作) 212

9.3.6 信号集及信号集操作函数 215

9.3.7 信号阻塞与信号未决 216

9.3.8 信号生命周期 216

9.3.9 信号编程注意事项 218

9.3.10 信号应用实例 220

9.4 消息队列 224

9.4.1 消息队列基本概念 225

9.4.2 操作消息队列 225

9.4.3 获得或设置消息队列属性 226

9.4.4 消息队列的限制 229

9.4.5 消息队列应用实例 230

9.5 信号灯概述 232

9.5.1 操作信号灯 233

9.5.2 信号灯的限制 235

9.5.3 竞争问题 236

9.5.4 信号灯应用实例 236

9.6 共享内存 239

9.6.1 内核怎样保证各个进程寻址到同一个共享内存区域的内存页面 240

9.6.2 mmap()及其相关系统调用 241

9.6.3 mmap()范例 242

9.6.4 对mmap()返回地址的访问 246

9.6.5 系统V共享内存原理 249

9.6.6 系统V共享内存API 250

9.6.7 系统V共享内存限制 250

9.6.8 系统V共享内存范例 250

9.7 套接口(Sockets)通信 253

10.1 线程概述 254

第10章 线程简介 254

10.2 创建线程 255

10.2.1 线程创建属性 255

10.2.2 线程创建的Linux实现 256

10.3 线程取消 256

10.3.1 线程取消的语义 256

10.3.2 取消点 257

10.3.3 程序设计方面的考虑 257

10.3.4 与线程取消相关的pthread函数 257

10.4.1 创建和注销 258

10.4 私有数据 258

10.4.2 访问 259

10.4.3 使用范例 259

10.5 互斥锁 261

10.5.1 创建和销毁 261

10.5.2 互斥锁属性 261

10.5.3 锁操作 262

10.5.4 其他 262

10.6.2 等待和激发 263

10.6 条件变量 263

10.6.1 创建和注销 263

10.6.3 其他 264

10.7 异步信号 266

10.8 线程终止 267

10.8.1 线程终止方式 267

10.8.2 线程终止时的清理 267

10.8.3 线程终止的同步及其返回值 268

10.9 杂项 269

10.8.4 关于pthread_exit()和return 269

10.9.1 获得本线程ID 270

10.9.2 判断两个线程是否为同一线程 270

10.9.3 仅执行一次的操作 270

10.9.4 pthread kill other_threads_np() 271

第11章 curses编程简介 273

11.1 curses基本结构 273

11.2 颜色和属性 276

11.3 窗口和基垫 279

11.4 光标和屏幕输出 285

11.5 键盘输入 288

11.5.1vcbreak() 288

11.5.2 延迟模式 288

11.5.3 回显模式和输出延迟 289

11.5.4 功能键转换 289

11.6 菜单 292

11.7 表单 296

11.8.1 汉诺塔游戏 301

11.8 用curses函数编写一个汉诺塔游戏 301

11.8.2 定义数据结构 302

11.8.3 柱的实现 302

11.8.4 盘的实现 302

11.8.5 接收输入的实现 303

11.8.6 移动盘的实现 303

第12章 网络编程 311

12.1 TCP/IP简介 311

12.1.1 IP及相关协议 312

12.1.2 传输控制协议TCP 317

12.1.3 用户数据报协议UDP 319

12.2 Socket编程简介 319

12.2.1 Socket编程相关数据类型定义 320

12.2.2 打开Socket描述符、建立绑定并建立连接 320

12.2.3 Listen()——监听是否有服务请求 321

12.2.4 accept()——连接端口的服务请求 322

1 2.2.5 send()和recv()数据传输 322

12.2.6 sendto()和recvfrom()——利用数据报方式进行数据传输 323

1 2.2.7 close()和shutdown()——结束数据传输 323

12.2.8 DNS——域名服务相关函数 324

12.3 面向连接的客户机/服务器代码实例 324

12.4 ping命令的简单实现 328

12.4.1 ping命令简介 329

12.4.2 ICMP协议简介 329

12.4.3 IP报头格式 330

12.4.4 ICMP报头格式 331

12.4.6 数据统计 333

12.4.5 ICMP数据报 333

12.4.7 完整的ping命令代码 334

第13章 实例一:Linux下CD播放器 339

13.1 音频CD 339

13.2 设备控制 340

13.3 音轨处理 342

13.3.1 计算音轨数目 342

13.3.2 定位音轨位置 344

13.3.3 获取音轨信息 345

13.4.1 播放(play) 347

13.4 CD播放 347

12.4.2 停止(stop) 349

13.4.3 暂停(pause) 350

12.4.4 继续(resume) 351

13.5 音量调节 352

13.6 子码信息 354

第14章 实例二:一个简单的服务器端/客户端程序 357

附录 361

参考文献 371

相关图书
作者其它书籍
返回顶部