免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux

[书评] 《UNIX环境高级编程》第三版来袭地球! (获奖名单已公布-2014-6-27) [复制链接]

论坛徽章:
26
CU十二周年纪念徽章
日期:2013-10-24 15:41:34技术图书徽章
日期:2014-07-11 16:27:52辰龙
日期:2014-09-04 13:40:43白羊座
日期:2014-09-09 12:51:55双子座
日期:2014-09-26 11:00:042014年中国系统架构师大会
日期:2014-10-14 15:59:00子鼠
日期:2014-10-23 16:48:23巨蟹座
日期:2014-10-27 08:21:10申猴
日期:2014-12-08 10:16:282015年辞旧岁徽章
日期:2015-03-03 16:54:15NBA常规赛纪念章
日期:2015-05-04 22:32:03IT运维版块每日发帖之星
日期:2016-01-29 06:20:00
发表于 2014-06-03 08:40 |显示全部楼层
支持一下

论坛徽章:
0
发表于 2014-06-03 10:04 |显示全部楼层
我是大三的时候开始接触到这本书, 当时去普照楼领教材时发现领的每本书教材书都是又厚又重, 这其中就包含了这本经典的书籍了。  刚开始都是在windows下用vs2010或者Tc开发的一些小程序, 后来上操作系统的时候熟悉了unix类操作系统,随后自己通过老师的讲解和介绍自己就迷上了unix编程, 但是最开始也是我觉得最难得, 因为不知从何下手, 拿着一本数据结构去实现里面的算法时不知从何下手, 幸运的是老师给我么选了个好的教材《unix高级环境编程》《第二版》, 于是我就在这本书的驱动下,在暑假的时候, 书上的大部分习题我都上机实践, 从io操作, 循序渐进, 进程管理与控制, 线程管理与控制, 同步异步等机制, 再到锁, 以及第十章的信号量,  再到套接字编程, 刚开始的时候可能还不知道这个demo要说的是什么意思, 经过反复的看书与专研, 再后来随之应用到开发场景中会发现原来如此。是这本书带我走入linux编程, 他给了我自信, 去面试笔试的时候别人问我有没有linux编程经验, 我把经历简短描述了下, 面试官很满意。 感谢此书作者,译者。

论坛徽章:
0
发表于 2014-06-03 11:44 |显示全部楼层
欢迎大家踊跃参加,发表自己的看法和感想,赢取好书。

论坛徽章:
0
发表于 2014-06-03 13:49 |显示全部楼层
Herowinter 发表于 2014-05-27 19:13
火星人表示也想要这本书,我可以来参加地球的技术讨论吗?

围观火星人

论坛徽章:
0
发表于 2014-06-04 10:35 |显示全部楼层
1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历);
刚开始接触的是PDF版的APUE(第一版),一版对线程和IPC讲的比较少,但覆盖了基础底层的知识和要点
但对系统调用与标准IO库函数讲的方式和应用都很好,配合Man,对一个C/C++的功能使用就可以做到互补了
因为学校出来,刚刚接触AIX,那时候对C应用有很多不清楚的地方,在前辈的介绍和引导下接触了APUE,实在是获益匪浅。

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?
觉得APUE伟大的地方是作者对知识点的功能的来龙去脉把握的很好,除了介绍系统函数的功能,还把函数的实现思路逻辑也做为了探讨并分享;另外各个知识点前后联系,文中都会系统的进行介绍或者有索引,这是难得的地方。这样关联起来真正能让人有融会贯通的觉悟。
个人感觉除了了解一个函数的作用和使用方式,书中作者分析和应用的编程思路才是精髓所在,对日后项目的设计和实现都大有益处。

当然,现在网络编程是趋势,他的UNP也是经典

论坛徽章:
0
发表于 2014-06-04 12:36 |显示全部楼层
这个我必须点个赞!

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
发表于 2014-06-04 14:36 |显示全部楼层
好书!
呵呵,今年春节,我在重庆一个新水果摊儿买了一本。
不过话说回来,呵呵,到现在为止, 还没有看过。

