注重体验与质量的电子书资源下载网站
分类于: 编程语言 计算机基础 云计算&大数据 设计 职场办公
简介
Linux环境编程:从应用到内核 豆 8.8分
资源最后更新于 2020-03-29 02:21:44
作者:高峰李彬
出版社:出版社机械工业出版社
出版日期:2016-06
ISBN:9787111536109
文件格式: pdf
简介· · · · · ·
本书将按照APUE的脉络,以笔者多年的Linux开发经验为基础,从以下四个方面深入讲解Linux环境编程:接口的功能使用介绍、接口缺陷分析、接口的内部实现机制、接口的错误码分析。本书将从一个全新的角度带领读者重新进入Linux环境编程,从应用出发,深入内核源码,研究Linux各接口的工作机制和原理。让读者不仅知其然,还知其所以然。作者:高峰,李彬
目录
前言
第0章 基础知识
0.1 一个Linux程序的诞生记
0.2 程序的构成
0.3 程序是如何“跑”的
0.4 背景概念介绍
第1章 文件I/O
1.1 Linux中的文件
1.2 打开文件
1.3 creat简介
1.4 关闭文件
1.5 文件偏移
1.6 读取文件
1.7 写入文件
1.8 文件的原子读写
1.9 文件描述符的复制
1.10 文件数据的同步
1.11 文件的元数据
1.12 文件截断
第2章 标准I/O库
2.1 stdin、stdout和stderr
2.2 I/O缓存引出的趣题
2.3 fopen和open标志位对比
2.4 fdopen与fileno
2.5 同时读写的痛苦
2.6 ferror的返回值
2.7 clearerr的用途
2.8 小心fgetc和getc
2.9 注意fread和fwrite的返回值
2.10 创建临时文件
第3章 进程环境
3.1 main是C程序的开始吗
3.2 “活雷锋”exit
3.3 atexit介绍
3.4 小心使用环境变量
3.5 使用动态库
3.6 避免内存问题
3.7 “长跳转”longjmp
第4章 进程控制:进程的一生
4.1 进程ID
4.2 进程的层次
4.3 进程的创建之fork()
4.4 进程的创建之vfork()
4.5 daemon进程的创建
4.6 进程的终止
4.7 等待子进程
4.8 exec家族
4.9 system函数
4.10 总结
第5章 进程控制:状态、调度和优先级
5.1 进程的状态
5.2 进程调度概述
5.3 普通进程的优先级
5.4 完全公平调度的实现
5.5 普通进程的组调度
5.6 实时进程
5.7 CPU的亲和力
第6章 信号
6.1 信号的完整生命周期
6.2 信号的产生
6.3 信号的默认处理函数
6.4 信号的分类
6.5 传统信号的特点
6.6 信号的可靠性
6.7 信号的安装
6.8 信号的发送
6.9 信号与线程的关系
6.10 等待信号
6.11 通过文件描述符来获取信号
6.12 信号递送的顺序
6.13 异步信号安全
6.14 总结
第7章 理解Linux线程(1)
7.1 线程与进程
7.2 进程ID和线程ID
7.3 pthread库接口介绍
7.4 线程的创建和标识
7.5 线程的退出
7.6 线程的连接与分离
7.7 互斥量
7.8 读写锁
7.9 性能杀手:伪共享
7.10 条件等待
第8章 理解Linux线程(2)
8.1 线程取消
8.2 线程局部存储
8.3 线程与信号
8.4 多线程与fork()
第9章 进程间通信:管道
9.1 管道
9.2 命名管道FIFO
9.3 读写管道文件
9.4 使用管道通信的示例
第10章 进程间通信:System V IPC
10.1 System V IPC概述
10.2 System V消息队列
10.3 System V信号量
10.4 System V共享内存
第11章 进程间通信:POSIX IPC
11.1 POSIX IPC概述
11.2 POSIX消息队列
11.3 POSIX信号量
11.4 内存映射mmap
11.5 POSIX共享内存
第12章 网络通信:连接的建立
12.1 socket文件描述符
12.2 绑定IP地址
12.3 客户端连接过程
12.4 服务器端连接过程
12.5 TCP三次握手的实现分析
第13章 网络通信:数据报文的发送
13.1 发送相关接口
13.2 数据包从用户空间到内核空间的流程
13.3 UDP数据包的发送流程
13.4 TCP数据包的发送流程
13.5 IP数据包的发送流程
13.6 底层模块数据包的发送流程
第14章 网络通信:数据报文的接收
14.1 系统调用接口
14.2 数据包从内核空间到用户空间的流程
14.3 UDP数据包的接收流程
14.4 TCP数据包的接收流程
14.5 TCP套接字的三个接收队列
14.6 从网卡到套接字
第15章 编写安全无错代码
15.1 不要用memcmp比较结构体
15.2 有符号数和无符号数的移位区别
15.3 数组和指针
15.4 再论数组首地址
15.5 “神奇”的整数类型转换
15.6 小心volatile的原子性误解
15.7 有趣的问题:“x==x”何时为假?
15.8 小心浮点陷阱
15.9 Intel移位指令陷阱