UNIX网络编程 卷2 进程间通信(第2版)

UNIX网络编程 卷2 进程间通信(第2版) pdf epub mobi txt 电子书 下载 2025

[美] W.理查德·史蒂文斯(W.Richard Stevens) 著
图书标签:
  • UNIX网络编程
  • 进程间通信
  • IPC
  • 网络编程
  • UNIX
  • 系统编程
  • C语言
  • 多进程
  • 套接字
  • 第2版
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115367204
版次:2
商品编码:11728727
品牌:异步图书
包装:平装
开本:16开
出版时间:2015-08-01
用纸:胶版纸
页数:472
字数:778000

具体描述

编辑推荐

两卷本的《UNIX网络编程》是已故著名技术作家W. Richard Stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。
良好的进程间通信(IPC)机制是提高UNIX程序性能的关键。《UNIX网络编程 卷2 进程间通信(第2版)》全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程过程调用(RPC)。书中包含了大量经过优化的源代码,帮助读者加深理解。这些源代码可以从本书网站下载。
《UNIX网络编程 卷2 进程间通信(第2版)》是网络研究和开发人员公认的专业参考书,无论网络编程的初学者还是网络专家都会大受裨益。

内容简介

《UNIX网络编程 卷2 进程间通信(第2版)》是一部UNIX 网络编程的经典之作!进程间通信(IPC)几乎是所有Unix 程序性能的关键,理解IPC 也是理解如何开发不同主机间网络应用程序的必要条件。本书从对Posix IPC 和System V IPC 的内部结构开始讨论,全面深入地介绍了4 种IPC 形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件与记录锁、信号量)、共享内存(匿名共享内存、具名共享内存)及远程过程调用(Solaris门、Sun RPC)。附录中给出了测量各种IPC 形式性能的方法。
《UNIX网络编程 卷2 进程间通信(第2版)》内容详尽且具专业性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。

作者简介

W. Richard Stevens (1951-1999)是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的教师和顾问。Stevens先生1951年生于赞比亚,他的家庭曾多次搬迁,最终定居于南非。早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程;还曾在康涅狄格州纽黑文市的健康系统国际公司任主管计算机服务的副总裁。国际知名的Unix和网络专家,《TCP/IP 详解》(三卷本)、《UNIX网络编程》(两卷本)以及《UNIX环境高级编程》的作者。

精彩书评

“强烈怀念W. Richard Stevens……他的书都写得非常非常好,与同类主题的其他书相比,他的书更注重理解核心概念和基本原理,这使得这本书在出版15年之后,仍然非常有用——这几乎是一本长盛不衰的计算机科学书!”
——Ricardo

“我做专业程序员已经二十余年了,每当要写新程序的时候,我都要参考这本书。Stevens的书是我进入VoIP和音频CODEC网络编程领域的敲门砖。”
——C. T. Vanderdecken

“在我做过的项目中,已经记不清楚有多少次靠这套书力挽狂澜……每位真正的UNIX系统程序员都应该买一套。”
——David Sharpe

“对每位UNIX平台的程序员而言,这本书都是必备的。它深入阐释了UNIX平台上的各种IPC API。既涵盖System V也涉及POSIX标准,对于IPC的论述无可匹敌。书末的附录对各种管道、FIFO、POSIX消息队列、System V消息队列、门、Sun RPC的性能进行了比较,我从来没有看到哪本书如此广泛而深入地介绍这一主题。更何况,它出自专业人物之手。”
——asingh

“Stevens是UINX网络编程的‘神’,至少是我的‘神’。”
——Matthew MacGibbon

目录

