UNIX环境高级编程

W.Richard Stevens, Stephen A.Rago

出版时间

1970-01-01

ISBN

9787115147318

评分

★★★★★
书籍介绍
这本书最耐人寻味的地方,恰恰是它"反潮流"的朴素。在面向对象和设计模式泛滥的今天,它展示的是"还没有那些东西时"的接口——没有花哨的抽象,只有文件描述符、信号、进程控制这些最基础、最扎实的东西。而读者反复印证:越基础,越重要。评论区里,有人读完第一遍就急着再购第三版,有人每天啃三四个小时六天翻完,更多人"一边读一边敲代码"才觉满意。它不适合当作入门速成手册,老手拿来查漏补缺、系统重建知识框架才最值。如果你愿意把UNIX编程的底层逻辑啃透,它会成为你书架上"应该早点读"的那一本。
作者简介
W.Richard Stevens,备受赞誉的技术作家,生前著有多种经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书第1版。 尤晋元,上海交通大学计算机科学及工程系教 授、博士生导师。在科研方面,主要从事操作系统和分布对象计算技术方面的研究;在教学方面,长期承担操作系统及分布计算等课程的教学工作。主编和翻译了多本操作系统教材和参考书,包括《UNIX操作系统教程》、《UNIX高级编程技术》、《UNIX环境高级编程》和《操作系统:设计与实现》等。
AI导读
核心看点
  • 被誉为UNIX编程圣经,内容权威经典
  • 涵盖进程、信号、线程及网络IPC等核心
  • 结合最新标准修订,示例丰富实用
读者共识
  • 概念清晰阐述精辟,庖丁解牛般透彻
  • 越基础的东西越重要,需反复温故知新
  • 虽部分技术稍老,但核心原理永不过时
精彩摘录
  • "Parent and the child share a file table entry for every open descriptor."
  • "大多数UNIX调试程序都使用core文件以检查进程终止时的状态。"
  • "将进程的信号屏蔽字设置为由sigmask指向的值。在捕捉到一个信号或发生了一个会终止该进程的信号之前,该进程被挂起。如果捕捉到一个信号而且从该信号处理程序返回,则sigsuspend返回,并且将该进程的信号屏蔽字设置为调用sigsuspend之前的值。"
  • "与应用程序使用文件描述符(fd)访问文件一样,访问套接字也需要使用套接字描述符,其在unix系统中是用文件描述符实现的。 在AF_INET通信域中套接字SOCK_STREAM的默认协议是TCP,SOCK_DGRAM的默认协议是UDP。 不同处理器架构支持不同的字节序,小端(little-endian)freebsd linux on intel pentium,大端(big-endian)mac os on power pc solaris on sun sparc,有些处理器可以配置大端和小端,更加混乱。 TCP/IP 采用大端字节序。对于TCP/IP,地址是使用网络字节序来表示,所以应用程"
  • "由open返回的文件描述符一定是最小的未用描述符数值。这一点被某些应用程序用来在标准输入,标准输出或标准错误输出上打开新的文件。"
  • "其中,atexit的参数是一个函数地址,当调用此函数时无需向它传送任何参数,也不期望它返回一个值。exit以登记这些函数的相反顺序调用它们。同一函数如若登记多次,则也被调用多次。"
  • "如果 name 不是一个合适的常量,则所有这三个函数都会返回 -1,并将 errno 设置为 EINVAL。"
  • "Although sbrk can expand or contract the memory of a process, most versions of malloc and free never decrease their memory size. The space that we free is available for a later allocation, but the freed space is not usually returned to the kernel; that space is kept in the malloc pool."
用户评论
中文版的读了一半,没读完,又买了本影印版。这个标记为已读算了。
2013-06-16:第一遍漏了很多。
挺好的,虽然每章那么多函数没耐心看下去,不过真的静下来看还是很有收获的。
温故
田燕推荐
读研时的最爱
需要一定基础才可以更好地理解。内容有些简洁,部分知识需要自行展开、拓展学习
讲解清晰,一目了然,一点都不复杂
我觉得吧,这个当个字典没事翻阅下挺好的
本科时读不懂,现在读起来一气呵成。
下载
收藏