Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5513865
  • 博文数量: 922
  • 博客积分: 19333
  • 博客等级: 上将
  • 技术积分: 11226
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 14:33
文章分类

全部博文(922)

文章存档

2023年(1)

2020年(2)

2019年(1)

2017年(1)

2016年(3)

2015年(10)

2014年(17)

2013年(49)

2012年(291)

2011年(266)

2010年(95)

2009年(54)

2008年(132)

分类: LINUX

2011-12-20 21:44:52

++++++APUE读书笔记-前言++++++
 
 本文主要介绍在UNIX环境下编程所需要了解的内容,可做为UNIX/Linux环境下编程的学习资料,或者需要时查阅的参考资料。本文在后面的叙述中必要时可能会被称做“本书”,以明确表示讨论范围是整个内容而不是其中的某一章节,在本前言部分“本文”就是“本书”。 
 如果转载本文,希望您能注明出处和作者;如果将本文用于商业行为,希望您能先通知我;希望大家能够互相体谅,尊重对方的劳动成果。^_^

一、资料的获取
================================================
 本文所基于的原版书籍,其基本信息如下:
Advanced Programming in the UNIX® Environment: Second Edition
By W. Richard Stevens, Stephen A. Rago
...............................................
Publisher: Addison Wesley Professional
Pub Date: June 17, 2005
ISBN: 0201433079
Pages: 960
 获取原版电子书籍的方法:
1,不含目录栏的版本:
 
2,含有目录栏的版本:
 
3,离线版本:
 因为无法确保以上网址稳定性,所以建议运行类似如下的linux/unix命令,保留一份自制的、相应网址的、离线阅读版本(需要花费下载时间):
#wget \
--recursive \
--no-clobber \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=windows \
--domains book.chinaunix.net \
--no-parent \

 另外,这里给出之前制做过的一份离线html阅读版本的下载链接:



二、背景
================================================
 APUE是对本文所基于的那本书的、比较流行的简称,根据前面给出的参考资料名称可知,它的全称叫做"Advanced Programming in the UNIX Environment",也就是“UNIX环境高级编程”。有许多经典的学习资料都有它们自己独特的简称,由于后面所提到的一个原因,这些内容不在本前言范围内给出,在本书后序中会列出一些。
 说是"UNIX环境",其实本文只是在UNIX环境的背景下讲述的,本文范围实际不仅限于“UNIX环境”,它对于许多UNIX衍生系列的系统、非UNIX系列的系统上的编程,甚至是当前最流行的绝大部分“操作系统”中的一些基本原理,都有所涉及。
 本文是09年本人进入公司之后,3个月后开始阅读的,因为网上没有发现中文版的电子书籍,于是在10月份阅读第二遍的时候开始,为了再次复习方便,打算做的读书笔记,不知不觉变成几乎的翻译,因此前几章更像是读书笔记和总结。后序中提到过,对APUE通读一遍之后,收获是“看一本书的价值,并不是为了能够或者尽快看完一遍才存在的”,所以将APUE通读了不止三遍,这期间导致了本文开始是读书笔记,后来又变成了完整的翻译,再后来又加入了一些自己的总结。
 对于一些读者来说,这里是浪费时间的前言;但是对于另外一些读者,这里也是“消遣”的部分。所以,这个前言部分,包含了一点少量的“消遣”,但更注重对本文的说明,更多“消遣”的内容放在后序,而后序部分会在整理完的此文的最后给出。因为有足够的时间,所以那时会给读者带来更多的“消遣”;因为有过读者耐心的阅读,所以一定会从那些简单的“消遣”中,体会到更多的乐趣。^_^

三、说明
================================================
 言归正传,若以每天一节的进度来看此书(在本人而言,这已经很快了),那么,真正进入正文之前,我愿花上至少三天时间停在这里,反复阅读思考并记住这里所强调的内容,通过这样来确定继续下去的决心,以及阅读本书尽可能正确的方法。^_^
1、注意
a)阅读方式。
 本书可以作为“字典”,供日常工作和学习等需要的时候查阅;根据读者所掌握的知识程度,本书对每个章节的阅读次序也没明确的要求;若想获得相对体系的知识结构,建议读者还是从前向后依次阅读;建议不以阅读完本文而是以尽量读懂每次阅读时能够读懂之处为目的看书;相信读者自己,一定能够在阅读的过程中,判断出最适合自己的、阅读本文的方式。