第一部分 简介
第1章 简介 2
1.1 概述 2
1.2 进程、线程与信息共享 3
1.3 IPC对象的持续性 4
1.4 名字空间 5
1.5 fork、exec和exit对IPC对象的
影响 7
1.6 出错处理:包裹函数 8
1.7 Unix标准 9
1.8 书中IPC例子索引表 11
1.9 小结 13
习题 13
第2章 Posix IPC 14
2.1 概述 14
2.2 IPC名字 14
2.3 创建与打开IPC通道 16
2.4 IPC权限 18
2.5 小结 19
习题 19
第3章 System V IPC 20
3.1 概述 20
3.2 key_t键和ftok函数 20
3.3 ipc_perm结构 22
3.4 创建与打开IPC通道 22
3.5 IPC权限 24
3.6 标识符重用 25
3.7 ipcs和ipcrm程序 27
3.8 内核限制 27
3.9 小结 28
习题 29
第二部分 消息传递
第4章 管道和FIFO 32
4.1 概述 32
4.2 一个简单的客户-服务器例子 32
4.3 管道 32
4.4 全双工管道 37
4.5 popen和pclose函数 39
4.6 FIFO 40
4.7 管道和FIFO的额外属性 44
4.8 单个服务器,多个客户 46
4.9 对比迭代服务器与并发服务器 50
4.10 字节流与消息 51
4.11 管道和FIFO限制 55
4.12 小结 56
习题 57
第5章 Posix消息队列 58
5.1 概述 58
5.2 mq_open、mq_close和mq_unlink
函数 59
5.3 mq_getattr和mq_setattr函数 61
5.4 mq_send和mq_receive函数 64
5.5 消息队列限制 67
5.6 mq_notify函数 68
5.7 Posix实时信号 78
5.8 使用内存映射I/O实现Posix消息队列 85
5.9 小结 101
习题 101
第6章 System V消息队列 103
6.1 概述 103
6.2 msgget函数 104
6.3 msgsnd函数 104
6.4 msgrcv函数 105
6.5 msgctl函数 106
6.6 简单的程序 107
6.7 客户-服务器例子 112
6.8 复用消息 113
6.9 消息队列上使用select和poll 121
6.10 消息队列限制 122
6.11 小结 124
习题 124
第三部分 同步
第7章 互斥锁和条件变量 126
7.1 概述 126
7.2 互斥锁:上锁与解锁 126
7.3 生产者-消费者问题 127
7.4 对比上锁与等待 131
7.5 条件变量:等待与信号发送 132
7.6 条件变量:定时等待和广播 136
7.7 互斥锁和条件变量的属性 136
7.8 小结 139
习题 139
第8章 读写锁 140
8.1 概述 140
8.2 获取与释放读写锁 140
8.3 读写锁属性 141
8.4 使用互斥锁和条件变量实现读写锁 142
8.5 线程取消 148
8.6 小结 153
习题 153
第9章 记录上锁 154
9.1 概述 154
9.2 对比记录上锁与文件上锁 157
9.3 Posix fcntl记录上锁 158
9.4 劝告性上锁 162
9.5 强制性上锁 164
9.6 读出者和写入者的优先级 166
9.7 启动一个守护进程的唯一副本 170
9.8 文件作锁用 171
9.9 NFS上锁 173
9.10 小结 173
习题 174
第10章 Posix信号量 175
10.1 概述 175
10.2 sem_open、sem_close和sem_unlink函数 179
10.3 sem_wait和sem_trywait函数 180
10.4 sem_post和sem_getvalue函数 180
10.5 简单的程序 181
10.6 生产者-消费者问题 186
10.7 文件上锁 190
10.8 sem_init和sem_destroy函数 191
10.9 多个生产者,单个消费者 193
10.10 多个生产者,多个消费者 196
10.11 多个缓冲区 199
10.12 进程间共享信号量 205
10.13 信号量限制 206
10.14 使用FIFO实现信号量 206
10.15 使用内存映射I/O实现信号量 210
10.16 使用System V信号量实现Posix信号量 218
10.17 小结 224
习题 225
第11章 System V 信号量 226
11.1 概述 226
11.2 semget函数 227
11.3 semop函数 229
11.4 semctl函数 231
11.5 简单的程序 232
11.6 文件上锁 237
11.7 信号量限制 238
11.8 小结 242
习题 242
第四部分 共享内存区
第12章 共享内存区介绍 244
12.1 概述 244
12.2 mmap、munmap和msync函数 247
12.3 在内存映射文件中给计数器持续加1 250
12.4 4.4BSD匿名内存映射 254
12.5 SVR4 /dev/zero内存映射 255
12.6 访问内存映射的对象 255
12.7 小结 259
习题 260
第13章 Posix共享内存区 261
13.1 概述 261
13.2 shm_open和shm_unlink函数 261
13.3 ftruncate和fstat函数 262
13.4 简单的程序 263
13.5 给一个共享的计数器持续加1 267
13.6 向一个服务器发送消息 270
13.7 小结 275
习题 275
第14章 System V共享内存区 276
14.1 概述 276
14.2 shmget函数 276
14.3 shmat函数 277
14.4 shmdt函数 277
14.5 shmctl函数 277
14.6 简单的程序 278
14.7 共享内存区限制 281
14.8 小结 282
习题 283
第五部分 远程过程调用
第15章 门 286
15.1 概述 286
15.2 door_call函数 291
15.3 door_create函数 292
15.4 door_return函数 293
15.5 door_cred函数 294
15.6 door_info函数 294
15.7 例子 295
15.8 描述符传递 306
15.9 door_sever_create函数 310
15.10 door_bind、door_unbind和door_revoke函数 315
15.11 客户或服务器的过早终止 315
15.12 小结 321
习题 322
第16章 Sun RPC 323
16.1 概述 323
16.2 多线程化 330
16.3 服务器捆绑 333
16.4 认证 336
16.5 超时和重传 338
16.6 调用语义 342
16.7 客户或服务器的过早终止 343
16.8 XDR:外部数据表示 345
16.9 RPC分组格式 361
16.10 小结 365
习题 366
后记 368
附录A 性能测量 371
附录B 线程入门 406
附录C 杂凑的源代码 409
附录D 精选习题解答 417
参考文献 433
索引 435

