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

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

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.953 评价豆瓣读书
春暖花开季 恰是读书时满500减300、满200减120、满100减60活动详情

作品简介

本书将按照APUE的脉络,以笔者多年的Linux开发经验为基础,从以下四个方面深入讲解Linux环境编程:接口的功能使用介绍、接口缺陷分析、接口的内部实现机制、接口的错误码分析。本书将从一个全新的角度带领读者重新进入Linux环境编程,从应用出发,深入内核源码,研究Linux各接口的工作机制和原理。让读者不仅知其然,还知其所以然。

作者:高峰,李彬

作品目录

  1. 前言
  2. 第0章 基础知识
  3. 0.1 一个Linux程序的诞生记
  4. 0.2 程序的构成
  5. 0.3 程序是如何“跑”的
  6. 0.4 背景概念介绍
  7. 第1章 文件I/O
  8. 1.1 Linux中的文件
  9. 1.2 打开文件
  10. 1.3 creat简介
  11. 1.4 关闭文件
  12. 1.5 文件偏移
  13. 1.6 读取文件
  14. 1.7 写入文件
  15. 1.8 文件的原子读写
  16. 1.9 文件描述符的复制
  17. 1.10 文件数据的同步
  18. 1.11 文件的元数据
  19. 1.12 文件截断
  20. 第2章 标准I/O库
  21. 2.1 stdin、stdout和stderr
  22. 2.2 I/O缓存引出的趣题
  23. 2.3 fopen和open标志位对比
  24. 2.4 fdopen与fileno
  25. 2.5 同时读写的痛苦
  26. 2.6 ferror的返回值
  27. 2.7 clearerr的用途
  28. 2.8 小心fgetc和getc
  29. 2.9 注意fread和fwrite的返回值
  30. 2.10 创建临时文件
  31. 第3章 进程环境
  32. 3.1 main是C程序的开始吗
  33. 3.2 “活雷锋”exit
  34. 3.3 atexit介绍
  35. 3.4 小心使用环境变量
  36. 3.5 使用动态库
  37. 3.6 避免内存问题
  38. 3.7 “长跳转”longjmp
  39. 第4章 进程控制:进程的一生
  40. 4.1 进程ID
  41. 4.2 进程的层次
  42. 4.3 进程的创建之fork()
  43. 4.4 进程的创建之vfork()
  44. 4.5 daemon进程的创建
  45. 4.6 进程的终止
  46. 4.7 等待子进程
  47. 4.8 exec家族
  48. 4.9 system函数
  49. 4.10 总结
  50. 第5章 进程控制:状态、调度和优先级
  51. 5.1 进程的状态
  52. 5.2 进程调度概述
  53. 5.3 普通进程的优先级
  54. 5.4 完全公平调度的实现
  55. 5.5 普通进程的组调度
  56. 5.6 实时进程
  57. 5.7 CPU的亲和力
  58. 第6章 信号
  59. 6.1 信号的完整生命周期
  60. 6.2 信号的产生
  61. 6.3 信号的默认处理函数
  62. 6.4 信号的分类
  63. 6.5 传统信号的特点
  64. 6.6 信号的可靠性
  65. 6.7 信号的安装
  66. 6.8 信号的发送
  67. 6.9 信号与线程的关系
  68. 6.10 等待信号
  69. 6.11 通过文件描述符来获取信号
  70. 6.12 信号递送的顺序
  71. 6.13 异步信号安全
  72. 6.14 总结
  73. 第7章 理解Linux线程(1)
  74. 7.1 线程与进程
  75. 7.2 进程ID和线程ID
  76. 7.3 pthread库接口介绍
  77. 7.4 线程的创建和标识
  78. 7.5 线程的退出
  79. 7.6 线程的连接与分离
  80. 7.7 互斥量
  81. 7.8 读写锁
  82. 7.9 性能杀手:伪共享
  83. 7.10 条件等待
  84. 第8章 理解Linux线程(2)
  85. 8.1 线程取消
  86. 8.2 线程局部存储
  87. 8.3 线程与信号
  88. 8.4 多线程与fork()
  89. 第9章 进程间通信:管道
  90. 9.1 管道
  91. 9.2 命名管道FIFO
  92. 9.3 读写管道文件
  93. 9.4 使用管道通信的示例
  94. 第10章 进程间通信:System V IPC
  95. 10.1 System V IPC概述
  96. 10.2 System V消息队列
  97. 10.3 System V信号量
  98. 10.4 System V共享内存
  99. 第11章 进程间通信:POSIX IPC
  100. 11.1 POSIX IPC概述
  101. 11.2 POSIX消息队列
  102. 11.3 POSIX信号量
  103. 11.4 内存映射mmap
  104. 11.5 POSIX共享内存
  105. 第12章 网络通信:连接的建立
  106. 12.1 socket文件描述符
  107. 12.2 绑定IP地址
  108. 12.3 客户端连接过程
  109. 12.4 服务器端连接过程
  110. 12.5 TCP三次握手的实现分析
  111. 第13章 网络通信:数据报文的发送
  112. 13.1 发送相关接口
  113. 13.2 数据包从用户空间到内核空间的流程
  114. 13.3 UDP数据包的发送流程
  115. 13.4 TCP数据包的发送流程
  116. 13.5 IP数据包的发送流程
  117. 13.6 底层模块数据包的发送流程
  118. 第14章 网络通信:数据报文的接收
  119. 14.1 系统调用接口
  120. 14.2 数据包从内核空间到用户空间的流程
  121. 14.3 UDP数据包的接收流程
  122. 14.4 TCP数据包的接收流程
  123. 14.5 TCP套接字的三个接收队列
  124. 14.6 从网卡到套接字
  125. 第15章 编写安全无错代码
  126. 15.1 不要用memcmp比较结构体
  127. 15.2 有符号数和无符号数的移位区别
  128. 15.3 数组和指针
  129. 15.4 再论数组首地址
  130. 15.5 “神奇”的整数类型转换
  131. 15.6 小心volatile的原子性误解
  132. 15.7 有趣的问题:“x==x”何时为假?
  133. 15.8 小心浮点陷阱
  134. 15.9 Intel移位指令陷阱
载入中

大家都喜欢