当前位置:主页 > 书籍配套资源 > Linux配套资源
《Linux 高级程序设计(第三版)》源代码,PPT

《Linux 高级程序设计(第三版)》源代码,PPT

  • 更新:2022-05-05
  • 大小:9.12 MB
  • 类别:Linux
  • 作者:杨宗德,、吕光宏,、刘雍
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

《Linux高级程序设计(第三版)》全面介绍Linux编程实战的书籍,作者总结多年教学及工程实践,整合Linux程序设计知识点,涵盖了Linux操作系统下C应用编程所有内容,对每一个知识点都用一个应用程序进行介绍。

内容简介

《Linux高级程序设计(第三版)》围绕Linux操作系统“一切都是文件”的特点,讲述了Linux操作系统下应用层“一段执行单元(进程)对系统资源(CPU资源、各类文件资源)的管理”。详细介绍了Linux系统编程环境及编程工具(GCC/Makefile/GDB)、文件管理(文件属性控制、ANSI以及POSIX标准下文件读写操作、终端编程)、进程管理(创建、退出、执行、等待、属性控制)、进程间通信(管道、消息队列、共享内存)、进程间同步机制(信号量)、进程间异步机制(信号)、线程管理(创建、退出、取消等以及属性控制)、线程间同步(互斥锁、读写锁、条件变量)、线程与信号以及BSD socket编程中的TCP、UDP、原始套接口、网络服务器应用开发等内容,并对Linux系统下的音频应用程序开发做了讲解。

《Linux高级程序设计(第三版)》内容丰富、紧扣应用,适合从事Linux下C应用编程的人员阅读,也适合从事嵌入式Linux开发的人员阅读。

作者简介

"《高级程序设计(第3版)》编著者杨宗德、吕光宏、刘雍。 《高级程序设计(第3版)》围绕Linux操作系统“一切都是文件”的特点,讲述了Linux操作系统下应用层“一段执行单元(进程)对系统资源(CPU资源、各类文件资源)的管理”。详细介绍了Linux系统编程环境及编程工具(GCC/Makefile/GDB)、文件管理(文件属性控制、ANSI以及POSIX标准下文件读写操作、终端编程)、进程管理(创建、退出、执行、等待、属性控制)、进程间通信(管道、消息队列、共享内存)、进程间同步机制(信号量)、进程间异步机制(信号)、线程管理(创建、退出、取消等以及属性控制)、线程间同步(互斥锁、读写锁、条件变量)、线程与信号以及BSD socket编程中的TCP、UDP、原始套接口、网络服务器应用开发等内容,并对Linux系统下的音频应用程序开发做了讲解。 《Linux高级程序设计(第3版)》内容丰富、紧扣应用,适合从事Linux下C应用编程的人员阅读,也适合从事嵌入式Linux开发的人员阅读。"}}