精彩书摘

  检查队列是否填满   39~48 如果调用者指定的队列已填满,但是o_NONBLOCK标志已设置,我们就返回一个EAGAIN错误。否则,我们等待在条件变量mqh_wait上,该条件变量由我们的mq_receive函数在从某个填满的队列中读出一个消息时发给信号。   就mq_send调用在被某个由其调用进程捕获的信号中断时返回一个EINTR错误而言,我们的实现简化了。问题在于当信号处理程序返回时,pthread_cond_wait并不返回一个错误:它可能返回一个为0的值(这看来是次虚假的唤醒),也可能根本不返回。绕过这一问题的方法确实存在,但每种方法都不简单。   图5—30给出了mq_send函数的后半部分。至此我们已知道调用者指定的队列中有写入新消息的空间。   取得待用空闲块的索引   50~52 既然在调用者指定的队列初始化时创建的空闲消息数等于mq_maxmsg,我们就不应该有在空闲链表为空的前提下mq_curmsgs小于mq_maxmsg的状态。   复制消息   53~56 nmsghdr含有所映射内存区中用于存放待写入消息的位置的地址。该消息的优先级和长度存放在它的msg_hdr结构中,其内容则从调用者空间复制。   把新消息置于链表中正确位置   57~74 我们的链表中各消息的顺序是从开始处(mqh_head)的最高优先级到结束处的最低优先级。当一个新消息加入调用者指定的队列中,并且一个或多个同样优先级的消息已在该队列中时,这个新消息就加在最后一个优先级相同的消息之后。使用这样的排序方式后,mq_receive总是返回链表中的第一个消息(它是该队列上优先级最高的最早的消息)。当我们沿链表行进时,pmsghdr将含有链表中上一个消息的地址,因为它的msg_next值将含有该新消息的索引。  ……

前言/序言


