Linux环境编程:从应用到内核

Linux环境编程:从应用到内核

作者:高峰李彬

出版社:机械工业

出版年:2016年6月

ISBN:9787111536109

所属分类:散文随笔

书刊介绍

《Linux环境编程:从应用到内核》内容简介

本书将按照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移位指令陷阱

相关推荐

微信二维码