《(Unix环境高级编程——第二版)学习心得》.pdf

《(Unix环境高级编程——第二版)学习心得》.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《(Unix环境高级编程——第二版)学习心得》.pdf

apue2e Unix apue2e Unix 《aappuuee22ee》(UUnniixx环境高级编程——第二版)学习心得 Unix编程 2010-12-14 20:46:14 阅读169 评论0 字号:大中小订阅 总结:这是一本经典的书,对于Unix程序员如此,对于其它程序员也是相当有价值的。 先给两张可以概括本书所讨论内容的两张图片:(第二部分再给出说明) 第一部分:对本书总体结构的解析 本书共分21章。 个人认为核心章节为1~13章, 其中1~2章为本书的入门简介与本书的特色所在,为何称作“特色所在”呢? 因为本书始终都是在遵从那3个标准来进行编写的,即 ISO C ISO C IISSOOCC IEEE POSIX IEEE POSIX IIEEEEEEPPOOSSIIXX The Single UNIX Specification The Single UNIX Specification TThheeSSiinngglleeUUNNIIXX SSppeecciiffiiccaattiioonn 这三个标准,每下一行是上一行的超集,对于每一个Unix的c程序员来说都是最重要的编程标准。它决定 了你代码的“高度”与“可用性”。 第二章的一节还提到了“limits”即“限制”这个概念,这对于可移植性的代码很重要。 3~5章,是关于“文件系统”和相关“I/O函数”的讨论,最重要的概念是“文件描述符”。 这里面dup 和dup2 函数很值得”嚼味“,有兴趣可以看看我的另一篇文章”dup2(fd,0)和dup2(0,fd)一样吗? “ 6章,讨论了一些“系统文件”。 7~9章,讨论了“进程”。 个人认为下面这张图可以说是对程序的内存布局的典型情况作了很好图示。(见7.6节) 10章,讨论了“信号”,它是一种软中断。同时,它为“异步通信”的实现提供了可能。 11~12章,是相对于《apue》第一版新增的内容之一。对线程作了讨论。 你可以认为“线程”就是一种特殊的“函数”,只不过它能够共享调用进程的资源,能够独立于调用进程(或其 它线程)并行执行。当然线程也可以同步,也可以异步执行。还有很多其它有趣的线程特性,可以详细地 阅读该书。 13章,讨论了“守护进程”的概念与编写方法。 至此,本书的核心内容基本讨论完毕。 后面14~19章讨论了高级I/O,高级进程间通信,及终端和伪终端的概念。 14章的高级I/O,主要留意I/O的“阻塞”和“非阻塞”两种不同形式及各自的应用场合。要特别注意,所谓的 阻塞或非阻塞是由“文件”的O_NONBLOCK 标志(注意文件描述符起的作用)决定的,而不是I/O 函数决 定的。另外,这个章节中给出了“锁”的概念,这是进程或线程同步的重要技术。 15章讨论了进程间通信的种种方法,个人推荐“管道”和“FIFO”两种,至于“XSI IPC”则不建议使用,理由在 书中也说得很清楚。 16章讨论了“网络套接字”编程。本想自己画个图来说明,没有时间就以后再说吧。 17章讨论了基于15 章中所讨论的“流机制”和16章讨论的“套接字”的两种高级IPC,具体是哪两个,有兴 趣自己去看书吧。前者没有什么可移植性,后者倒是很不错的概念。(后者很好体现了制定“套接字”的初 衷:既可用于网络的通信,也可用于本机进程的通信) 18章讨论了终端I/O。(晕!看过才知道,终端的属性也太多了吧?) 19章讨论了“伪终端”,即“PTY”的概念和使用它的初衷。个人认为书中已经说得很透彻了。 如果你明白了“主设备”和“从设备”的关系,及伪终端运行在从设备上的原理和用处,那么你的知识体系又扩 大很多了。 如果你愿意,也可以参考我的另一篇文章“linux中,tty、pty、pts等终端或伪终端的区别” 20章讨论了如何在Unix中构建一个支持 并发访问的数据库。 21章通过构建一个打印机的CS 模型(客户-服务器)来整合前面大部分章节的知识,做一个应用示例。 第二部分:本书重点内容讨论 1.“标准”的重要性。一句话,没有第一部分所提到的3 个标准,就不存在Unix 编程了。(个人对“标准”的 理解与重视) 2.“内核”是什么?能为我们提供什么功能呢? 再回过头来,看看一开始我给出的两张图片。 第一张是内核在整个系统中所处的位置,我想说的是:内核是对系统所有硬件资源的“管理和组织者”,你 可以说它是“管家”。它负责为上层的软件运行提供所需的硬件资源的分配和时间调度的分配等等。 可以认为内核包含两大功能:一、驱动程序集合;二、调度系统。 第二张是内核所包含的功能模块,也可以说是本书所

文档评论(0)

ucut + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档