书名:UNIX网络编程 卷2 进程间通信(第2版) 内容简介 本书是 UNIX 网络编程领域的经典著作,聚焦于进程间通信(IPC)这一核心主题。它深入浅出地剖析了 UNIX 系统中实现进程间通信的各种机制,为开发者提供了坚实的基础和丰富的实践指导。本书内容详实,涵盖了从基本概念到高级技巧的全方位知识,是从事 UNIX 系统开发、网络编程以及需要深入理解进程间协作的开发者的必备参考。 核心内容概述 本书的核心在于系统性地介绍和分析 UNIX 操作环境中,不同进程之间如何进行高效、可靠的数据交换和协同工作。我们将从最基础的 IPC 概念入手,逐步深入到各种具体的技术实现。 1. 基础概念与原理 在开始介绍具体的 IPC 机制之前,本书首先会建立起对进程、线程以及它们之间通信必要性的清晰认识。我们会探讨为什么需要进程间通信,以及在单机系统和分布式系统中,进程通信面临的不同挑战。理解进程的独立性是理解 IPC 机制的前提,本书将阐释进程隔离的优势与局限,以及 IPC 如何在保持独立性的同时,实现信息共享与协作。 进程模型与独立性: 详细介绍 UNIX 进程模型,理解每个进程拥有独立的地址空间、文件描述符等资源,以及这种独立性对通信带来的挑战。 通信的必要性: 探讨在现代软件架构中,为什么进程间的有效通信至关重要,例如分布式系统、多线程应用程序、模块化设计等场景。 同步与异步通信: 区分同步和异步通信模式,理解它们在性能、资源消耗和编程复杂性上的差异,并根据不同场景选择合适的通信模式。 2. 文件 I/O 与管道(Pipes) 管道是最简单、也是最基础的进程间通信机制之一。本书将详细讲解如何创建、使用和管理管道,包括单向管道和双向管道(FIFO)。我们会深入分析管道的底层实现原理,包括缓冲区管理、读写操作的阻塞与非阻塞模式,以及如何处理管道的关闭和错误。 匿名管道(Unnamed Pipes): 讲解 `pipe()` 系统调用,如何创建管道,并通过文件描述符进行读写。重点分析其限制,如只能用于有血缘关系的进程。 命名管道(FIFO): 介绍 `mkfifo()` 系统调用,如何创建可以在文件系统中访问的命名管道,从而实现任意进程之间的通信。深入分析 FIFO 的工作机制,包括阻塞特性、读写顺序以及并发访问的处理。 管道的使用场景: 演示管道在Shell命令组合、简单的进程间数据流传输等场景下的应用。 3. 消息队列(Message Queues) 消息队列提供了一种更加灵活和强大的进程间通信方式,允许进程之间发送和接收离散的消息。本书将详细介绍 System V 消息队列和 POSIX 消息队列,分析它们的 API、特性、优缺点以及适用场景。 System V 消息队列: 讲解 `msgget()`, `msgsnd()`, `msgrcv()`, `msgctl()` 等关键系统调用。分析消息队列的特点,如消息的优先级、类型,以及不同进程如何通过消息 ID 进行访问。讨论 System V 消息队列的潜在问题,如资源泄漏和性能瓶颈。 POSIX 消息队列: 介绍 POSIX 标准提供的消息队列机制,其 API 更加面向对象,提供了更好的灵活性和可移植性。分析 `mq_open()`, `mq_send()`, `mq_receive()`, `mq_close()`, `mq_unlink()` 等函数。强调 POSIX 消息队列在现代系统中的优势。 消息队列的对比分析: 详细比较 System V 和 POSIX 消息队列在接口、性能、特性和可用性上的差异,帮助读者根据实际需求做出选择。 4. 共享内存(Shared Memory) 共享内存是最快的进程间通信机制,因为它允许多个进程直接访问同一块内存区域。本书将深入剖析 System V 共享内存和 POSIX 共享内存的实现原理和使用方法。 System V 共享内存: 讲解 `shmget()`, `shmat()`, `shmdt()`, `shmctl()` 等系统调用。重点分析共享内存的创建、映射、访问和解除映射过程。深入讨论如何管理共享内存段的生命周期,以及潜在的竞争条件和数据一致性问题。 POSIX 共享内存: 介绍 POSIX 标准提供的共享内存接口,通常通过 `shm_open()` 创建一个特殊的文件,然后使用 `mmap()` 将其映射到进程的地址空间。分析这种方法的优势,如更易于管理和跨平台性。 同步机制的配合: 强调共享内存的效率是以牺牲进程隔离性为代价的,因此必须配合其他同步机制(如信号量、互斥锁)来保证数据访问的正确性和一致性。 5. 信号量(Semaphores) 信号量是用于进程间同步和互斥的强大工具。本书将详细讲解 System V 信号量和 POSIX 信号量的使用,包括初始化、P/V 操作(wait/signal)以及它们在保护共享资源、控制进程并发访问方面的作用。 System V 信号量: 讲解 `semget()`, `semop()`, `semctl()` 系统调用。分析信号量集、单个信号量以及它们的操作。深入理解信号量的原子性操作,以及如何利用信号量实现生产者-消费者模型、读者-写者模型等经典并发问题。 POSIX 信号量: 介绍 POSIX 命名信号量和无名信号量。分析 `sem_init()`, `sem_wait()`, `sem_post()`, `sem_trywait()`, `sem_close()`, `sem_unlink()` 等函数。重点分析 POSIX 信号量在不同场景下的使用,包括进程间和线程间同步。 信号量的应用场景: 演示信号量在控制对共享资源的访问、进程间的调度协调、实现临界区等方面的实际应用。 6. 信号(Signals) 信号是 UNIX 系统中一种处理异步事件的机制。本书将全面介绍信号的产生、传递、处理以及各种信号的含义。 信号的类型与产生: 讲解各种系统定义的信号(如 `SIGINT`, `SIGTERM`, `SIGKILL`, `SIGSEGV` 等)的含义和产生方式,包括由用户输入、系统错误、其他进程发送等。 信号的捕获与处理: 介绍 `signal()` 和 `sigaction()` 系统调用,如何为特定信号注册处理函数。深入分析信号处理函数的编写注意事项,如重入性、异步信号安全函数。 信号的阻塞与屏蔽: 讲解如何使用 `sigprocmask()` 来阻塞或解除对信号的屏蔽,以及 `sigsuspend()` 的作用。 可靠信号(Reliable Signals): 讨论 `sigaction()` 相比 `signal()` 的优势,以及如何处理信号丢失问题。 7. 客户-服务器模型与套接字(Sockets) 虽然本书的核心是进程间通信,但网络编程中的客户-服务器模型是进程间通信在分布式环境下的重要体现。本书将简要介绍套接字的基本概念,特别是本地(UNIX Domain)套接字,因为它是在同一台机器上实现进程间通信的一种高效方式。 UNIX Domain 套接字: 讲解如何使用 `socket(AF_UNIX, ...)` 创建本地套接字。分析其与 TCP/IP 套接字的区别,以及在性能和安全性方面的优势。演示本地套接字在实现进程间通信中的应用。 8. 健壮性与错误处理 在实际开发中,进程间通信的健壮性和错误处理至关重要。本书将贯穿始终地强调如何编写可靠的 IPC 代码。 错误码与异常处理: 讲解如何检查系统调用的返回值,并根据错误码进行正确的处理。 资源管理: 强调及时释放 IPC 资源,避免资源泄漏。 并发访问的安全: 详细讲解如何使用同步机制避免数据损坏和死锁。 调试技巧: 提供一些调试 IPC 程序的实用技巧。 学习本书将获得的收益 通过深入学习本书,读者将能够: 深刻理解 UNIX 系统中进程间通信的原理和机制。 熟练掌握 各种 IPC 技术的 API 和使用方法。 能够根据不同的应用场景,选择最适合的 IPC 机制。 编写出高效、可靠、健壮的 进程间通信程序。 为开发更复杂的分布式系统和高性能应用程序 打下坚实的基础。 本书不仅是理论知识的梳理,更是大量实践指导的集合。书中丰富的代码示例将帮助读者将理论知识转化为实际应用,从而更好地理解和掌握 UNIX 进程间通信的精髓。