目录

  • 第1章Linux下C语言开发环境
  • 1.1Linux操作系统简介
  • 1.1.1Linux操作系统简介
  • 1.1.2GNU/Linux简介
  • 1.1.3相关术语介绍
  • 1.2Linux开发初步
  • 1.2.1Linux下C程序标准
  • 1.2.2库函数和系统调用
  • 1.2.3在线文档介绍
  • 1.2.4获取错误信息
  • 1.3部分常用工具简介
  • 1.3.1tar打包器
  • 1.3.2Linux常用命令及工具
  • 1.4Linux下编码风格
  • 1.4.1GNU编码规范
  • 1.4.2Linux内核编码规范
  • 第2章Linux下C语言开发工具
  • 2.1常用编辑工具
  • 2.1.1VIM编辑器
  • 2.1.2Emacs编辑器
  • 2.1.3SourceInsight工具
  • 2.2GCC/GDB编译调试工具基础
  • 2.2.1GCC/G++简单介绍
  • 2.2.2GDB调试工具简介
  • 2.2.3使用GCC编译C程序示例
  • 2.2.4使用g++编译C++程序示例
  • 2.2.5GDB演示示例
  • 第3章Linux进程存储管理
  • 3.1Linux程序存储结构与进程结构
  • 3.1.1Linux可执行文件结构
  • 3.1.2Linux进程结构
  • 3.1.3C变量及函数存储类型
  • 3.1.4栈和堆的区别
  • 3.1.5示例:查看代码中各数据存储位置
  • 3.1.6常见内存错误示例分析
  • 3.2ANSIC动态内存管理
  • 3.2.1内存分配的基本方式
  • 3.2.2示例:为程序申请动态内存空间
  • 3.2.3内存数据管理函数
  • 3.3Valgrind及valkyrie内存管理工具
  • 3.3.1Valgrind介绍
  • 3.3.2Valgrind安装与使用
  • 3.3.3valgrind图形化工具Valkyrie
  • 3.3.4内存检测示例
  • 3.4Linux进程环境及系统限制
  • 3.4.1进程与命令行选项及参数
  • 3.4.2进程与环境变量
  • 3.4.3Linux系统限制
  • 3.4.4Linux时间管理
  • 第4章ANSIC文件IO管理
  • 4.1文件及文件流
  • 4.1.1文件与流的基本概念
  • 4.1.2标准流及流主要功能
  • 4.1.3文件流指针
  • 4.1.4缓冲区类型
  • 4.1.5指定流缓冲区
  • 4.2ANSIC文件I/O操作
  • 4.2.1打开关闭文件
  • 4.2.2读/写文件流
  • 4.2.3文件流定位
  • 4.2.4实现文件复制操作示例
  • 4.3流的格式化输入/输出操作
  • 4.3.1printf/scanf函数分析
  • 4.3.2fprintf/fscanf函数分析
  • 4.3.3sprintf函数分析
  • 4.3.4sscanf函数分析
  • 第5章POSIX文件及目录管理
  • 5.1文件描述符与内核文件表项
  • 5.1.1文件流与文件描述符的区别
  • 5.1.2文件表结构图
  • 5.1.3文件描述符与文件流的转换操作
  • 5.2POSIX标准下文件IO管理
  • 5.2.1创建/打开/关闭文件
  • 5.2.2文件控制fcntl
  • 5.2.3读/写文件内容
  • 5.2.4使用POSIXIO实现大于2G文件复制
  • 5.2.5文件定位
  • 5.2.6同步内核缓冲区
  • 5.2.7映射文件到内存
  • 5.2.8锁定/解锁文件
  • 5.3目录流基本操作
  • 5.3.1打开/关闭目录文件
  • 5.3.2读/写目录内容
  • 5.3.3定位目录位置
  • 5.3.4添加和删除目录
  • 5.3.5当前工作路径操作
  • 5.3.6文件流、目录流、文件描述符总结
  • 5.4应用案例:递归文件目录复制操作
  • 5.4.1应用需求及流程图
  • 5.4.2示例代码
  • 第6章普通文件、连接文件及目录文件属性管理
  • 6.1Linux文件系统管理
  • 6.1.1Linux下VFS虚拟文件系统
  • 6.1.2ext2文件系统结构
  • 6.1.3目录文件及常规文件存储方法
  • 6.2Linux系统下文件类型及属性
  • 6.2.1Linux文件类型及权限
  • 6.2.2Linux文件类型
  • 6.2.3文件权限修饰位
  • 6.2.4文件访问权限位
  • 6.3Linux文件属性管理
  • 6.3.1读取文件属性
  • 6.3.2修改文件权限操作
  • 6.3.3修改系统umask值
  • 6.3.4修改文件的拥有者及组
  • 6.3.5用户名/组名与UID/GID的转换
  • 6.3.6创建/删除硬连接
  • 6.3.7符号连接文件特殊操作
  • 6.3.8文件时间属性修改与时间处理
  • 6.4示例:ls?l以排序方式列出目录信息
  • 6.4.1需求及知识点涵盖
  • 6.4.2流程及源代码实现
  • 6.5示例:实现tree系统命令
  • 第7章终端及串口编程
  • 7.1终端设备类型
  • 7.1.1实际的物理串口
  • 7.1.2控制台终端
  • 7.1.3虚拟终端
  • 7.1.4当前终端
  • 7.2终端属性控制
  • 7.2.1读取/设置终端属性信息
  • 7.2.2c_cflag终端控制选项
  • 7.2.3c_lflag终端本地选项
  • 7.2.4c_iflag终端输入选项
  • 7.2.5c_oflag终端输出选项
  • 7.2.6c_cc(NCCS)终端控制字符
  • 7.2.7IOCTLs控制终端
  • 7.2.8进程与终端
  • 7.3串口编程
  • 7.3.1串口物理设备
  • 7.3.2串口终端基本操作
  • 7.3.3串口编程示例
  • 7.4控制台终端应用基础
  • 7.4.1终端属性设置
  • 7.4.2控制命令基本格式
  • 7.4.3从控制台终端获取信息不回显
  • 第8章Linux进程管理与程序开发
  • 8.1进程环境及进程属性
  • 8.1.1程序、进程与进程资源
  • 8.1.2进程状态
  • 8.1.3进程基本属性
  • 8.1.4进程用户属性
  • 8.2进程管理及控制
  • 8.2.1创建进程
  • 8.2.2在进程中运行新代码
  • 8.2.3回收进程用户空间资源
  • 8.2.4回收内核空间资源
  • 8.2.5孤儿进程与僵死进程
  • 8.2.6修改进程用户相关信息
  • 8.3Linux特殊进程
  • 8.3.1守候进程及其创建过程
  • 8.3.2日志信息及其管理
  • 8.3.3守候进程应用示例
  • 第9章进程间通信——管道
  • 9.1进程间通信——PIPE
  • 9.1.1无名管道概念
  • 9.1.2无名管道文件操作的特殊性
  • 9.1.3文件描述符重定向
  • 9.1.4实现who|sort
  • 9.1.5流重定向
  • 9.2进程间通信——FIFO
  • 9.2.1有名管道概念
  • 9.2.2有名管道管理及其特殊性
  • 9.2.3管道基本特点总结
  • 第10章Linux异步信号处理机制
  • 10.1Linux常见信号与处理
  • 10.1.1信号与中断
  • 10.1.2信号基本概念
  • 10.1.3信号的生命周期
  • 10.1.4发送信号
  • 10.2安装信号与捕获信号
  • 10.2.1信号处理办法
  • 10.2.2signal安装信号
  • 10.2.3sigaction安装信号
  • 10.2.4signal的系统漏洞
  • 10.3安装信号与捕获信号
  • 10.3.1设置进程屏蔽信号集
  • 10.3.2获取当前未决的信号
  • 10.3.3信号集合操作
  • 10.3.4信号集合操作应用示例
  • 10.4等待信号
  • 10.4.1pause函数
  • 10.4.2sigsuspend函数
  • 10.5信号应用实例
  • 第11章SystemV进程间通信
  • 11.1SystemVIPC基础
  • 11.1.1key值和ID值
  • 11.1.2拥有者及权限
  • 11.2消息队列
  • 11.2.1消息队列IPC原理
  • 11.2.2Linux消息队列管理
  • 11.2.3消息队列应用实例
  • 11.3信号量通信机制
  • 11.3.1信号量IPC原理
  • 11.3.2Linux信号量管理操作
  • 11.3.3SEM_UNDO参数的应用
  • 11.3.4使用信号量实现生产消费问题
  • 11.4共享内存
  • 11.4.1共享内存IPC原理
  • 11.4.2Linux共享内存管理
  • 11.4.3共享内存的权限管理示例
  • 11.4.4共享内存处理应用示例
  • 第12章Linux多线程编程
  • 12.1线程基本概念与线程操作
  • 12.1.1线程与进程的对比
  • 12.1.2创建线程
  • 12.1.3线程退出与等待
  • 12.1.4取消线程
  • 12.1.5线程与私有数据
  • 12.2线程同步机制
  • 12.2.1互斥锁通信机制
  • 12.2.2条件变量通信机制
  • 12.2.3读写锁通信机制
  • 12.3多线程异步管理——信号
  • 12.3.1线程信号管理
  • 12.3.2线程信号应用实例
  • 12.4线程属性控制
  • 12.4.1获取线程ID
  • 12.4.2初始化线程属性对象
  • 12.4.3获取/设置线程detachstate属性
  • 12.4.4获取/设置线程栈相关属性
  • 第13章LinuxSocket网络编程基础
  • 13.1网络通信基础
  • 13.1.1TCP/IP协议簇基础
  • 13.1.2IPv4协议基础
  • 13.1.3点分十进制IP地址与二进制IP地址转换
  • 13.1.4网络数据包封包与拆包过程
  • 13.1.5字节顺序与大小端问题
  • 13.2BSDSocket网络通信编程
  • 13.2.1BSDTCP通信编程流程
  • 13.2.2BSDSocket网络编程API
  • 13.3使用TCP实现简单聊天程序
  • 13.3.1服务器端代码分析
  • 13.3.2客户器端代码分析
  • 13.4网络调试工具
  • 13.4.1tcpdump的使用
  • 13.4.2netstat工具使用
  • 13.4.3lsof工具使用
  • ……
  • 第14章TCP高级应用
  • 第15章UDP网络编程应用
  • 第16章网络服务器应用设计
  • 第17章本地通信与原始套接口
  • 第18章音频应用程序开发基础

资源下载

资源下载地址1:https://box.lenovo.com/l/k1qv90

相关资源

网友留言