b)本书格式。
 为了增加本文的通用性、能够用尽可能多的方式阅读本文、以及减少不同格式文件所带来的效果差异,本文将包括图形、表格在内的内容,都采用文本格式表示出来(如果愿意,可以将本文下载到手机上当做小说来阅读^_^)。也因此,前面目录部分给出的相应章节,不可能在目录处通过链接方式直接跳转过去,需要用搜索字符串的方式跳转;而像一些图形、表格这类非文字的内容,用文本表示之后,在网页上面显示可能会出现错位的情况,如果这样,将它们复制到本地、粘贴成普通文本格式、应该能够看到原貌。
c)翻译情况。
 如前面及后序所说,本书开始只是读书笔记,后来逐渐变成了翻译,再后来又添加了一些额外的内容,所以并不是严格的翻译。主要是,前面的章节有些地方只对关键的知识进行了总结和翻译(后来每个章节总结情况也渐渐详细,以至后面内容变成翻译);后面的第20章、第21章基本没有翻译;各章节中有些与知识关系不大的内容或者过于冗余的部分略去翻译(必要时也进行了简短说明)。对于以上内容,如果想要参考原文,每章节均给出了原文链接。这样做的具体原因放在后序中,在这里只是想读者能够了解,这些差异之处,最终不会使原书述内容缺失,也不会对其理解造成负面的影响。
d)适用范围。
 本书内容属于计算机专业类型,阅读本书需要了解一些C语言的基础知识,其余并没有必需的要求。如果读者具有一点Linux/Unix系统的使用或者编程经验、具有一些操作系统、网络、编译、数据库等方面背景知识的话,阅读本书可能会更轻松一些。在本文后面,本书的真正正文之前,加入了一些根据本人之前总结的,感觉会会有助于阅读本书的预备知识。通过它们,至少可以在真正开始之前,就能掌握到一些比较实用的也便于理解本书内容的知识。
e)阅读建议
 这里给出阅读时候的一点建议,希望对读者有些帮助。尽管最理想的情况是,如果我们看过了前面的内容,就理解当前看的内容,理解了当前的内容,也将会在阅读后面的内容时有所理解。但是实际的情况似乎不是这样,很难就这样按部就班地,线性的方式来获取知识。往往前面的知识,会引用后面才会讲到的一些内容,而后面的内容又依赖于对前面的内容的理解。所以,对于此书,不用为无法看懂当前的内容而困扰,能理解便理解,不能理解,那么就先硬着头皮将书看完,当看完一遍之后,再次阅读,相信会对书中所描述的知识结构有更进一步的理解。
f)组织结构。
 对比下面列出的目录以及原文可知,本书所组织的一些章节题目和原文不是严格对应,但是没有太大变化,不会影响实质内容。大致如下:原文有些章节内容过少(只有几行),在本书中将其合并到一个章节中;有的章节内容又过多,本文将其拆分成多个章节。因为对章节的组织进行了一些整理,使得每个章节的内容量相差不会太多,阅读本文便可以按照每次一个章节的速度来阅读。为便于比较,以及区分不同的内容,也在文中加入了一些标记,即本文每一小节开始用“++++++”标识,相应原文的小节题目下用“======”隔开,这样有助阅读。虽然章节和原文有些不对应,但是章是和原文是一一对应的,在本前言后面,分别对每一章所讲述的大致内容进行简单介绍,便于查阅时候的定位。
*)其它
 更多的补充性的内容可能会在今后的后序中做出说明。
2、问题
a)翻译错误。
 本人英文水平有限,在整理的过程中,发现过有些地方翻译的过于机械,并存在一些错误,所以每节结尾都注明了原文的链接,希望能尽可能减少没有修正的错误带来的误解。
b)链接可用性。
 文中给出的网络链接,不能保证其长久稳定,但从每节链接的名称上可以看出,该节相应内容对应的是原书的哪个章节。若链接不可用,可以用前面给出的离线版本的备用网址下载、也可以自己上网搜索或向本人后面给出的两个备用邮箱发送电子邮件(建议少发邮件,因为本人时间精力有限,但是如果可能,我会尽量回复);如果邮箱也不可用,有一个最可靠的方法就是,读者自己购买一本原版英文书籍;然后根据链接得知的章节号,将获得的书籍与此文参照比对。^_^