用户评价

评分

说实话,一开始拿到这本书,我还是有点忐忑的。毕竟“进程间通信”听起来就不是个轻松的话题,而且还是第二版,意味着可能技术更新迭代了不少。但实际阅读下来,这本书的价值远超我的预期。作者的写作风格非常严谨,每一章都像是在搭建一座精密的大厦,从地基(基础概念)到框架(各种IPC机制),再到内部装修(优化和错误处理),层层递进,让人不由自主地跟着他的思路走。我特别欣赏他对不同IPC机制的比较分析,比如什么时候用管道,什么时候用共享内存,什么时候用消息队列,这些权衡分析非常实用,能避免我在实际开发中走弯路。而且,书中提供的代码示例,虽然量不是特别大,但都是精心设计的,能够直观地展示IPC的用法和注意事项。读完这本书,感觉自己对UNIX下的并发和通信有了全新的认识,不再是停留在表面的API调用,而是真正理解了背后的“道”。

评分

我一直认为,要真正掌握一个操作系统,就必须深入了解它的进程间通信机制。这本《UNIX网络编程 卷2 进程间通信(第2版)》恰恰满足了我的这个需求。作者并没有停留在API的表面介绍,而是深入挖掘了每一种IPC机制的底层实现原理,比如它们在内核中的具体数据结构、系统调用是如何工作的,以及不同机制在性能和安全性上的取舍。我尤其喜欢书中对各种IPC工具的对比分析,比如管道和System V消息队列的效率差异,共享内存的安全隐患以及如何规避。这不仅让我知其然,更知其所以然。而且,书中对内存管理、同步机制和异常处理等方面的讲解,都与IPC紧密结合,帮助我构建更健壮、更高效的应用程序。对于那些想要突破自己,从使用者变成创造者的开发者而言,这本书绝对是一笔宝贵的财富。