论坛徽章:
0
发表于 2014-06-04 15:31 |显示全部楼层
1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历)
我是之前参加一个嵌入式linux时有幸与这本数结缘,这两年来一直从事linux开发,期间这本书读了不止两三遍。
培训时,老师说过这本书很重要,叫我们好好研读,直到工作时才真正体会到APUE的魅力,很多时候只要花点时间认真看下,照着代码写下,开发的时候也会省去许多麻烦。给我印象最深刻的是用unix domain解决进程间一个通信间通信的问题,当时在公司没做出来,晚上回去很认真地照着书上的例子做了几遍才会的。我这人很笨,这本书中的有些章节读了不下三遍,如进程,线程,信号和进程间通信,但是很多时候还是习惯把书放在身边,即使现在偶尔遇到一点与系统相关的小问题时,我也会翻翻。
看Stevens先生写的书给我感慨最多的就是,我时常问身边人一个问题,怎样才能写出本本经典的书呢?Stevens先生写的书都是经典,这点就让人很是折服。每每有一些学习linux/unix的同事或同学问我问题,我知道的都会告诉他们,不记得的都会直接让他们去读APUE某某章节。这本书虽然距离现在已经很长时间了,里面有些已经过时或者不适用了,但是经典终归是经典。顺便说下,印象深刻的还有那句话:站在巨人的肩上。

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?
作为linux开发人员,APUE绝对是必读之作。首先帮助最大的莫过于作者的实践精神,每当我看例子时,总会看到作者在几个不同的类unix系统上进行测试,就这种实践精神很值得我学习。另外,书中信号,进程,线程,socket那几节讲得确实不错,我看了好多遍,而且我不光看了进程间通信那节,连unp2也顺便看了。基本上现在开发遇到的什么进程间通信上的问题都能解决。
学,然后知不足,以后的路很长,要学的东西很多,但经典终归是经典,值得好好研读。

论坛徽章:
2
巨蟹座
日期:2014-03-09 21:37:25射手座
日期:2014-04-16 16:23:03
发表于 2014-06-05 17:55 |显示全部楼层
1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历);
第一次接触这本书应该是04年,这一年我小本毕业进入某网络设备公司,从事嵌入式Linux软件开发。当时,Windows在国内是那样的流行,VC++,Win32,MFC这些微软体系的技术基本上就是软件开发的代名词, 图书馆里书店里充斥着Windows开发相关的书籍,和Linux有关的书籍可以说是凤毛菱角。很不幸的是,当年我在大学期间选择的方向也是Windows,特别是对Windows底层编程、驱动程序有着强烈的兴趣,对Linux的认识仅仅是只会敲几个简单的命令。毕业后,面对Linux这个陌生的领域,基本上什么都要从头开始,从最简单的命令cd/ls/rm/mkdir到各种服务器的配置管理,逐步认识到Linux和Windows的巨大不同,比如说Linux的图形界面KDE/GNOME是可选的,但Windows是必须的。在这个学习过程中逐渐习惯和熟悉了Linux下的命令行界面,其后才开始Linux应用层编程的学习。在公司的入职学习期过后,开始正式干活,第一个任务就是研究Linux上的某开源软件并移植到嵌入式Linux平台上,这个过程可以说是举步维艰,只要一旦遇到不熟悉的系统API,基本上做的第一步都是调用man page看看这个API的用处、使用的参数和返回值,同时把APUE翻出来查找到相应的章节系统地学习一下此API的使用场景。由于做得工作和网络编程密切相关,socket部分APUE完全不能满足需求,较之APUE另一本经典书籍UNP对socket的讲述要丰富生动很多,而其他部分如进程、信号、文件I/O、线程等,APUE基本是我唯一的参考。
总的来说,APUE更像是一本UNIX-Like API参考手册,需要的时候去翻一翻,了解一下详细的用法。至于更高级的使用场景,还需要在工作中多实践,而能否将其应用自如,在我看来还是需要对Linux内核有较深入的了解,毕竟kernel才是其根本,API只是提供给用户层的一张皮。

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?
APUE不是《UNIX编程艺术》,从中真没看出什么思想,顶多算是一个“师父”,所谓师父领进门,修行靠个人。特别是当你入门后,看到某个API知道其使用方法,但又记不住一些准确的参数,动用man page,很快就可以上手。APUE的经典之处还是在于这是一本比较全面的书籍,基本上囊括了UNIX-Like系统上的常用API,并给出了具体的示例。从这些示例上,可以看到作者Stevens的用心良苦,每个示例都在不同的UNIX-Like系统上做过验证,其对技术的严谨精神值得我们学习。此外,作者的另一本书籍UNP也是经典之作,可以说对Linux程序员来讲,APUE和UNP这两本书绝对是必备参考书籍。