c)图形和注释。
 本来想把包括示意图、表格、代码注释等其中所有的英文文字都翻译过来,可是在翻译了一些之后发现,这个部分最好还是保留原文的内容。这样,当出现误解之时,还可能可以根据此处,防止和纠正一些本文正文中存在的翻译错误,不会带来完全的误解。
d)文内引用。
 原文对文内的某些图形和代码在其它章节中通过链接方式交叉引用,这一点在本文中没有体现出来。但是也在原文中交叉引用的位置在本文中的相应位置有所说明,并将这个缺陷做为对读者求学耐心程度的考验,以及本人某些懒惰的惩罚吧。:-P
e)排版和错字。
 本书并不是以出版为目的,所以其中错别字,以及格式方面处理的有些粗糙。但是尽量保证,这方面的错误不会造成理解上的误解,这一点,请读者体谅。
f)知识的理解。
 学习过程中,总是出现各种问题。有些在学习过程中让本人觉得比较费解的地方,发现的时候都尽量用"???"来标记了。这些地方,希望读者注意。
*)其它
 除了以上所列出的,肯定还有更多不知的、错误以及不足之处,如果能够给出更好的修正建议和帮助,在此谢谢朋友们的支持。

四、主要内容
================================================
 以下用目录方式给出了本文讲述的主要内容,可以将其做为搜索的关键字,定位到正文中特定的位置。在稍后会对每章所讲述的内容进行简单介绍,以便于查阅和学习参照。
