微信扫一扫,移动浏览光盘
简介
本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,通过
列举大量的程序实例,使读者很快掌握在Linux平台下进行C程序开发的方
法和技巧,并具备开发大型应用程序的能力。
本书内容翔实,主要包括:Linux平台下c语言及其编程环境的介绍,C
语言编译器、调试工具和自动维护工具的使用方法,进程、文件的相关操
作,输入输出操作和内在管理,C语言网络编程方法等。
本书是作者根据多年来的开发和教学经验并融合大量的编程实例而著
成此书。读者通过本书的学习能够快速地学会Linux下C语言编程,掌握其
中的方法和编程技巧,并能从一开始就养成良好的编程习惯,以便于读者
低起点、高效率地掌握Linux环境下的编程知识。
本书结构合理、概念清晰、实例丰富,并具有限强的启发性和实用性
,适合有一定的C语言基础,需要在Linux系统上编程的程序设计人员阅读
,也可作为本、专科学生的教材或参考书,还可供广大计算机爱好者学习C
语言使用。
目录
第1章 C语言基础和Linux系统概述
1.1 C语言基础
1.1.1 C语言概述
1.1.2 数据类型
1.1.3 运算符和表达式
1.1.4 C程序语句
1.1.5 函数
1.1.6 编译预处理
1.2 Linux系统概述
1.2.1 Linux系统的发展历史
1.2.2 Linux系统特点及主要功能
1.2.3 Linux系统的主要产品
1.3 本章小结
第2章 vim与Emacs编辑器
2.1 vim简介
2.1.1 启动与退出vim
2.1.2 命令行模式的操作
2.1.3 命令行模式切换到输入模式
2.1.4 最后行模式的操作
2.2 Emacs简介
2.2.1 Emacs编辑器的运行和结束
2.2.2 基本操作
2.3 Emacs的C模式
2.3.1 自动缩进
2.3.2 注释
2.3.3 预处理扩展
2.3.4 自动状态
2.3.5 使用Emacs进行编译和调试
2.4 本章小结
第3章 gcc编译器
3.1 gcc编译器简介
3.1.1 Hello World程序
3.1.2 gcc选项概述
3.1.3 警告
3.1.4 优化gcc
3.1.5 调试标记
3.1.6 使用高级gcc选项
3.2 gcc编译流程简介
3.2.1 C预处理器cpp
3.2.2 GUN连接器ld
3.2.3 GUN汇编器as
3.2.4 文件处理器ar
3.2.5 库显示ldd
3.3 其他编译调试工具
3.4 本章小结
第4章 调试工具gdb
4.1 gdb符号调试器简介
4.2 gdb功能详解及其应用
4.2.1 调试步骤
4.2.2 显示数据命令
4.2.3 使用断点
4.2.4 使用观察窗口
4.2.5 查看栈信息
4.2.6 查看源程序
4.2.7 查看运行时数据
4.2.8 改变程序的执行
4.2.9 core dump分析
4.3 其他调试工具
4.4 本章小结
第5章 使用make
5.1 makefile文件简介
5.2 make书写规则
5.2.1 规则举例
5.2.2 在规则中使用通配符
5.2.3 文件搜寻
5.2.4 伪目标
5.2.5 多目标
5.2.6 静态模式
5.2.7 自动生成依赖性
5.3 使用命令
5.3.1 显示命令
5.3.2 执行命令
5.3.3 命令出错
5.3.4 嵌套执行make
5.3.5 定义命令包
5.4 使用变量
5.4.1 变量的基础
5.4.2 赋值变量
5.4.3 变量的高级用法
5.4.4 追加变量值
5.4.5 override指示符
5.4.6 多行变量
5.4.7 环境变量
5.4.8 目标变量
5.4.9 模式变量
5.5 使用条件判断
5.5.1 示例
5.5.2 语法
5.6 使用函数
5.6.1 函数的调用语法
5.6.2 字符串处理函数
5.6.3 文件名操作函数
5.6.4 foreach函数
5.6.5 if 函数
5.6.6 call函数
5.6.7 origin函数
5.6.8 shell函数
5.6.9 控制make的函数
5.7 make的运行
5.7.1 make的退出码
5.7.2 指定makefile文件
5.7.3 指定目标
5.7.4 检查规则
5.7.5 make的参数
5.8 隐含规则
5.8.1 使用隐含规则
5.8.2 隐含规则一览
5.8.3 隐含规则使用的变量
5.8.4 隐含规则链
5.8.5 定义模式规则
5.8.6 隐含规则搜索算法
5.9 使用make更新函数库文件
5.9.1 函数库文件的成员
5.9.2 函数库成员的隐含规则
5.9.3 函数库文件的后缀规则
5.9.4 注意事项
5.10 高级使用
5.10.1 宏的使用
5.10.2 内部规则
5.10.3 make递归
5.10.4 依赖性的计算
5.11 库的使用
5.11.1 创建库和维护库
5.11.2 库的链接
5.12 本章小结
第6章 进程控制
6.1 进程的基本概念
6.1.1 进程基本介绍
6.1.2 进程的属性
6.2 进程控制的相关函数
6.2.1 进程的创建
6.2.2 进程等待
6.2.3 进程的终止
6.2.4 进程ID和进程组ID
6.2.5 system函数
6.3 多个进程间的关系
6.3.1 进程组
6.3.2 时间片的分配
6.3.3 进程的同步
6.4 线程
6.4.1 线程的创建
6.4.2 线程属性的设置
6.4.3 结束线程
6.4.4 线程的挂起
6.4.5 取消线程
6.4.6 互斥
6.5 本章小结
第7章 文件操作
7.1 文件系统简介
7.1.1 文件
7.1.2 文件的相关信息
7.1.3 文件系统
7.2 基于文件描述符的I/O操作
7.2.1 文件的创建、打开与关闭
7.2.2 文件的读写操作
7.2.3 文件的定位
7.3 文件的其他操作
7.3.1 文件属性的修改
7.3.2 文件的其他操作
7.4 特殊文件的操作
7.4.1 目录文件的操作
7.4.2 链接文件的操作
7.4.3 管道文件的操作
7.4.4 设备文件
7.5 本章小结
第8章 输入输出——基于流的操作
8.1 流简介
8.2 基于流的I/O操作
8.2.1 流的打开和关闭
8.2.2 缓冲区的操作
8.2.3 直接输入输出
8.2.4 格式化输入输出
8.2.5 基于字符和行的输入输出
8.3 临时文件
8.4 本章小结
第9章 内存管理
9.1 静态内存与动态内存
9.1.1 静态内存
9.1.2 动态内存
9.2 安全性问题
9.3 内存管理操作
9.3.1 动态内存的分配
9.3.2 动态内存的释放
9.3.3 调整动态内存的大小
9.3.4 分配堆栈
9.3.5 内存锁定
9.4 使用链表
9.5 内存映像I/O
9.5.1 创建内存映像文件
9.5.2 撤销内存映像文件
9.5.3 将内存映像写入外存
9.5.4 改变内存映像文件的属性
9.6 本章小结
第10章 信号及信号处理
10.1 信号及其使用简介
10.1.1 信号简介
10.1.2 信号的使用
10.2 信号操作的相关系统调用
10.2.1 信号处理
10.2.2 信号的阻塞
10.2.3 发送信号
10.3 信号处理的潜在危险
10.4 本章小结
第11章 进程间通信
11.1 进程间通信简介
11.2 共享内存和信号量
11.2.1 SYSV子系统的基本概念
11.2.2 共享内存
11.2.3 信号量
11.3 管道通信
11.3.1 管道的创建和关闭
11.3.2 管道的读写操作
11.4 命名管道
11.4.1 命名管道的创建
11.4.2 命名管道的使用
11.5 消息队列
11.5.1 消息队列的创建与打开
11.5.2 向消息队列中发送消息
11.5.3 从消息队列中接收消息
11.5.4 消息队列的控制
11.6 本章小结
第12章 网络编程
12.1 网络编程基本原理
12.1.1 计算机网络体系结构模式
12.1.2 TCP/IP协议
12.1.3 客户机/服务器模式
12.1.4 套接口编程基础
12.1.5 IP地址转换
12.2 TCP套接口编程
12.2.1 基于TCP的客户机/服务器模式
12.2.2 信号处理
12.2.3 高级技术
12.3 UDP套接口编程
12.3.1 基于UDP的客户机/服务器模式
12.3.2 主要系统调用函数
12.3.3 基于UDP套接口编程实例
12.3.4 可靠性问题
12.3.5 UDP套接口的连接
12.4 原始套接口编程
12.4.1 基本形式和操作
12.4.2 原始套接口编程实例
12.5 网络编程实例
12.6 本章小结
第13章 底层终端编程
13.1 底层终端编程
13.1.1 属性控制
13.1.2 使用terminfo
13.2 伪终端
13.3 本章小结
1.1 C语言基础
1.1.1 C语言概述
1.1.2 数据类型
1.1.3 运算符和表达式
1.1.4 C程序语句
1.1.5 函数
1.1.6 编译预处理
1.2 Linux系统概述
1.2.1 Linux系统的发展历史
1.2.2 Linux系统特点及主要功能
1.2.3 Linux系统的主要产品
1.3 本章小结
第2章 vim与Emacs编辑器
2.1 vim简介
2.1.1 启动与退出vim
2.1.2 命令行模式的操作
2.1.3 命令行模式切换到输入模式
2.1.4 最后行模式的操作
2.2 Emacs简介
2.2.1 Emacs编辑器的运行和结束
2.2.2 基本操作
2.3 Emacs的C模式
2.3.1 自动缩进
2.3.2 注释
2.3.3 预处理扩展
2.3.4 自动状态
2.3.5 使用Emacs进行编译和调试
2.4 本章小结
第3章 gcc编译器
3.1 gcc编译器简介
3.1.1 Hello World程序
3.1.2 gcc选项概述
3.1.3 警告
3.1.4 优化gcc
3.1.5 调试标记
3.1.6 使用高级gcc选项
3.2 gcc编译流程简介
3.2.1 C预处理器cpp
3.2.2 GUN连接器ld
3.2.3 GUN汇编器as
3.2.4 文件处理器ar
3.2.5 库显示ldd
3.3 其他编译调试工具
3.4 本章小结
第4章 调试工具gdb
4.1 gdb符号调试器简介
4.2 gdb功能详解及其应用
4.2.1 调试步骤
4.2.2 显示数据命令
4.2.3 使用断点
4.2.4 使用观察窗口
4.2.5 查看栈信息
4.2.6 查看源程序
4.2.7 查看运行时数据
4.2.8 改变程序的执行
4.2.9 core dump分析
4.3 其他调试工具
4.4 本章小结
第5章 使用make
5.1 makefile文件简介
5.2 make书写规则
5.2.1 规则举例
5.2.2 在规则中使用通配符
5.2.3 文件搜寻
5.2.4 伪目标
5.2.5 多目标
5.2.6 静态模式
5.2.7 自动生成依赖性
5.3 使用命令
5.3.1 显示命令
5.3.2 执行命令
5.3.3 命令出错
5.3.4 嵌套执行make
5.3.5 定义命令包
5.4 使用变量
5.4.1 变量的基础
5.4.2 赋值变量
5.4.3 变量的高级用法
5.4.4 追加变量值
5.4.5 override指示符
5.4.6 多行变量
5.4.7 环境变量
5.4.8 目标变量
5.4.9 模式变量
5.5 使用条件判断
5.5.1 示例
5.5.2 语法
5.6 使用函数
5.6.1 函数的调用语法
5.6.2 字符串处理函数
5.6.3 文件名操作函数
5.6.4 foreach函数
5.6.5 if 函数
5.6.6 call函数
5.6.7 origin函数
5.6.8 shell函数
5.6.9 控制make的函数
5.7 make的运行
5.7.1 make的退出码
5.7.2 指定makefile文件
5.7.3 指定目标
5.7.4 检查规则
5.7.5 make的参数
5.8 隐含规则
5.8.1 使用隐含规则
5.8.2 隐含规则一览
5.8.3 隐含规则使用的变量
5.8.4 隐含规则链
5.8.5 定义模式规则
5.8.6 隐含规则搜索算法
5.9 使用make更新函数库文件
5.9.1 函数库文件的成员
5.9.2 函数库成员的隐含规则
5.9.3 函数库文件的后缀规则
5.9.4 注意事项
5.10 高级使用
5.10.1 宏的使用
5.10.2 内部规则
5.10.3 make递归
5.10.4 依赖性的计算
5.11 库的使用
5.11.1 创建库和维护库
5.11.2 库的链接
5.12 本章小结
第6章 进程控制
6.1 进程的基本概念
6.1.1 进程基本介绍
6.1.2 进程的属性
6.2 进程控制的相关函数
6.2.1 进程的创建
6.2.2 进程等待
6.2.3 进程的终止
6.2.4 进程ID和进程组ID
6.2.5 system函数
6.3 多个进程间的关系
6.3.1 进程组
6.3.2 时间片的分配
6.3.3 进程的同步
6.4 线程
6.4.1 线程的创建
6.4.2 线程属性的设置
6.4.3 结束线程
6.4.4 线程的挂起
6.4.5 取消线程
6.4.6 互斥
6.5 本章小结
第7章 文件操作
7.1 文件系统简介
7.1.1 文件
7.1.2 文件的相关信息
7.1.3 文件系统
7.2 基于文件描述符的I/O操作
7.2.1 文件的创建、打开与关闭
7.2.2 文件的读写操作
7.2.3 文件的定位
7.3 文件的其他操作
7.3.1 文件属性的修改
7.3.2 文件的其他操作
7.4 特殊文件的操作
7.4.1 目录文件的操作
7.4.2 链接文件的操作
7.4.3 管道文件的操作
7.4.4 设备文件
7.5 本章小结
第8章 输入输出——基于流的操作
8.1 流简介
8.2 基于流的I/O操作
8.2.1 流的打开和关闭
8.2.2 缓冲区的操作
8.2.3 直接输入输出
8.2.4 格式化输入输出
8.2.5 基于字符和行的输入输出
8.3 临时文件
8.4 本章小结
第9章 内存管理
9.1 静态内存与动态内存
9.1.1 静态内存
9.1.2 动态内存
9.2 安全性问题
9.3 内存管理操作
9.3.1 动态内存的分配
9.3.2 动态内存的释放
9.3.3 调整动态内存的大小
9.3.4 分配堆栈
9.3.5 内存锁定
9.4 使用链表
9.5 内存映像I/O
9.5.1 创建内存映像文件
9.5.2 撤销内存映像文件
9.5.3 将内存映像写入外存
9.5.4 改变内存映像文件的属性
9.6 本章小结
第10章 信号及信号处理
10.1 信号及其使用简介
10.1.1 信号简介
10.1.2 信号的使用
10.2 信号操作的相关系统调用
10.2.1 信号处理
10.2.2 信号的阻塞
10.2.3 发送信号
10.3 信号处理的潜在危险
10.4 本章小结
第11章 进程间通信
11.1 进程间通信简介
11.2 共享内存和信号量
11.2.1 SYSV子系统的基本概念
11.2.2 共享内存
11.2.3 信号量
11.3 管道通信
11.3.1 管道的创建和关闭
11.3.2 管道的读写操作
11.4 命名管道
11.4.1 命名管道的创建
11.4.2 命名管道的使用
11.5 消息队列
11.5.1 消息队列的创建与打开
11.5.2 向消息队列中发送消息
11.5.3 从消息队列中接收消息
11.5.4 消息队列的控制
11.6 本章小结
第12章 网络编程
12.1 网络编程基本原理
12.1.1 计算机网络体系结构模式
12.1.2 TCP/IP协议
12.1.3 客户机/服务器模式
12.1.4 套接口编程基础
12.1.5 IP地址转换
12.2 TCP套接口编程
12.2.1 基于TCP的客户机/服务器模式
12.2.2 信号处理
12.2.3 高级技术
12.3 UDP套接口编程
12.3.1 基于UDP的客户机/服务器模式
12.3.2 主要系统调用函数
12.3.3 基于UDP套接口编程实例
12.3.4 可靠性问题
12.3.5 UDP套接口的连接
12.4 原始套接口编程
12.4.1 基本形式和操作
12.4.2 原始套接口编程实例
12.5 网络编程实例
12.6 本章小结
第13章 底层终端编程
13.1 底层终端编程
13.1.1 属性控制
13.1.2 使用terminfo
13.2 伪终端
13.3 本章小结
Linux环境下C编程指南
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×