当前位置:主页 > 计算机电子书 > 操作系统 > Linux程序设计下载
Linux高级程序设计(第三版)

Linux高级程序设计(第三版) PDF 超清完整版

  • 更新:2024-03-21
  • 大小:32.8 MB
  • 类别:Linux程序设计
  • 作者:杨宗德,吕光宏
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

《Linux高级程序设计》是面向所有级别的Linux程序员的宝典,深入浅出地覆盖了Linux系统编程的各个方面,从进程管理、信号处理到套接字编程和多线程,书中不仅详细介绍了理论知识,还提供了丰富的代码示例,帮助读者理解和掌握复杂概念,特别值得一提的是,作者通过深入浅出的解释和实用的编程技巧,让读者能够快速提升在Linux环境下的开发能力,书中还涵盖了性能优化和系统安全等高级主题,为求深造的专业人士提供了极具价值的参考,无论是刚入门的新手还是寻求进阶的开发者,《Linux高级程序设计》都是不可多得的学习资源,助你在Linux程序设计的道路上更进一步。

全方位详细介绍Linux程序编写实战演练的书藉

 创作者小结很多年课堂教学及工程项目实践活动

 融合Linux编程设计知识结构图

 包含了Linux电脑操作系统下C运用程序编写全部內容

 每1个知识结构图都用1个手机应用程序开展详细介绍

《Linux高級编程设计(第3版)》紧紧围绕Linux电脑操作系统“一切文档”的特性,叙述了Linux电脑操作系统下网络层“每段实行模块(系统进程)对资源(CPU資源、各种文档資源)的管理方法”。详解了Linux系统软件程序编写自然环境及程序编写小工具(GCC/Makefile/GDB)、文档管理(文件属性操纵、ANSI及其POSIX规范下文档读写操作、终端设备程序编写)、进程管理(建立、撤出、实行、等候、特性操纵)、进程间通信(管路、消息队列、共享内存)、系统进程间同歩体制(信号量)、系统进程间异步体制(数据信号)、进程管理方法(建立、撤出、撤销等及其特性操纵)、进程间同歩(互斥锁、读写能力锁、标准自变量)、进程与数据信号及其BSDsocket程序编写中的TCP、UDP、初始套插口、服务器应用程序开发等內容,并对Linux系统软件下的声频应用开发干了解读。

《Linux高級编程设计(第3版)》主题鲜明、围绕运用,合适从业Linux下C运用程序编写的工作人员阅读文章,也合适从业内嵌式Linux开发设计的工作人员阅读文章。