APUE读书笔记-前言
APUE读书笔记-前言-说明(1)
APUE读书笔记-前言-说明(2)
APUE读书笔记-00预备知识(01)-Linux文件系统以及目录结构简介
APUE读书笔记-00预备知识(02)-Linux命令简介
APUE读书笔记-00预备知识(03)-Linux下C语言编程简介
APUE读书笔记-00预备知识(04)-Linux系统中程序库文件简介
APUE读书笔记-00预备知识(05)-预留
APUE读书笔记-01UNIX系统概述(1)
APUE读书笔记-01UNIX系统概述(2)
APUE读书笔记-01UNIX系统概述(3)
APUE读书笔记-02UNIX标准和实现-01简介
APUE读书笔记-02UNIX标准和实现-02UNIX标准
APUE读书笔记-02UNIX标准和实现-03UNIX实现
APUE读书笔记-02UNIX标准和实现-04标准和实现的关系
APUE读书笔记-02UNIX标准和实现-05一些限制
APUE读书笔记-02UNIX标准和实现-06选项
APUE读书笔记-02UNIX标准和实现-07特征测试宏
APUE读书笔记-02UNIX标准和实现-08系统基本类型
APUE读书笔记-02UNIX标准和实现-09各标准之间冲突与总结
APUE读书笔记-03文件输入输出(1)
APUE读书笔记-03文件输入输出(2)
APUE读书笔记-03文件输入输出(3)
APUE读书笔记-03文件输入输出(4)
APUE读书笔记-03文件输入输出(5)
APUE读书笔记-04文件和目录(1)
APUE读书笔记-04文件和目录(2)
APUE读书笔记-04文件和目录(3)
APUE读书笔记-04文件和目录(4)
APUE读书笔记-04文件和目录(5)
APUE读书笔记-04文件和目录(6)
APUE读书笔记-04文件和目录(7)
APUE读书笔记-04文件和目录(8)
APUE读书笔记-05标准输入输出库(1)
APUE读书笔记-05标准输入输出库(2)
APUE读书笔记-05标准输入输出库(3)
APUE读书笔记-05标准输入输出库(4)
APUE读书笔记-05标准输入输出库(5)
APUE读书笔记-05标准输入输出库(6)
APUE读书笔记-05标准输入输出库(7)
APUE读书笔记-05标准输入输出库(8)
APUE读书笔记-06系统数据文件和信息-01简介
APUE读书笔记-06系统数据文件和信息-02passwd文件
APUE读书笔记-06系统数据文件和信息-03加密密码
APUE读书笔记-06系统数据文件和信息-04组数据库文件
APUE读书笔记-06系统数据文件和信息-05额外组信息
APUE读书笔记-06系统数据文件和信息-06其他系统数据文件
APUE读书笔记-06系统数据文件和信息-07登录登记
APUE读书笔记-06系统数据文件和信息-08系统信息
APUE读书笔记-06系统数据文件和信息-09系统时间
APUE读书笔记-07进程环境(1)
APUE读书笔记-07进程环境(2)
APUE读书笔记-07进程环境(3)
APUE读书笔记-07进程环境(4)
APUE读书笔记-07进程环境(5)
APUE读书笔记-07进程环境(6)
APUE读书笔记-08进程控制(01)
APUE读书笔记-08进程控制(02)
APUE读书笔记-08进程控制(03)
APUE读书笔记-08进程控制(04)
APUE读书笔记-08进程控制(05)
APUE读书笔记-08进程控制(06)
APUE读书笔记-08进程控制(07)
APUE读书笔记-08进程控制(08)
APUE读书笔记-08进程控制(09)
APUE读书笔记-08进程控制(10)
APUE读书笔记-09进程关系(01)
APUE读书笔记-09进程关系(02)
APUE读书笔记-09进程关系(03)
APUE读书笔记-09进程关系(04)
APUE读书笔记-09进程关系(05)
APUE读书笔记-09进程关系(06)
APUE读书笔记-09进程关系(07)
APUE读书笔记-09进程关系(08)
APUE读书笔记-09进程关系(09)
APUE读书笔记-09进程关系(10)
APUE读书笔记-10信号-01简介
APUE读书笔记-10信号-02信号概念
APUE读书笔记-10信号-03signal函数
APUE读书笔记-10信号-04不可靠的信号
APUE读书笔记-10信号-05被中断的系统调用
APUE读书笔记-10信号-06可重入函数
APUE读书笔记-10信号-07SIGCLD的含义
APUE读书笔记-10信号-08可靠的信号技术以及相应的语义
APUE读书笔记-10信号-09kill和raise函数
APUE读书笔记-10信号-10alarm和pause函数
APUE读书笔记-10信号-11信号集合
APUE读书笔记-10信号-12sigprocmask函数
APUE读书笔记-10信号-13sigpending函数
APUE读书笔记-10信号-14sigaction函数
APUE读书笔记-10信号-15sigsetjmp和siglongjmp函数
APUE读书笔记-10信号-16sigsuspend函数
APUE读书笔记-10信号-17abort函数
APUE读书笔记-10信号-18system函数
APUE读书笔记-10信号-19sleep函数
APUE读书笔记-10信号-20作业控制信号
APUE读书笔记-10信号-21其它特性
APUE读书笔记-10信号-22总结
APUE读书笔记-11线程(1)
APUE读书笔记-11线程(2)
APUE读书笔记-11线程(3)
APUE读书笔记-12线程控制-01简介
APUE读书笔记-12线程控制-02线程限制
APUE读书笔记-12线程控制-03线程属性
APUE读书笔记-12线程控制-04同步属性
APUE读书笔记-12线程控制-05可重入性
APUE读书笔记-12线程控制-06线程特定数据
APUE读书笔记-12线程控制-07取消相关的选项
APUE读书笔记-12线程控制-08线程和信号
APUE读书笔记-12线程控制-09线程和fork
APUE读书笔记-12线程控制-10线程和输入输出
APUE读书笔记-12线程控制-11总结
APUE读书笔记-13守护进程(1)
APUE读书笔记-13守护进程(2)
APUE读书笔记-13守护进程(3)
APUE读书笔记-13守护进程(4)
APUE读书笔记-13守护进程(5)
APUE读书笔记-14高级输入输出-01简介
APUE读书笔记-14高级输入输出-02非阻塞I/O
APUE读书笔记-14高级输入输出-03记录锁(1)
APUE读书笔记-14高级输入输出-03记录锁(2)
APUE读书笔记-14高级输入输出-04流(1)
APUE读书笔记-14高级输入输出-04流(2)
APUE读书笔记-14高级输入输出-05多I/O
APUE读书笔记-14高级输入输出-06异步I/O
APUE读书笔记-14高级输入输出-07readv和writev函数
APUE读书笔记-14高级输入输出-08readn和writen函数
APUE读书笔记-14高级输入输出-09内存映射I/O
APUE读书笔记-14高级输入输出-10总结
APUE读书笔记-15进程内部通信-01简介
APUE读书笔记-15进程内部通信-02Pipes
APUE读书笔记-15进程内部通信-03popen和pclose函数
APUE读书笔记-15进程内部通信-04协作处理程序
APUE读书笔记-15进程内部通信-05FIFOs
APUE读书笔记-15进程内部通信-06XSIIPC
APUE读书笔记-15进程内部通信-07消息队列
APUE读书笔记-15进程内部通信-08信号量
APUE读书笔记-15进程内部通信-09共享内存
APUE读书笔记-15进程内部通信-10客户服务特性
APUE读书笔记-15进程内部通信-11总结
APUE读书笔记-16网络通信-01简介
APUE读书笔记-16网络通信-02套接字描述符
APUE读书笔记-16网络通信-03寻址(1)
APUE读书笔记-16网络通信-03寻址(2)
APUE读书笔记-16网络通信-04建立连接
APUE读书笔记-16网络通信-05数据传输
APUE读书笔记-16网络通信-06套接字选项
APUE读书笔记-16网络通信-07带外数据
APUE读书笔记-16网络通信-08非阻塞和异步I/O
APUE读书笔记-16网络通信-09总结
APUE读书笔记-17高级进程通信-01简介
APUE读书笔记-17高级进程通信-02基于流的管道
APUE读书笔记-17高级进程通信-03Unix域套接字
APUE读书笔记-17高级进程通信-04传递文件描述符号(1)
APUE读书笔记-17高级进程通信-04传递文件描述符号(2)
APUE读书笔记-17高级进程通信-05用于打开的服务进程版本1
APUE读书笔记-17高级进程通信-06用于打开的服务进程版本2
APUE读书笔记-17高级进程通信-07总结
APUE读书笔记-18终端输入输出-01简介
APUE读书笔记-18终端输入输出-02概要
APUE读书笔记-18终端输入输出-03特殊输入字符
APUE读书笔记-18终端输入输出-04获取和设置终端属性
APUE读书笔记-18终端输入输出-05终端选项标记
APUE读书笔记-18终端输入输出-06stty命令
APUE读书笔记-18终端输入输出-07波特率函数
APUE读书笔记-18终端输入输出-08行控制函数
APUE读书笔记-18终端输入输出-09终端标识
APUE读书笔记-18终端输入输出-10canonical模式
APUE读书笔记-18终端输入输出-11noncanonical模式
APUE读书笔记-18终端输入输出-12终端窗口大小
APUE读书笔记-18终端输入输出-13termcap,terminfo,和curses
APUE读书笔记-18终端输入输出-14总结
APUE读书笔记-19伪终端-01简介
APUE读书笔记-19伪终端-02总体概述
APUE读书笔记-19伪终端-03打开伪终端设备(1)
APUE读书笔记-19伪终端-03打开伪终端设备(2)
APUE读书笔记-19伪终端-04pty_fork函数
APUE读书笔记-19伪终端-05pty程序
APUE读书笔记-19伪终端-06使用pty程序
APUE读书笔记-19伪终端-07高级特性
APUE读书笔记-19伪终端-08总结
APUE读书笔记-20应用
APUE读书笔记-后序

