UNIX环境高级编程

W.Richard Stevens

出版时间

2000-01-31

ISBN

9787111075790

评分

★★★★★
书籍介绍
这书最勾人的地方,不在它罗列了多少系统调用,而在于它逼着你把「应用程序」和「操作系统内核」当成一体来看待。作者让你亲手摸到文件描述符如何被 fork 复制、信号如何处理程序如何打断进程、字节序如何在不同架构间制造混乱——这些正是新手踩坑、老手翻车的地方。它不教框架、不赶时髦,而是把 UNIX 底层的运行机理讲透,因此常被拿来和 K&R 并列,成为 C 语言之后又一本金句收藏级的读物。它适合两类人:一类是想建立系统观、不甘只做「API 调用员」的程序员;另一类是把它当案头字典、随时回来查证的资深开发者。缺点也真实:厚、偏底层,硬当轻松入门读物的人会失望。
AI导读
核心看点
  • 被誉为UNIX编程圣经,内容权威且实用。
  • 详解系统调用与标准C库,结合内部结构。
  • 提供大量可直接引用的应用实例与代码。
读者共识
  • 经典之作,无论新手专家皆需收藏。
  • 翻译精准,技术细节描述清晰透彻。
  • 虽有一定年代,但核心知识依然适用。
精彩摘录
  • "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."
目录
译者序
译者简介
前言
第1章 UNIX基础知识
第2章 UNIX标准化及实现

显示全部
用户评论
看这书的那一年,我还是个键盘手
走进linux世界的必要一步
经典入门书籍
再讲都是多余的了
不多说了,APUE,经典
一本经典的书,当初作为工具书的,真心言之有物
零星翻过
对我在unix编程影响最大的书 读过好几遍 里面一些接口参数都反复揣摩 以至于后来fix别人夸unix移植bug完全手到擒来 惊呆小伙伴 经典巨著
第二第三版都被借走了,只能看第一版了。看了一部分,当成库函数使用书看。
下载
收藏