dy 章 UNIX基础知识
1.1 引言
1.2 UNIX体系结构
1.3 登录
1.4 文件和目录
1.5 输入和输出
1.6 程序和进程
1.7 出错处理
1.8 用户标识
1.9 信号
1.10 时间值
1.11 系统调用和库函数
1.12 小结
习题
第2章 UNIX标准及实现
2.1 引言
2.2 UNIX标准化
2.2.1 ISO C
2.2.2 IEEE POSIX
2.2.3 Single UNIX Specification
2.2.4 FIPS
2.3 UNIX系统实现
2.3.1 SVR4
2.3.2 4.4BSD
2.3.3 FreeBSD
2.3.4 Linux
2.3.5 Mac OS X
2.3.6 Solaris
2.3.7 其他UNIX系统
2.4 标准和实现的关系
2.5 限制
2.5.1 ISO C限制
2.5.2 POSIX限制
2.5.3 XSI限制
2.5.4 函数sysconf、pathconf和fpathconf
2.5.5 不确定的运行时限制
2.6 选项
2.7 功能测试宏
2.8 基本系统数据类型
2.9 标准之间的冲突
2.10 小结
习题
第3章 文件I/O
3.1 引言
3.2 文件描述符
3.3 函数open和openat
3.4 函数creat
3.5 函数close
3.6 函数lseek
3.7 函数read
3.8 函数write
3.9 I/O的效率
3.10 文件共享
3.11 原子操作
3.12 函数dup和dup2
3.13 函数sync、fsync和fdatasync
3.14 函数fcntl
3.15 函数ioctl
3.16 /dev/fd
3.17 小结
习题
第4章 文件和目录
4.1 引言
4.2 函数stat、fstat、fstatat和lstat
4.3 文件类型
4.4 设置用户ID和设置组ID
4.5 文件访问权限
4.6 新文件和目录的所有权
4.7 函数access和faccessat
4.8 函数umask
4.9 函数chmod、fchmod和fchmodat
4.10 粘着位
4.11 函数chown、fchown、fchownat和lchown
4.12 文件长度
4.13 文件截断
4.14 文件系统
4.15 函数link、linkat、unlink、unlinkat和remove
4.16 函数rename和renameat
4.17 符号链接
4.18 创建和读取符号链接
4.19 文件的时间
4.20 函数futimens、utimensat和utimes
4.21 函数mkdir、mkdirat和rmdir
4.22 读目录
4.23 函数chdir、fchdir和getcwd
4.24 设备特殊文件
4.25 文件访问权限位小结
4.26 小结
习题
第5章 标准I/O库
5.1 引言
5.2 流和FILE对象
5.3 标准输入、标准输出和标准错误
5.4 缓冲
5.5 打开流
5.6 读和写流
5.7 每次一行I/O
5.8 标准I/O的效率
5.9 二进制I/O
5.10 定位流
5.11 格式化I/O
5.12 实现细节
5.13 临时文件
5.14 内存流
5.15 标准I/O的替代软件
5.16 小结
习题
第6章 系统数据文件和信息
6.1 引言
6.2 口令文件
6.3 阴影口令
6.4 组文件
6.5 附属组ID
6.6 实现区别
6.7 其他数据文件
6.8 登录账户记录
6.9 系统标识
6.10 时间和日期例程
6.11 小结
习题
第7章 进程环境
7.1 引言
7.2 main函数
7.3 进程终止
7.4 命令行参数
7.5 环境表
7.6 C程序的存储空间布局
7.7 共享库
7.8 存储空间分配
7.9 环境变量
7.10 函数setjmp和longjmp
7.11 函数getrlimit和setrlimit
7.12 小结
习题
第8章 进程控制
8.1 引言
8.2 进程标识
8.3 函数fork
8.4 函数vfork
8.5 函数exit
8.6 函数wait和waitpid
8.7 函数waitid
8.8 函数wait3和wait4
8.9 竞争条件
8.10 函数exec
8.11 更改用户ID和更改组ID
8.12 解释器文件
8.13 函数system
8.14 进程会计
8.15 用户标识
8.16 进程调度
8.17 进程时间
8.18 小结
习题
第9章 进程关系
9.1 引言
9.2 终端登录
9.3 网络登录
9.4 进程组
9.5 会话
9.6 控制终端
9.7 函数tcgetpgrp、tcsetpgrp和tcgetsid
9.8 作业控制
9.9 shell执行程序
9.10 孤儿进程组
9.11 FreeBSD实现
9.12 小结
习题
dy 0章 信号
10.1 引言
10.2 信号概念
10.3 函数signal
10.4 不可靠的信号
10.5 中断的系统调用
10.6 可重入函数
10.7 SIGCLD语义
10.8 可靠信号术语和语义
10.9 函数kill和raise
10.10 函数alarm和pause
10.11 信号集
10.12 函数sigprocmask
10.13 函数sigpending
10.14 函数sigaction
10.15 函数sigsetjmp和siglongjmp
10.16 函数sigsuspend
10.17 函数abort
10.18 函数system
10.19 函数sleep、nanosleep和clock_nanosleep
10.20 函数sigqueue
10.21 作业控制信号
10.22 信号名和编号
10.23 小结
习题
dy 1章 线程
11.1 引言
11.2 线程概念
11.3 线程标识
11.4 线程创建
11.5 线程终止
11.6 线程同步
11.6.1 互斥量
11.6.2 避免死锁
11.6.3 函数pthread_mutex_timedlock
11.6.4 读写锁
11.6.5 带有超时的读写锁
11.6.6 条件变量
11.6.7 自旋锁
11.6.8 屏障
11.7 小结
习题
dy 2章 线程控制
12.1 引言
12.2 线程限制
12.3 线程属性
12.4 同步属性
12.4.1 互斥量属性
12.4.2 读写锁属性
12.4.3 条件变量属性
12.4.4 屏障属性
12.5 重入
12.6 线程特定数据
12.7 取消选项
12.8 线程和信号
12.9 线程和fork
12.10 线程和I/O
12.11 小结
习题
dy 3章 守护进程
13.1 引言
13.2 守护进程的特征
13.3 编程规则
13.4 出错记录
13.5 单实例守护进程
13.6 守护进程的惯例
13.7 客户进程-服务器进程模型
13.8 小结
习题
dy 4章 高级I/O
14.1 引言
14.2 非阻塞I/O
14.3 记录锁
14.4 I/O多路转接
14.4.1 函数select和pselect
14.4.2 函数poll
14.5 异步I/O
14.5.1 System V异步I/O
14.5.2 BSD异步I/O
14.5.3 POSIX异步I/O
14.6 函数readv和writev
14.7 函数readn和writen
14.8 存储映射I/O
14.9 小结
习题
dy 5章 进程间通信
15.1 引言
15.2 管道
15.3 函数popen和pclose
15.4 协同进程
15.5 FIFO
15.6 XSI IPC
15.6.1 标识符和键
15.6.2 权限结构
15.6.3 结构限制
15.6.4 优点和缺点
15.7 消息队列
15.8 信号量
15.9 共享存储
15.10 POSIX信号量
15.11 客户进程-服务器进程属性
15.12 小结
习题
dy 6章 网络IPC:套接字
16.1 引言
16.2 套接字描述符
16.3 寻址
16.3.1 字节序
16.3.2 地址格式
16.3.3 地址查询
16.3.4 将套接字与地址关联
16.4 建立连接
16.5 数据传输
16.6 套接字选项
16.7 带外数据
16.8 非阻塞和异步I/O
16.9 小结
习题
dy 7章 高级进程间通信
17.1 引言
17.2 UNIX域套接字
17.3 wei一连接
17.4 传送文件描述符
17.5 open服务器进程dy 版
17.6 open服务器进程第2版
17.7 小结
习题
dy 8章 终端I/O
18.1 引言
18.2 综述
18.3 特殊输入字符
18.4 获得和设置终端属性
18.5 终端选项标志
18.6 stty命令
18.7 波特率函数
18.8 行控制函数
18.9 终端标识
18.10 规范模式
18.11 非规范模式
18.12 终端窗口大小
18.13 termcap、terminfo和curses
18.14 小结
习题
dy 9章 伪终端
19.1 引言
19.2 概述
19.3 打开伪终端设备
19.4 函数pty_fork
19.5 pty程序
19.6 使用pty程序
19.7 高级特性
19.8 小结
习题
第20章 数据库函数库
20.1 引言
20.2 历史
20.3 函数库
20.4 实现概述
20.5 集中式或非集中式
20.6 并发
20.7 构造函数库
20.8 源代码
20.9 性能
20.10 小结
习题
第21章 与网络打印机通信
21.1 引言
21.2 网络打印协议
21.3 超文本传输协议HTTP
21.4 打印假脱机技术
21.5 源代码
21.6 小结
习题
附录A 函数原型
附录B 其他源代码
附录C 部分习题答案
参考书目
索引
图书名称:UNIX环境高级编程 第3版
作 者:[美]史蒂文斯,拉戈 著
定价: 128.00
出版社:人民邮电
ISBN:9787115352118
出版日期:2014-6-1
开本:16开
印刷日期:2014-6-1
装帧:平装
20多年来,严谨的C程序员都是依靠一本书来深入了解驱动UNIX和Linux内核的编程接口的实用知识的,这本书就是W.RichardStevens所著的《UNIX高级环境编程》。现在,Stevens的同事SteveRago彻底更新了这本经典著作。新的第3版支持当今 的系统平台,反映了*技术进展和*实践,并且符合*的SingleUNIXSpecification第4版(SUSv4)。
Rago保留了使本书前版成为经典之作的精髓和方法。他在Stevens原著的基础上,从基础的文件、目录和进程讲起,并给诸如信号处理和终端I/O之类的先进技术保留较大的篇幅。他还深入讨论了线程和多线程编程、使用套接字接口驱动进程间通信(IPC)等方面的内容。
这一版涵盖了70多个*版POSIX.1标准的新增接口,包括POSIX异步I/O、旋转锁、屏障(barrier)和POSIX信号量。此外,这一版删除了许多过时的接口,保留了一些广泛使用的接口。书中几乎所有实例都已经在目前 主流的4个平台上测试过,包括Solaris10、MacOSX10.6.8(Darwin10.8.0)、FressBSD8.0、Ubuntu12.04(基于Linux3.2内核)。
与前两版一样,读者仍可以通过实例学习,这些实例包括了1万多行可下载的ISOC源代码,书中通过简明但完整的程序阐述了400多个系统调用和函数,清楚地说明它们的用法、参数和返回值。为了使读者能融会贯通,书中还提供了几个贯穿整章的案例,每个案例都根据现在的技术环境进行了全面更新。
本书帮助了几代程序员写出强大、高性能、可靠的代码。第3版根据当今主流系统进行更新,更具实用价值。
《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的AdvancedProgrammingintheUNIXEnvironment一书的第3版。在本书第2版出版后的8年中,UNIX发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。《UNIX环境高级编程(第3版)》在保持前一版风格的基础上,根据*的标准对内容进行了修订和增补,反映了*的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。
《UNIX环境高级编程(第3版)》内容 ,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。
W.RichardStevens国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有多部经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书dy 版。
StephenA.Rago资深UNIX程序员,目前任NEC美国实验室存储系统集团研究员。之前是贝尔实验室的UNIX系统V版本4的开发人员之一。著有《UNIX系统V网络编程》,并曾担任本书dy 版的技术审校和第2版的共同作者。
这本书的内容,简直就是为我这样的Linux开发者量身定制的“宝典”。我一直以来在Linux环境下进行编程,但很多底层原理总是模模糊糊,直到我翻开这本书,才感觉像拨开了迷雾。书中的“网络编程”章节,是我最看重的一部分,它不仅讲解了TCP/IP协议栈的基础知识,更详细介绍了Socket API的使用,从客户端到服务器端的各种编程模型,如阻塞I/O、非阻塞I/O、I/O复用(select/poll/epoll)以及异步I/O,都有非常详尽的讲解和代码示例。我曾经在实现一个高性能的网络服务时遇到瓶颈,在仔细研读了这一章节后,我找到了突破口,并且能够自信地选择最适合的I/O模型来优化我的程序。此外,书中关于进程的内存管理、信号处理、守护进程的编写等章节,也为我解决了许多实际开发中遇到的棘手问题。特别是对信号处理的讲解,它让我理解了如何在程序中优雅地处理中断信号,避免程序异常退出。这本书的实用性,超出了我的预期,它提供的不仅仅是知识,更是解决实际问题的“金钥匙”。
评分阅读这本书的过程,本身就是一种享受,它用一种极其严谨而又富有逻辑性的方式,将Linux内核的底层机制呈现在我的眼前。我特别喜欢书中关于“系统调用”的深入剖析,作者并没有停留在API层面,而是详细讲解了系统调用是如何在用户空间和内核空间之间进行切换的,以及`syscall`指令的具体作用。这种对底层原理的探究,让我对Linux的运作方式有了前所未有的深刻理解。书中对于内存管理,包括虚拟内存、分页、分段等概念的讲解,也让我受益匪浅。我曾经对程序为什么会发生内存泄漏、如何优化内存使用等问题感到困惑,通过阅读这本书,我找到了清晰的答案。而且,书中还涉及了用户和组的概念、文件权限的控制、以及系统配置文件的解读,这些看似零散的知识点,在书中被巧妙地串联起来,形成了一个完整的Linux系统知识体系。这本书的全面性,让我感觉自己像是在进行一次“Linux系统深度游”,收获满满。
评分一本真正意义上的“参考手册”,这本书的厚度和内容的深度,让我第一次感受到编程书籍也可以沉甸甸地压在手边,带来踏实的学识感。初拿到手,就被那封面散发的经典气质所吸引,仿佛预示着这是一本承载着悠久历史和深厚底蕴的著作。翻开第一页,我就知道自己没有选错。它不像某些速成教材那样,将复杂的概念浅尝辄止地抛给你,而是用一种循序渐进、却又鞭辟入里的方式,层层剥茧地揭示UNIX系统的运行机制。我尤其欣赏书中对系统调用的详尽阐述,从最基础的`fork`到复杂的`mmap`,每一个函数的使用场景、参数含义、返回值以及可能出现的错误,都进行了近乎完美的梳理。书中对于进程间通信(IPC)的讲解更是让我醍醐灌顶,那些曾经让我头疼不已的信号量、消息队列、共享内存,在作者的笔下变得清晰明了,甚至还通过生动的实例演示了如何在实际项目中应用这些技术,大大提升了我解决复杂系统问题的能力。而且,这本书不仅仅局限于理论,它还提供了大量的代码示例,这些代码简洁、高效,而且经过了反复的测试,可以直接拿来参考和学习,这对于我这样的实操型开发者来说,简直是无价之宝。它的深度,让我每次翻阅都能有新的发现,仿佛与一位经验丰富的老者在交流,受益匪浅。
评分当我抱着“了解一点,做一点”的心态打开这本书时,我完全没想到自己会被深深地吸引,甚至一度沉迷其中,完全忘记了时间的流逝。它不是那种枯燥乏味的理论堆砌,而是将每一个概念都置于一个宏大的、相互关联的体系中进行阐述。我特别喜欢书中对于文件系统和I/O操作的讲解,作者并没有仅仅停留在“读写”这个层面,而是深入到文件描述符、缓冲区、系统调用与库函数之间的区别与联系,甚至还探讨了不同I/O模型的性能差异,这让我对如何优化程序的I/O性能有了全新的认识。书中关于进程和线程的管理部分,更是我此前许多模糊概念的“拨乱反正”。它清晰地勾勒出了进程的生命周期、线程的创建与同步机制,以及它们在多任务环境下的协作方式。我曾反复阅读关于`pthread`库的部分,那些互斥锁、条件变量的妙用,在书中通过巧妙的例子展现得淋漓尽致,让我在编写并发程序时不再感到手足无措。这本书就像一位循循善诱的老师,它不会直接给你答案,而是引导你去思考,去探索,让你在解决问题的过程中,自己去发现知识的宝藏。它的启发性,让我不再仅仅是“搬砖”的码农,而是真正开始理解代码背后的逻辑和哲学。
评分这本书的出版,无疑是Linux编程领域的一大盛事,我迫不及待地将它收入囊中,并在第一时间进行了细致的阅读。它不仅仅是一本技术书籍,更像是一份关于UNIX哲学和系统设计的“宣言”。我最欣赏书中关于“并发与同步”的章节,作者以一种极其细腻的笔触,勾勒出了多线程编程的复杂世界,从基本的互斥锁、条件变量,到更高级的信号量、读写锁,再到死锁的预防和检测,都有深入的探讨。书中通过大量的图示和代码示例,将抽象的概念具象化,让我能够直观地理解不同同步机制的原理和应用场景。此外,书中关于“进程的创建与销毁”、“进程间通信”等章节,也对我解决分布式系统中的一些难题提供了重要的思路。我特别喜欢书中关于`pipe`和`shmget`/`shmat`等IPC机制的讲解,它让我能够更灵活地设计不同进程之间的协作方式。这本书的深度和广度,让我感觉自己仿佛站在巨人的肩膀上,能够看到更远、更广阔的编程世界。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有