(unix环境高级编程——第二版)学习心得

(unix环境高级编程——第二版)学习心得

ID:13021357

大小:73.50 KB

页数:6页

时间:2018-07-20

(unix环境高级编程——第二版)学习心得_第1页
(unix环境高级编程——第二版)学习心得_第2页
(unix环境高级编程——第二版)学习心得_第3页
(unix环境高级编程——第二版)学习心得_第4页
(unix环境高级编程——第二版)学习心得_第5页
资源描述:

《(unix环境高级编程——第二版)学习心得》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《apue2e》(Unix环境高级编程——第二版)学习心得Unix编程2010-12-1420:46:14阅读169评论0  字号:大中小 订阅总结:这是一本经典的书,对于Unix程序员如此,对于其它程序员也是相当有价值的。先给两张可以概括本书所讨论内容的两张图片:(第二部分再给出说明)第一部分:对本书总体结构的解析本书共分21章。个人认为核心章节为1~13章,其中1~2章为本书的入门简介与本书的特色所在,为何称作“特色所在”呢?因为本书始终都是在遵从那3个标准来进行编写的,即ISOCIEEEPOSIXTheSingleUN

2、IXSpecification这三个标准,每下一行是上一行的超集,对于每一个Unix的c程序员来说都是最重要的编程标准。它决定了你代码的“高度”与“可用性”。第二章的一节还提到了“limits”即“限制”这个概念,这对于可移植性的代码很重要。3~5章,是关于“文件系统”和相关“I/O函数”的讨论,最重要的概念是“文件描述符”。这里面dup和dup2函数很值得”嚼味“,有兴趣可以看看我的另一篇文章”dup2(fd,0)和dup2(0,fd)一样吗?“6章,讨论了一些“系统文件”。7~9章,讨论了“进程”。个人认为下面这张图可以

3、说是对程序的内存布局的典型情况作了很好图示。(见7.6节)10章,讨论了“信号”,它是一种软中断。同时,它为“异步通信”的实现提供了可能。11~12章,是相对于《apue》第一版新增的内容之一。对线程作了讨论。你可以认为“线程”就是一种特殊的“函数”,只不过它能够共享调用进程的资源,能够独立于调用进程(或其它线程)并行执行。当然线程也可以同步,也可以异步执行。还有很多其它有趣的线程特性,可以详细地阅读该书。13章,讨论了“守护进程”的概念与编写方法。至此,本书的核心内容基本讨论完毕。后面14~19章讨论了高级I/O,高级进程

4、间通信,及终端和伪终端的概念。14章的高级I/O,主要留意I/O的“阻塞”和“非阻塞”两种不同形式及各自的应用场合。要特别注意,所谓的阻塞或非阻塞是由“文件”的O_NONBLOCK标志(注意文件描述符起的作用)决定的,而不是I/O函数决定的。另外,这个章节中给出了“锁”的概念,这是进程或线程同步的重要技术。15章讨论了进程间通信的种种方法,个人推荐“管道”和“FIFO”两种,至于“XSIIPC”则不建议使用,理由在书中也说得很清楚。16章讨论了“网络套接字”编程。本想自己画个图来说明,没有时间就以后再说吧。17章讨论了基于1

5、5章中所讨论的“流机制”和16章讨论的“套接字”的两种高级IPC,具体是哪两个,有兴趣自己去看书吧。前者没有什么可移植性,后者倒是很不错的概念。(后者很好体现了制定“套接字”的初衷:既可用于网络的通信,也可用于本机进程的通信)18章讨论了终端I/O。(晕!看过才知道,终端的属性也太多了吧?)19章讨论了“伪终端”,即“PTY”的概念和使用它的初衷。个人认为书中已经说得很透彻了。如果你明白了“主设备”和“从设备”的关系,及伪终端运行在从设备上的原理和用处,那么你的知识体系又扩大很多了。如果你愿意,也可以参考我的另一篇文章“li

6、nux中,tty、pty、pts等终端或伪终端的区别”20章讨论了如何在Unix中构建一个支持并发访问的数据库。21章通过构建一个打印机的CS模型(客户-服务器)来整合前面大部分章节的知识,做一个应用示例。第二部分:本书重点内容讨论1.“标准”的重要性。一句话,没有第一部分所提到的3个标准,就不存在Unix编程了。(个人对“标准”的理解与重视)2.“内核”是什么?能为我们提供什么功能呢?再回过头来,看看一开始我给出的两张图片。第一张是内核在整个系统中所处的位置,我想说的是:内核是对系统所有硬件资源的“管理和组织者”,你可以说

7、它是“管家”。它负责为上层的软件运行提供所需的硬件资源的分配和时间调度的分配等等。可以认为内核包含两大功能:一、驱动程序集合;二、调度系统。第二张是内核所包含的功能模块,也可以说是本书所讨论内容的概括。21个章节中后19个的内容都是对这5个模块的详细展开。3.文件系统的核心概念:“文件描述符”。内核对文件系统的管理都是基于“文件描述符”的。不管是创建文件,移动或复制文件,修改文件,删除文件都使用“文件描述符”来对某个想操作的文件进行引用和表示。4.区别一下信号,进程间通信,和进程间同步,及共享等概念的不同。信号,是一种软中断

8、;它是异步通信的基础。所以它(异步通信)是进程间通信的一种方式(我们主要使用的signal调用,kill调用等等)。而进程间通信还有别的形式,如Pipes即管道(典型的是传统的无名单工管道),FIFOs(又叫有名管道,典型的是双工管道),XSIIPC(包括三种:消息队列,信号量(不是信号的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。