目录

  • 第1章 Linux下C语言开发环境
  • 1.1 Linux操作系统简介
  • 1.1.1 Linux操作系统简介
  • 1.1.2 GNU/Linux简介
  • 1.1.3 相关术语介绍
  • 1.2 Linux开发初步
  • 1.2.1 Linux下C程序标准
  • 1.2.2 库函数和系统调用
  • 1.2.3 在线文档介绍
  • 1.2.4 获取错误信息
  • 1.3 部分常用工具简介
  • 1.3.1 tar打包器
  • 1.3.2 Linux常用命令及工具
  • 1.4 Linux下编码风格
  • 1.4.1 GNU编码规范
  • 1.4.2 Linux内核编码规范
  • 第2章 Linux下C语言开发工具
  • 2.1 常用编辑工具
  • 2.1.1 VIM编辑器
  • 2.1.2 Emacs编辑器
  • 2.1.3 Source Insight工具
  • 2.2 GCC/GDB编译调试工具基础
  • 2.2.1 GCC/G++简单介绍
  • 2.2.2 GDB调试工具简介
  • 2.2.3 使用GCC编译C程序示例
  • 2.2.4 使用g++编译C++程序示例
  • 2.2.5 GDB演示示例
  • 第3章 Linux进程存储管理
  • 3.1 Linux程序存储结构与进程结构
  • 3.1.1 Linux可执行文件结构
  • 3.1.2 Linux进程结构
  • 3.1.3 C变量及函数存储类型
  • 3.1.4 栈和堆的区别
  • 3.1.5 示例:查看代码中各数据存储位置
  • 3.1.6 常见内存错误示例分析
  • 3.2 ANSI C动态内存管理
  • 3.2.1 内存分配的基本方式
  • 3.2.2 示例:为程序申请动态内存空间
  • 3.2.3 内存数据管理函数
  • 3.3 Valgrind及valkyrie内存管理工具
  • 3.3.1 Valgrind介绍
  • 3.3.2 Valgrind安装与使用
  • 3.3.3 valgrind图形化工具Valkyrie
  • 3.3.4 内存检测示例
  • 3.4 Linux进程环境及系统限制
  • 3.4.1 进程与命令行选项及参数
  • 3.4.2 进程与环境变量
  • 3.4.3 Linux系统限制
  • 3.4.4 Linux时间管理
  • 第4章 ANSI C文件IO管理
  • 4.1 文件及文件流
  • 4.1.1 文件与流的基本概念
  • 4.1.2 标准流及流主要功能
  • 4.1.3 文件流指针
  • 4.1.4 缓冲区类型
  • 4.1.5 指定流缓冲区
  • 4.2 ANSI C文件I/O操作
  • 4.2.1 打开关闭文件
  • 4.2.2 读/写文件流
  • 4.2.3 文件流定位
  • 4.2.4 实现文件复制操作示例
  • 4.3 流的格式化输入/输出操作
  • 4.3.1 printf/scanf函数分析
  • 4.3.2 fprintf/fscanf函数分析
  • 4.3.3 sprintf函数分析
  • 4.3.4 sscanf函数分析
  • 第5章 POSIX文件及目录管理
  • 5.1 文件描述符与内核文件表项
  • 5.1.1 文件流与文件描述符的区别
  • 5.1.2 文件表结构图
  • 5.1.3 文件描述符与文件流的转换操作
  • 5.2 POSIX标准下文件IO管理
  • 5.2.1 创建/打开/关闭文件
  • 5.2.2 文件控制fcntl
  • 5.2.3 读/写文件内容
  • 5.2.4 使用POSIX IO实现大于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.1 Linux文件系统管理
  • 6.1.1 Linux下VFS虚拟文件系统
  • 6.1.2 ext2文件系统结构
  • 6.1.3 目录文件及常规文件存储方法
  • 6.2 Linux系统下文件类型及属性
  • 6.2.1 Linux文件类型及权限
  • 6.2.2 Linux文件类型
  • 6.2.3 文件权限修饰位
  • 6.2.4 文件访问权限位
  • 6.3 Linux文件属性管理
  • 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.2 c_cflag终端控制选项
  • 7.2.3 c_lflag终端本地选项
  • 7.2.4 c_iflag终端输入选项
  • 7.2.5 c_oflag终端输出选项
  • 7.2.6 c_cc[NCCS]终端控制字符
  • 7.2.7 IOCTLs控制终端
  • 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.3 Linux特殊进程
  • 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.1 Linux常见信号与处理
  • 10.1.1 信号与中断
  • 10.1.2 信号基本概念
  • 10.1.3 信号的生命周期
  • 10.1.4 发送信号
  • 10.2 安装信号与捕获信号
  • 10.2.1 信号处理办法
  • 10.2.2 signal安装信号
  • 10.2.3 sigaction安装信号
  • 10.2.4 signal的系统漏洞
  • 10.3 安装信号与捕获信号
  • 10.3.1 设置进程屏蔽信号集
  • 10.3.2 获取当前未决的信号
  • 10.3.3 信号集合操作
  • 10.3.4 信号集合操作应用示例
  • 10.4 等待信号
  • 10.4.1 pause函数
  • 10.4.2 sigsuspend函数
  • 10.5 信号应用实例
  • 第11章 System V进程间通信
  • 11.1 System V IPC基础
  • 11.1.1 key值和ID值
  • 11.1.2 拥有者及权限
  • 11.2 消息队列
  • 11.2.1 消息队列IPC原理
  • 11.2.2 Linux消息队列管理
  • 11.2.3 消息队列应用实例
  • 11.3 信号量通信机制
  • 11.3.1 信号量IPC原理
  • 11.3.2 Linux信号量管理操作
  • 11.3.3 SEM_UNDO参数的应用
  • 11.3.4 使用信号量实现生产消费问题
  • 11.4 共享内存
  • 11.4.1 共享内存IPC原理
  • 11.4.2 Linux共享内存管理
  • 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章 Linux Socket网络编程基础
  • 13.1 网络通信基础
  • 13.1.1 TCP/IP协议簇基础
  • 13.1.2 IPv4协议基础
  • 13.1.3 点分十进制IP地址与二进制IP地址转换
  • 13.1.4 网络数据包封包与拆包过程
  • 13.1.5 字节顺序与大小端问题
  • 13.2 BSD Socket网络通信编程
  • 13.2.1 BSD TCP通信编程流程
  • 13.2.2 BSD Socket网络编程API
  • 13.3 使用TCP实现简单聊天程序
  • 13.3.1 服务器端代码分析
  • 13.3.2 客户器端代码分析
  • 13.4 网络调试工具
  • 13.4.1 tcpdump的使用
  • 13.4.2 netstat工具使用
  • 13.4.3 lsof工具使用
  • 第14章 TCP高级应用
  • 14.1 文件I/O方式比较
  • 14.2 I/O阻塞与非阻塞操作
  • 14.2.1 阻塞与非阻塞基本概念
  • 14.2.2 非阻塞应用示例
  • 14.3 socket多路复用应用
  • 14.3.1 select()与pselect函数介绍
  • 14.3.2 poll与ppoll函数
  • 14.3.3 多路复用应用示例
  • 14.4 控制socket文件描述符属性
  • 14.4.1 set/getsockopt()修改socket属性
  • 14.4.2 fcntl控制socket
  • 14.4.3 ioctl控制文件描述符
  • 第15章 UDP网络编程应用
  • 15.1 UDP网络编程基础
  • 15.1.1 UDP网络通信流程
  • 15.1.2 使用AF_INET实现UDP点对点通信示例
  • 15.2 UDP广播通信
  • 15.2.1 广播地址与广播通信
  • 15.2.2 UDP广播通信示例
  • 15.3 UDP组播通信
  • 15.3.1 组播地址与组播通信
  • 15.3.2 UDP组播应用示例
  • 15.4 socket信号驱动
  • 15.4.1 异步信号处理机制流程
  • 15.4.2 信号驱动方式处理UDP数据
  • 15.5 域名与IP信息解析
  • 15.5.1 Linux下域名解析过程
  • 15.5.2 通过域名返回主机信息
  • 15.5.3 通过域名和IP返回主机信息
  • 15.5.4 getaddrinfo获取主机信息
  • 第16章 网络服务器应用设计
  • 16.1 迭代服务器设计
  • 16.1.1 xinetd服务介绍
  • 16.1.2 时间服务器应用
  • 16.2 多进程/多线程并发服务器设计
  • 16.2.1 多进程实现多客户端
  • 16.2.2 多线程实现多客户端
  • 16.2.3 基于HTTP的多进程并发文件服务器
  • 16.3 进程池/线程池服务器设计
  • 16.3.1 进程池/线程池服务器模型
  • 16.3.2 线程池文件服务器示例
  • 第17章 本地通信与原始套接口
  • 17.1 sock实现本地进程间通信
  • 17.1.1 使用socket实现本地进程通信
  • 17.1.2 使用AF_UNIX实现本机数据流
  • 17.2 本地socket传递文件描述符
  • 17.2.1 sendmsg/recvmsg函数
  • 17.2.2 传递文件描述符示例
  • 17.3 原始套应用程序开发
  • 17.3.1 原始套接口基本原理
  • 17.3.2 原始套接口实现ping应用程序
  • 17.3.3 原始套实现DOS攻击
  • 第18章 音频应用程序开发基础
  • 18.1 WAV音频文件格式分析
  • 18.1.1 数字音频基本参数
  • 18.1.2 WAV音频文件结构
  • 18.1.3 读出WAV格式文件头信息
  • 18.4.4 MP3文件格式
  • 18.2 OSS音频设备编程
  • 18.2.1 OSS音频设备基本架构
  • 18.2.2 OSS音频编程应用示例
  • 18.3 ALSA音频设备编程
  • 18.3.1 ALSA基本架构
  • 18.3.2 alsa-libs基本应用
  • 18.3.3 ALSA音频编程示例

资源下载

资源下载地址1:https://pan.quark.cn/s/84ccfbd24b02

相关资源

网友留言