Linux高级程序设计(第3版) 封面

Linux高级程序设计(第3版)

评分 3.6
字数
95.3万字
章节数
18
ISBN
9787115292902

标签

内容简介

《Linux高级程序设计(第3版)》由杨宗德、吕光宏、刘雍编著,是面向Linux应用层系统编程的实战型教材。全书以Linux操作系统“一切都是文件”的设计特点为切入点,围绕“一段执行单元(进程)如何管理系统资源(CPU资源与各类文件资源)”这一主线展开,把庞杂的系统调用按资源管理逻辑重新组织,方便读者建立整体框架。 内容涵盖Linux下C应用编程的各个层面:系统编程环境与工具链(GCC、Makefile、GDB),文件与目录管理(文件属性控制、ANSI与POSIX标准下的文件读写、终端与串口编程),进程管理与程序开发(进程创建、退出、执行、等待、属性控制),进程间通信(管道、消息队列、共享内存),进程间同步机制(信号量)与异步机制(信号),多线程编程(线程创建、退出、取消及属性控制,互斥锁、读写锁、条件变量),线程与信号的配合,以及BSD socket网络编程中的TCP、UDP、原始套接口和网络服务器应用设计,最后一章还讲解了Linux下音频应用程序开发的基础内容。 本书的特点在于紧扣应用:每个知识点基本都配有一个可直接运行的小应用程序,代码与实例多取自真实的系统编程场景,而非抽象的概念演示。作者长期从事教学与工程实践,章节编排由工具到文件、由进程到线程、由本地通信到网络通信,层层递进。全书共18章,486页,适合作为高校Linux编程课程的配套读物,也适合有一定C基础、希望系统掌握Linux系统接口的自学者按章节顺序推进使用。

编辑推荐

市面上讲Linux的书写界面操作的很多,讲系统接口的也不少,但大多按API手册的方式逐个罗列函数,读完脑子里是一堆散件。这本书的价值恰在于给出了一个统一的组织逻辑——“一切都是文件”,把标准I/O、目录操作、设备文件、终端、socket统统放在“文件资源”这同一个篮子里,再让“进程”站到资源使用者的位置上去。框架立住了,后面读APUE之类的经典也就有了挂靠点。 另一个可称道之处是代码量大且成体系。作者多年教学与工程实践积累的例程,多数是可以编译、可以直接看现象的小程序,而不是伪代码。对自学者来说,先跑通、再改、再理解,比先啃定义要有效得多。第3版在进程、线程、网络三块尤其扎实,TCP高级应用与网络服务器应用设计这两章,把从socket创建到并发服务模型的链条补完整了,对做嵌入式网关、后台服务的读者很有用。 当然也要有心理准备:这是一本教材式的书,语言朴素,不炫技,例子偏工程而少趣味;部分环境描述以Linux 2.6内核、GCC 4.0/GDB 6.3为基准,今天在较新的发行版上运行,个别编译选项和调试行为需要自己微调。把这一点当成练习也无妨——能把老代码在新系统上跑通,本身就是对理解程度的检验。总体而言,它是中文Linux系统编程书里少有的“能顺着读完”的一本。

适合谁读

适合

  • 有C语言基础、想系统学习Linux系统接口的程序员
  • 需要在嵌入式Linux平台上做应用开发的工程师
  • 高校开设Linux程序设计、操作系统实践课程的学生
  • 从Windows平台转到Linux做后台服务开发的技术人员

不适合

  • 完全零编程基础的读者,需要先补C语言与命令行
  • 只想了解Linux桌面使用与运维命令的读者

阅读建议

  1. 先读完第1、2章,把GCC、Makefile、GDB三件工具用熟,后面的例程才好动手
  2. 每章的示例都亲自编译运行,并尝试修改参数观察系统行为变化
  3. 重点吃透第8至12章的进程与线程部分,这是全书承上启下的核心
  4. 遇到与新版内核、新版GCC不一致的报错,记录差异并查阅手册,当作额外练习

出版社简介

人民邮电出版社 中国 · 成立于 1953 年

人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。

目录

  1. 第1章 Linux下C语言开发环境
  2. 第2章 Linux下C语言开发工具
  3. 第3章 Linux进程存储管理
  4. 第4章 ANSI C文件I/O管理
  5. 第5章 POSIX文件及目录管理
  6. 第6章 普通文件、连接文件及目录文件属性管理
  7. 第7章 终端及串口编程
  8. 第8章 Linux进程管理与程序开发
  9. 第9章 进程间通信——管道
  10. 第10章 Linux异步信号处理机制
  11. 第11章 System V进程间通信
  12. 第12章 Linux多线程编程
  13. 第13章 Linux Socket网络编程基础
  14. 第14章 TCP高级应用
  15. 第15章 UDP网络编程应用
  16. 第16章 网络服务器应用设计
  17. 第17章 本地通信与原始套接口
  18. 第18章 音频应用程序开发基础

常见问题

这本书适合零基础学Linux的人吗?
不太适合。书中默认读者已经会写C、会用命令行、看得懂简单的Makefile,一上来就讲系统调用。建议先用一本Linux入门书把shell和常用命令练熟,再回来看这本。
这本书讲内核开发还是应用开发?
讲应用层的Linux系统编程,也就是在用户态调用系统接口写程序,不涉及内核模块与驱动开发。书中讨论的“进程管理资源”是从用户程序视角出发的。
第3版和之前版本有什么差别?
该书第1版2008年出版,第2版2009年出版,第3版2012年出版,页数与篇幅逐版增加。第3版补充了终端编程、原始套接口、网络服务器应用设计和音频应用开发等内容,结构也更完整。
书里的例子能用在新版发行版上吗?
大部分可以,但书中环境以较老的Linux内核与GCC 4.0、GDB 6.3为基准。在新版GCC下可能遇到警告或默认标准变化,按报错提示调整编译选项通常即可通过。
读完这本之后接什么书比较好?
可以继续读《UNIX环境高级编程》(APUE)做系统性补全,或转向《Linux多线程服务端编程》《UNIX网络编程》深入并发与网络方向,也可以直接读内核相关书籍。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同一作者

同类高分