五、鸣谢
================================================
 制作本文,要感谢朋友、亲人们对我的帮助,感谢读者们对我的支持,还有就是感谢带给我动力的一些原因……将此文献给所有需要它的朋友们,以各位及本人在其中发现的真正收获,做为能够完成此书的回报。请原谅我没有将应当感谢的大家们的名字一一列出,因为原因之一是我知道我应该感谢的朋友一定在我想要感谢之前就已知道我想要感谢我要感谢的朋友了。:-P
 看到这里的,就是我要感谢的;认识我是谁的,就是我要感谢的;应该感谢而没有感谢到的,也是我要感谢的……能够在这里,将这些表达出来一点,这样足够了,祝愿读者能够在阅读的过程中有所收获;在枯燥的阅读中,能够将这枯燥作为找到阅读乐趣的过程,并最终找到最适合自己的正确的方法(可以将这个部分只当做一个也许能够让本文看起来更为完整的形式)。d^_^b
 
作者:QuietHeart
Email:

日期:2011年12月12日
 

 
阅读(3353) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

vaqeteart2012-11-30 12:46:06

cuisonghui: 感谢分享你的笔记!!!!!!!!!!.....

cuisonghui2012-11-19 18:29:08

感谢分享你的笔记!!!!!!!!!!

vaqeteart2012-10-27 10:14:18

此系列其它文章参见本博客分类“学习相关”-“读书笔记”