论坛徽章:
0
发表于 2014-06-06 11:00 |显示全部楼层
1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历)

  决定看APUE是因为去年项目需要,刚刚进入研究生就要看跟着项目跑,当时也是没有头绪,不知道找什么可以依靠来完成每次项目的修改,起初是在网上看了一下APUE的电子版,不过自己不是很喜欢看电子版,总感觉不能很入心,于是在草草的看完一遍之后决定购买一本,虽然除了生活费之外我已所剩无几,当然我还是很欣慰的说,买得非常值的,就这样APUE进入了我的生活,从宿舍到实验室,从实验室到食堂,再从食堂到宿舍,几乎在我包包中都会有它的存在,每一次遇到困难时它多是那个最先让我想起来的帮手,在当时连菜鸟都算不上的时候,做linux c的开发时,自己纠结select好久,当时不能理解它是否阻塞,当然也不知道为什么在网上看了select的详解后自己还是没有明白,可能有时就是这样吧,你陷入了一个圈圈就出不来了,也就是那次翻看APUE时,看到在IO多路转接时,select的应用详解,可能就是巧合,有种顿悟的感觉,那次之后我就爱上了它,每次有问题我就先看看它,然后上网找些资料来对比,算是补充知识吧。

  现在我还在读书中,总是经常看看这本很喜欢的APUE,它现在不是在我包包中天天奔波于路线上,而是在书桌上的“扛把子”,感谢这边书,虽然它不能把所有你想要的知识都讲解清楚,但是它应该是市面上在linux端最优秀的书籍之一了。

  感谢Stevens先生,我们为他祈祷。也会好好拜读APUE、UNP、TCP/IP著作。

  感谢我们版主,以及APUE 3的作者及帮助者,这将是对喜欢前两部人们的一大喜讯,贡献之大,32个赞。

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?

  这个问题感觉有点难回答,以下是个人感受可能说的不是很到位,请见谅。

  严谨性,从书写代码角度,我们会更加细心地考虑每一步做得是否周全,是否到位,有没有特殊情况没有考虑到,在书中,每个函数的返回值给出了详细的说明,在使用函数后要进行严格的判断,例如readn并不总是如我们所愿,读到我们想要数量的数据,所以要根据返回值进行再判断,还有open、popen等等,要知道如果不这么做的话,可能结果是我们无法承受的。

  整体性,在整个工程设计的时候,要考虑功能实现和数据存储的关系,考虑功能实现之间的制约关系。在用多线程处理大文件的时候,我们要注意描述文件的数据结构的存储问题,而不是单单考虑用不同线程传输文件的不同部分,操作文件的时候我们还要考虑每个线程之间的互斥关系,在实际的工程当中,又要保证文件传输的可靠性和信道的利用率,这时我们又要考虑到文件断点的问题以及代码的性能问题。总之在APUE中你可以找到这些问题的部分答案甚至全部。

  远见性,我想APUE这边书让我们开发的人员在真个项目的前期更有远见性,当我们看到uint32_t时,我去了ctype.h、inttypes.h和网上怒查了一番,当然我们在书中可以发现有大量的针对不同功能不同数据类型,其实他都是为了让我们更精确的去使用数据,当我们想定义一个32位的数据时就不用怕int在不同的操作系统表示的位数不确定的问题了;同时在一个要求时效性强的工程中可能我们考虑使用记录锁而不再使用信号量等技术,这会让我们的项目消耗更少的时间。

以上是自己的理解,学习中,不对的地方请教导指正。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

PostgreSQL中国大会,早鸟票抢购!

PostgreSQL中国大会,早鸟票抢购!
2019年11月29~11月30日,由 PostgreSQL中文社区与ITPUB联合主办的第九届《PostgreSQL 中国技术大会》将在北京隆重召开。PostgreSQL 作为功能最强的的开源关系型数据库之一,得到了越来越多企业的推广和运用,也越来越受到广大技术爱好者的欢迎和重视。这将是 PostgreSQL 的又一次交流盛会。




----------------------------------------

点击报名>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP