新書推薦:
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:NT$
305.0
《
560种野菜野果鉴别与食用手册
》
售價:NT$
305.0
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
《
锂电储能产品设计及案例详解
》
售價:NT$
505.0
《
首辅养成手册(全三册)(张晚意、任敏主演古装剧《锦绣安宁》原著小说)
》
售價:NT$
551.0
《
清洁
》
售價:NT$
296.0
《
组队:超级个体时代的协作方式
》
售價:NT$
352.0
《
第十三位陪审员
》
售價:NT$
245.0
內容簡介:
本书一共21章。第1、2章分别介绍了UNIX系统和UNIX标准化的一些内容。第3~6章介绍了文件I/O、文件和目录、标准I/O库、系统数据文件和信息。第7~10章介绍了进程相关事项,包括进程环境、进程控制、进程关系,以及进程如何处理信号。第11、12章介绍了线程的内容,包括线程本身及线程控制的策略。第13章介绍了守护进程。第14章介绍了高级I/O。第15~17章专门介绍了IPC的各种细节,包括传统的IPC、网络IPC和高级IPC。第18、19章对终端概念进行了介绍,包括终端I/O和伪终端。第20、21章用两个“长示例”将前述章节介绍的知识串联起来,分别是一个数据库示例和一个与网络打印机通信的示例。本书适合对UNIX/Linux有一定使用经验或者编程经验的读者,有C语言基础的读者,从事UNIX/Linux应用软件开发的读者或者对此感兴趣的读者。
關於作者:
已故的W. Richard Stevens是《UNIX网络编程》(这本书被公认为是UNIX网络领域的经典著作)第 1 和第 2 卷的作者,也是《TCP/IP 详解》第 1~3 卷及本书第 1 版的作者。Stephen A. Rago是NEC Laboratories America 的存储系统团队的研究人员。在此之前,他是Bell Laboratories的开发者之一,曾开发 UNIX System V Release 4。他还是《UNIX System V Network Programming》的作者、本书第 1 版的审稿人和第 2 版的合著者。张毅峰,软件架构师,目前在上汽创新研发总院软件部门负责智能网联相关基础软件的项目预研、新技术导入及行业趋势跟踪等工作,是上汽集团基金会的多个产学研课题负责人,也是AUTOSAR中国中心的项目发言人。长期从事一线研发工作,具有丰富的车载嵌入式软硬件协同开发经验,负责过上汽集团多个嵌入式项目的基础软件开发和管理工作,对智能化时代的车载基础软件核心要素和发展趋势有着深刻的认识和见解。马树超,腾讯后台开发工程师,曾就职百度从事接入接出网关研发运营相关工作,目前从事高性能负载均衡网关设计和研发工作;具有丰富的系统网络开发经验。 当前主要关注网络转发、网络安全、加解密协议等领域。池艳广,中兴通讯专家级软件开发工程师、高级TL、安全编码专家、题库设计专家、面试官,在TCP/IP协议、WiFi驱动、嵌入式Linux等领域有着丰富的实战经验。CSDN博客专家、Linux领域优质创作者、CSDN C语言社区管理员、阿里云专家博主。公众号:Linux探索者;CSDN博客:花神庙码农。刚铎,毕业于大连理工大学,硕士研究生,系统分析与集成专业。先后就职于华为、神州数码,曾获得多个厂商的高级技术认证。现就职于电信数智科技有限公司,从事云网技术架构与落地工作,关注网络和安全、云计算和人工智能等方向。
目錄 :
1 UNIX系统概述1 1.1 引言1 1.2 UNIX系统架构1 1.3 登录2 1.4 文件和目录4 1.5 输入和输出8 1.6 程序和进程11 1.7 错误处理14 1.8 用户标识16 1.9 信号18 1.10 时间值20 1.11 系统调用和库函数21 1.12 小结23 2 UNIX标准与实现24 2.1 引言24 2.2 UNIX标准化24 2.2.1 ISO C24 2.2.2 IEEE POSIX26 2.2.3 Single UNIX Specification31 2.2.4 FIPS32 2.3 UNIX系统实现33 2.3.1 SVR433 2.3.2 4.4BSD34 2.3.3 FreeBSD34 2.3.4 Linux35 2.3.5 Mac OS X35 2.3.6 Solaris35 2.3.7 其他UNIX系统36 2.4 UNIX标准和实现的关系36 2.5 限制36 2.5.1 ISO C限制37 2.5.2 POSIX限制39 2.5.3 XSI限制41 2.5.4 sysconf、pathconf和fpathconf函数42 2.5.5 不确定的运行时限制49 2.6 选项53 2.7 功能测试宏57 2.8 基本系统数据类型58 2.9 标准之间的冲突59 2.10 小结60 3 文件I/O61 3.1 引言61 3.2 文件描述符61 3.3 open和openat函数62 3.4 create函数66 3.5 close函数66 3.6 lseek函数67 3.7 read函数71 3.8 write函数72 3.9 I/O的效率73 3.10 文件共享75 3.11 原子操作78 3.12 dup和dup2函数80 3.13 sync、fsync和fdatasync函数81 3.14 fcntl函数82 3.15 ioctl函数88 3.16 /dev/fd89 3.17 小结90 4 文件和目录92 4.1 引言92 4.2 stat、fstat、fstatat和lstat函数92 4.3 文件类型94 4.4 设置用户ID和设置组ID97 4.5 文件访问权限98 4.6 新文件和目录的所有权100 4.7 access和faccessat函数101 4.8 umask函数103 4.9 chmod、fchmod和fchmodat函数105 4.10 粘着位108 4.11 chown、fchown、fchownat和lchown函数109 4.12 文件长度110 4.13 文件截断112 4.14 文件系统112 4.15 link、linkat、unlink、unlinkat和remove函数115 4.16 rename和renameat函数118 4.17 符号链接119 4.18 创建和读取符号链接123 4.19 文件的时间123 4.20 futimens、utimensat和utimes函数125 4.21 mkdir、mkdirat和rmdir函数128 4.22 读目录130 4.23 chdir、fchdir和getcwd函数134 4.24 设备特殊文件137 4.25 文件访问权限位139 4.26 小结140 5 标准I/O库142 5.1 引言142 5.2 流和FILE对象142 5.3 标准输入、标准输出和标准错误144 5.4 缓冲144 5.5 打开流147 5.6 读流和写流149 5.7 每次一行I/O151 5.8 标准I/O的效率153 5.9 二进制I/O155 5.10 定位流156 5.11 格式化I/O158 5.12 实现细节162 5.13 临时文件166 5.14 内存流170 5.15 标准I/O的替代软件173 5.16 小结173 6 系统数据文件和信息175 6.1 序言175 6.2 口令文件175 6.3 阴影口令179 6.4 组文件180 6.5 补充组ID182 6.6 各个实现的差异183 6.7 其他数据文件184 6.8 登录记账185 6.9 系统标识186 6.10 时间和日期例程187 6.11 小结194 7 进程环境196 7.1 引言196 7.2 main函数196 7.3 进程终止197 7.4 命令行参数201 7.5 环境列表202 7.6 C程序的内存布局203 7.7 共享库205 7.8 内存申请205 7.9 环境变量209 7.10 setjmp和longjmp函数212 7.11 getrlimit和setrlimit函数218 7.12 小结223 8 进程控制225 8.1 引言225 8.2 进程标识符225 8.3 fork函数226 8.4 vfork函数232 8.5 exit函数234 8.6 wait和waitpid函数236 8.7 waitid函数241 8.8 wait3和wait4函数242 8.9 竞态条件243 8.10 exec函数247 8.11 更改用户ID和用户组ID253 8.12 解释器脚本文件258 8.13 system函数262 8.14 进程记账267 8.15 用户标识273 8.16 进程调度274 8.17 进程时间277 8.18 小结280 9 进程关系282 9.1 序言282 9.2 终端登录282 9.3 网络登录287 9.4 进程组290 9.5 会话292 9.6 控制终端293 9.7 tcgetpgrp、tcsetpgrp和tcgetsid函数295 9.8 作业控制296 9.9 shell执行程序300 9.10 孤儿进程组304 9.11 FreeBSD实现306 9.12 小结309 10 信号310 10.1 序言310 10.2 信号的概念310 10.3 signal函数320 10.4 不可靠信号324 10.5 中断的系统调用325 10.6 可重入函数328 10.7 SIGCLD语义330 10.8 可靠信号的术语和语义333 10.9 kill和raise函数334 10.10 alarm和pause函数335 10.11 信号集341 10.12 sigprocmask函数343 10.13 sigpending函数345 10.14 sigaction函数347 10.15 sigsetjmp和siglongjmp函数353 10.16 sigsuspend函数356 10.17 abort函数363 10.18 system函数365 10.19 sleep、nanosleep和clock_nanosleep函数371 10.20 sigqueue函数374 10.21 作业控制信号375 10.22 信号名和编号377 10.23 小结379 11 线程381 11.1 序言381 11.2 线程的概念381 11.3 线程标识382 11.4 线程创建384 11.5 线程终止386 11.6 线程同步394 11.6.1 互斥量397 11.6.2 避免死锁399 11.6.3 pthread_mutex_timedlock函数405 11.6.4 读写锁406 11.6.5 带有超时的读写锁410 11.6.6 条件变量411 11.6.7 自旋锁414 11.6.8 屏障416 11.7 小结419 12 线程控制421 12.1 引言421 12.2 线程限制421 12.3 线程属性422 12.4 同步属性426 12.4.1 互斥锁属性426 12.4.2 读写锁属性435 12.4.3 条件变量属性436 12.4.4 屏障属性437 12.5 重入437 12.6 线程特定数据442 12.7 取消选项446 12.8 线程和信号448 12.9 线程和fork452 12.10 线程和I/O456 12.11 小结457 13 守护进程458 13.1 引言458 13.2 守护进程的特征458 13.3 编码规则461 13.4 出错记录464 13.5 单示例守护进程468 13.6 守护进程的惯例469 13.7 客户端-服务器模型474 13.8 小结475 14 高级I/O476 14.1 引言476 14.2 非阻塞I/O476 14.3 记录锁480 14.4 I/O多路复用494 14.4.1 select和pselect函数497 14.4.2 poll函数501 14.5 异步I/O503 14.5.1 System V异步I/O504 14.5.2 BSD异步I/O505 14.5.3 POSIX异步I/O505 14.6 readv和writev函数515 14.7 readn和writen函数517 14.8 内存映射I/O519 14.9 小结526 15 进程间通信528 15.1 引言528 15.2 管道529 15.3 poepn和pclose函数536 15.4 协同进程543 15.5 FIFO547 15.6 XSI IPC551 15.6.1 标识符和键552 15.6.2 权限结构体553 15.6.3 可配置性限制554 15.6.4 优缺点554 15.7 消息队列556 15.8 信号量561 15.9 共享内存566 15.10 POSIX信号量573 15.11 客户端/服务器属性579 15.12 小结581 16 网络IPC:套接字584 16.1 引言584 16.2 套接字描述符584 16.3 地址588 16.3.1 字节序588 16.3.2 地址格式589 16.3.3 地址查询591 16.3.4 将套接字与地址关联599 16.4 建立连接600 16.5 数据传输604 16.6 套接字选项617 16.7 带外数据620 16.8 非阻塞和异步I/O621 16.9 小结622 17 高级进程间通信623 17.1 引言623 17.2 UNIX域套接字623 17.2.1 命名UNIX域套接字628 17.3 唯一连接629 17.4 传递文件描述符636 17.5 第1版open服务进程647 17.6 第2版open服务进程653 17.7 小结663 18 终端I/O665 18.1 引言665 18.2 概述665 18.3 特殊输入字符672 18.4 获取和设置终端属性677 18.5 终端选项标识677 18.6 stty命令686 18.7 波特率函数686 18.8 行控制函数687 18.9 终端标识688 18.10 规范模式694 18.11 非规范模式697 18.12 终端窗口大小704 18.13 termcap、terminfo和curses705 18.14 小结706 19 伪终端708 19.1 引言708 19.2 概述708 19.3 打开伪终端设备715 19.4 pty_fork函数719 19.5 pty程序721 19.6 使用pty程序726 19.7 高级特性733 19.8 小结734 20 数据库函数库736 20.1 引言736 20.2 历史736 20.3 函数库737 20.4 实现概述739 20.5 采用集中式还是分散式743 20.6 并发744 20.7 构建函数库745 20.8 源代码746 20.9 性能773 20.10 小结778 21 与网络打印机通信780 21.1 引言780 21.2 网络打印协议780 21.3 超文本传输协议783 21.4 打印机后台处理技术784 21.5 源代码786