评分

这本《UNIX网络编程 卷2 进程间通信(第2版)》简直是打开了我对并发编程新世界的大门!我之前总是在高层API打转,对底层到底是怎么实现的,总是有种雾里看花的感觉。读了这本书,才明白原来那些我们习以为常的便利背后,竟然有着如此精妙的设计和底层逻辑。作者对每一种IPC方式的讲解都循序渐进,从最基础的管道,到更复杂的System V IPC,再到POSIX IPC,每一步都踩得很扎实。让我印象深刻的是,书中不仅仅是罗列API,而是深入剖析了它们的工作原理,比如共享内存是如何在进程间映射的,消息队列又是如何进行数据传递的,这些细节对我理解程序的健壮性和性能瓶颈非常有帮助。而且,书中对线程安全和同步机制的讲解也非常到位,让我意识到在多线程环境下,IPC的实现需要多么细致的考量。这本书让我从“会用”变成了“理解”,再到“能设计”。

评分

这本书绝对是为那些希望在UNIX环境下进行深度系统编程的开发者准备的。我最近在处理一个需要大量数据同步和共享的复杂系统,之前尝试过一些现成的库,但总感觉不够灵活,而且对性能提升有限。这本书的出现,让我看到了解决问题的希望。作者对各种IPC机制的深入剖析,让我能够根据实际需求,选择最合适、最高效的通信方式。例如,关于共享内存的部分,我学习到了如何高效地管理内存区域,以及如何利用原子操作来避免竞态条件,这对于我处理高并发场景下的数据访问至关重要。书中关于进程同步的讲解,也让我对锁、信号量等概念有了更深刻的理解,这对于防止死锁和提高系统稳定性至关重要。即使某些章节的技术细节可能稍显晦涩,但通过作者清晰的讲解和丰富的图示,最终都能豁然开朗。这本书是我近期最重要的技术读物之一。

评分

这本书我早就听说过了,一直想找机会好好读读。最近手头项目正好涉及到一些跨进程通信的场景,感觉是时候下手了。虽然书名听起来有点硬核,但翻开之后,发现作者的讲解虽然深入,但逻辑非常清晰。那些复杂的概念,比如管道、消息队列、共享内存,在书中都被拆解得明明白白,配合着大量的代码示例,读起来一点都不觉得枯燥。尤其是在讲信号量和死锁的时候,简直是醍醐灌顶,之前一些模糊的概念一下子就清晰了。我特别喜欢书中对各种IPC机制的优缺点分析,以及在不同场景下的适用性建议,这对于我这种需要落地实践的人来说,简直是宝藏。而且,书中的例子代码都写得非常规范,一看就是经过深思熟虑的,不仅仅是简单地实现功能,更是在演示最佳实践。我打算把书里的例子都亲自敲一遍,加深理解。这本书对于想要深入理解UNIX系统底层通信机制的开发者来说,绝对是必读之作。

评分

书活动的时候临时提价我就不说了,终归最终便宜了一点,平均一本书便宜了十块左右吧。

评分

很好,京东的物流速度还是一如既往的快,书很不错

评分

书的质量挺不错的,活动力度很大,很不错!

评分

送货速度很快,昨晚凌晨接近一点才下单,今天下午五点左右就到了。书本纸质也不错,和学校的课本一样,是正版。书本很厚,慢慢看,感谢店家

评分

空气泡的袋子装着,收到没有破损折角。工作有时用到,想多了解一下。618折买,两册,平均五十一本。

评分

这一版涵盖了70多个新版POSIX.1标准的新增接口,包括POSIX异步I/O、旋转锁、屏障(barrier)和POSIX信号量。此外,这一版删除了许多过时的接口,保留了一些广泛使用的接口。书中几乎所有实例都已经在目前主流的4个平台上测试过,包括Solaris 10、Mac OS X 10.6.8(Darwin 10.8.0

评分

京东快递很快,在双十一前优惠不错,买了好几本。

评分

又买了一堆书,不知道什么时候能看完,去年买的还没看?

评分

封面好脏,还有破损,而且目录和内容页数不对应

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有