由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]套装3本UNIX环境高级编程第3版 UNIX网络编程卷1 套接字联网API 卷2 进程间通信 计算机应用程序网
¥ ×1
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。
温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货)。
关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
|
【全3册】 UNIX环境高级编程全套 | ||
定价 | 447.00 | |
出版社 | 人民邮电出版社 | |
版次 | 1 | |
出版时间 | 2015年05月 | |
开本 | 16开 | |
作者 | [美]史蒂文斯,拉戈 | |
装帧 | 平装 | |
页数 | ||
字数 | ||
ISBN编码 | 9787115517791 |
《UNIX环境GJ编程(D3版)》是被誉为UNIX编程“圣经”的AdvancedProgrammingintheUNIXEnvironment一书的D3版。在本书D2版出版后的8年中,UNIX发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。《UNIX环境GJ编程(D3版)》在保持前一版风格的基础上,根据*的标准对内容进行了修订和增补,反映了*的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。
《UNIX环境GJ编程(D3版)》内容QW,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。
本书是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的GJ主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,*后还深入分析了流这种设备驱机制。 本书内容详尽且具QW性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
两卷本的《UNIX网络编程》是已故ZM技术作家W. Richard Stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。良好的进程间通信(IPC)机制是提高UNIX程序性能的关键。本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程过程调用(RPC)。书中包含了大量经过优化的源代码,帮助读者加深理解。这些源代码可以从本书wz下载。本书是网络研究和开发人员GR的QW参考书,无论网络编程的初学者还是网络专家都会大受裨益。
《UNIX网络编程卷1套接字联网APID3版》
目 录
DI一部分 简介和TCP/IP
D 1章 简介 2
1.1 概述 2
1.2 一个简单的时间获取客户程序 5
1.3 协议无关性 9
1.4 错误处理:包裹函数 10
1.5 一个简单的时间获取服务器程序 12
1.6 本书中客户/服务器程序示例索引表 14
1.7 OSI模型 16
1.8 BSD网络支持历史 17
1.9 测试用网络及主机 19
1.10 Unix标准 22
1.11 64位体系结构 24
1.12 小结 25
习题 25
D 2章 传输层:TCP、UDP和SCTP 27
2.1 概述 27
2.2 z图 27
2.3 用户数据报协议(UDP) 29
2.4 传输控制协议(TCP) 30
2.5 流控制传输协议(SCTP) 31
2.6 TCP连接的建立和终止 31
2.7 TIME_WAIT状态 37
2.8 SCTP关联的建立和终止 38
2.9 端口号 42
2.10 TCP端口号与并发服务器 43
2.11 缓冲区大小及限制 45
2.12 标准因特网服务 50
2.13 常见因特网应用的协议使用 51
2.14 小结 52
习题 53
D二部分 基本套接字编程
D3章 套接字编程简介 56
3.1 概述 56
3.2 套接字地址结构 56
3.3 值—结果参数 61
3.4 字节排序函数 63
3.5 字节操纵函数 66
3.6 inet_aton、inet_addr和inet_ntoa函数 67
3.7 inet_pton和inet_ntop函数 68
3.8 sock_ntop和相关函数 70
3.9 readn、writen和readline函数 72
3.10 小结 76
习题 76
D4章 基本TCP套接字编程 77
4.1 概述 77
4.2 socket函数 77
4.3 connect函数 80
4.4 bind函数 81
4.5 listen函数 84
4.6 accept函数 88
4.7 fork和exec函数 90
4.8 并发服务器 91
4.9 close函数 93
4.10 getsockname和getpeername函数 94
4.11 小结 96
习题 96
D5章 TCP客户/服务器程序示例 97
5.1 概述 97
5.2 TCP回射服务器程序:main函数 97
5.3 TCP回射服务器程序:str_echo函数 98
5.4 TCP回射客户程序:main函数 99
5.5 TCP回射客户程序:str_cli函数 100
5.6 正常启动 101
5.7 正常终止 102
5.8 POSIX信号处理 103
5.9 处理SIGCHLD信号 106
5.10 wait和waitpid函数 108
5.11 accept返回前连接中止 111
5.12 服务器进程终止 112
5.13 SIGPIPE信号 113
5.14 服务器主机崩溃 114
5.15 服务器主机崩溃后重启 115
5.16 服务器主机关机 116
5.17 TCP程序例子小结 116
5.18 数据格式 117
5.19 小结 120
习题 120
D6章 I/O复用:select和poll函数 122
6.1 概述 122
6.2 I/O模型 122
6.3 select函数 127
6.4 str_cli函数(修订版) 132
6.5 批量输入 133
6.6 shutdown函数 136
6.7 str_cli函数(再修订版) 137
6.8 TCP回射服务器程序(修订版) 138
6.9 pselect函数 142
6.10 poll函数 144
6.11 TCP回射服务器程序(再修订版) 146
6.12 小结 148
习题 149
D7章 套接字选项 150
7.1 概述 150
7.2 getsockopt和setsockopt函数 150
7.3 检查选项是否受支持并获取默认值 152
7.4 套接字状态 156
7.5 通用套接字选项 156
7.6 IPv4套接字选项 168
7.7 ICMPv6套接字选项 169
7.8 IPv6套接字选项 169
7.9 TCP套接字选项 171
7.10 SCTP套接字选项 173
7.11 fcntl函数 182
7.12 小结 184
习题 184
D8章 基本UDP套接字编程 186
8.1 概述 186
8.2 recvfrom和sendto函数 187
8.3 UDP回射服务器程序:main函数 187
8.4 UDP回射服务器程序:dg_echo函数 188
8.5 UDP回射客户程序:main函数 190
8.6 UDP回射客户程序:dg_cli函数 190
8.7 数据报的丢失 191
8.8 验证接收到的响应 191
8.9 服务器进程未运行 193
8.10 UDP程序例子小结 194
8.11 UDP的connect函数 196
8.12 dg_cli函数(修订版) 199
8.13 UDP缺乏流量控制 200
8.14 UDP中的外出接口的确定 203
8.15 使用select函数的TCP和UDP回射服务器程序 204
8.16 小结 206
习题 207
D9章 基本SCTP套接字编程 208
9.1 概述 208
9.2 接口模型 208
9.3 sctp_bindx函数 212
9.4 sctp_connectx函数 213
9.5 sctp_getpaddrs函数 213
9.6 sctp_freepaddrs函数 213
9.7 sctp_getladdrs函数 214
9.8 sctp_freeladdrs函数 214
9.9 sctp_sendmsg函数 214
9.10 sctp_recvmsg函数 215
9.11 sctp_opt_info函数 215
9.12 sctp_peeloff函数 216
9.13 shutdown函数 216
9.14 通知 217
9.15 小结 221
习题 222
D 10章 SCTP客户/服务器程序例子 223
10.1 概述 223
10.2 SCTP一到多式流分回射服务器程序:main函数 223
10.3 SCTP一到多式流分回射客户程序:main函数 225
10.4 SCTP流分回射客户程序:sctpstr_cli函数 226
10.5 探究头端阻塞 228
10.6 控制流的数目 233
10.7 控制终结 233
10.8 小结 234
习题 235
D 11章 名字与地址转换 236
11.1 概述 236
11.2 域名系统 236
11.3 gethostbyname函数 239
11.4 gethostbyaddr函数 242
11.5 getservbyname和getservbyport函数 242
11.6 getaddrinfo函数 245
11.7 gai_strerror函数 250
11.8 freeaddrinfo函数 251
11.9 getaddrinfo函数:IPv6 251
11.10 getaddrinfo函数:例子 253
11.11 host_serv函数 254
11.12 tcp_connect函数 254
11.13 tcp_listen函数 257
11.14 udp_client函数 261
11.15 udp_connect函数 263
11.16 udp_server函数 264
11.17 getnameinfo函数 266
11.18 可重入函数 267
11.19 gethostbyname_r和gethostbyaddr_r函数 270
11.20 作废的IPv6地址解析函数 271
11.21 其他网络相关信息 272
11.22 小结 273
习题 274
D三部分 GJ套接字编程
D 12章 IPv4与IPv6的互操作性 278
12.1 概述 278
12.2 IPv4客户与IPv6服务器 278
12.3 IPv6客户与IPv4服务器 281
12.4 IPv6地址测试宏 283
12.5 源代码可移植性 284
12.6 小结 284
习题 285
D 13章 守护进程和inetdCJ服务器 286
13.1 概述 286
13.2 syslogd守护进程 286
13.3 syslog函数 287
13.4 daemon_init函数 289
13.5 inetd守护进程 293
13.6 daemon_inetd函数 297
13.7 小结 299
习题 299
D 14章 GJI/O函数 300
14.1 概述 300
14.2 套接字超时 300
14.3 recv和send函数 305
14.4 readv和writev函数 306
14.5 recvmsg和sendmsg函数 307
14.6 辅助数据 310
14.7 排队的数据量 313
14.8 套接字和标准I/O 313
14.9 GJ轮询技术 316
14.10 T/TCP:事务目的TCP 320
14.11 小结 322
习题 323
D 15章 Unix域协议 324
15.1 概述 324
15.2 Unix域套接字地址结构 324
15.3 socketpair函数 326
15.4 套接字函数 327
15.5 Unix域字节流客户/服务器程序 327
15.6 Unix域数据报客户/服务器程序 329
15.7 描述符传递 330
15.8 接收发送者的凭证 337
15.9 小结 340
习题 340
D 16章 非阻塞式I/O 341
16.1 概述 341
16.2 非阻塞读和写:str_cli函数
(修订版) 342
16.3 非阻塞connect 351
16.4 非阻塞connect:时间获取客户
程序 352
16.5 非阻塞connect:Web客户程序 354
16.6 非阻塞accept 362
16.7 小结 363
习题 363
D 17章 ioctl操作 365
17.1 概述 365
17.2 ioctl函数 365
17.3 套接字操作 366
17.4 文件操作 367
17.5 接口配置 367
17.6 get_ifi_info函数 369
17.7 接口操作 378
17.8 ARP高速缓存操作 378
17.9 路由表操作 380
17.10 小结 381
习题 381
D 18章 路由套接字 382
18.1 概述 382
18.2 数据链路套接字地址结构 382
18.3 读和写 383
18.4 sysctl操作 390
18.5 get_ifi_info函数 394
18.6 接口名字和索引函数 397
18.7 小结 401
习题 401
D 19章 密钥管理套接字 402
19.1 概述 402
19.2 读和写 403
19.3 倾泻安全关联数据库 404
19.4 创建静态安全关联 407
19.5 动态维护安全关联 412
19.6 小结 415
习题 416
D 20章 广播 417
20.1 概述 417
20.2 广播地址 418
20.3 单播和广播的比较 419
20.4 使用广播的dg_cli函数 422
20.5 竞争状态 424
20.6 小结 431
习题 432
D 21章 多播 433
21.1 概述 433
21.2 多播地址 433
21.3 局域网上多播和广播的比较 436
21.4 广域网上的多播 438
21.5 源特定多播 440
21.6 多播套接字选项 441
21.7 mcast_join和相关函数 445
21.8 使用多播的dg_cli函数 450
21.9 接收IP多播基础设施会话声明 451
21.10 发送和接收 454
21.11 SNTP:简单网络时间协议 457
21.12 小结 461
习题 461
D 22章 GJUDP套接字编程 462
22.1 概述 462
22.2 接收标志、目的IP地址和接口索引 462
22.3 数据报截断 467
22.4 何时用UDP代替TCP 467
22.5 给UDP应用增加可靠性 469
22.6 捆绑接口地址 478
22.7 并发UDP服务器 482
22.8 IPv6分组信息 483
22.9 IPv6路径MTU控制 486
22.10 小结 487
习题 488
D 23章 GJSCTP套接字编程 489
23.1 概述 489
23.2 自动关闭的一到多式服务器程序 489
23.3 部分递送 490
23.4 通知 492
23.5 无序的数据 495
23.6 捆绑地址子集 496
23.7 确定对端和本端地址信息 497
23.8 给定IP地址找出关联ID 500
23.9 心搏和地址不可达 501
23.10 关联剥离 502
23.11 定时控制 503
23.12 何时改用SCTP代替TCP 505
23.13 小结 506
习题 506
D 24章 带外数据 507
24.1 概述 507
24.2 TCP带外数据 507
24.3 sockatmark函数 513
24.4 TCP带外数据小结 519
24.5 客户/服务器心搏函数 520
24.6 小结 524
习题 524
D 25章 信号驱动式I/O 525
25.1 概述 525
25.2 套接字的信号驱动式I/O 525
25.3 使用SIGIO的UDP回射服务器程序 527
25.4 小结 532
习题 533
D 26章 线程 534
26.1 概述 534
26.2 基本线程函数:创建和终止 535
26.3 使用线程的str_cli函数 537
26.4 使用线程的TCP回射服务器程序 538
26.5 线程特定数据 542
26.6 Web客户与同时连接 549
26.7 互斥锁 552
26.8 条件变量 555
26.9 Web客户与同时连接(续) 558
26.10 小结 560
习题 560
D 27章 IP选项 561
27.1 概述 561
27.2 IPv4选项 561
27.3 IPv4源路径选项 562
27.4 IPv6扩展1部 569
27.5 IPv6步跳选项和目的地选项 569
27.6 IPv6路由1部 573
27.7 IPv6粘附选项 577
27.8 历史性IPv6GJAPI 578
27.9 小结 579
习题 579
D 28章 原始套接字 580
28.1 概述 580
28.2 原始套接字创建 580
28.3 原始套接字输出 581
28.4 原始套接字输入 582
28.5 ping程序 584
28.6 traceroute程序 596
28.7 一个ICMP消息守护程序 608
28.8 小结 622
习题 622
D 29章 数据链路访问 623
29.1 概述 623
29.2 BPF:BSD分组过滤器 623
29.3 DLPI:数据链路提供者接口 625
29.4 Linux:SOCK_PACKET和
PF_PACKET 626
29.5 libpcap:分组捕获函数库 627
29.6 libnet:分组构造与输出函数库 627
29.7 检查UDP的校验和字段 628
29.8 小结 645
习题 645
D30章 客户/服务器程序设计范式 646
30.1 概述 646
30.2 TCP客户程序设计范式 648
30.3 TCP测试用客户程序 649
30.4 TCP迭代服务器程序 650
30.5 TCP并发服务器程序,
每个客户一个子进程 650
30.6 TCP预先派生子进程服务器程序,accept无上锁保护 653
30.7 TCP预先派生子进程服务器程序,accept使用文件上锁保护 659
30.8 TCP预先派生子进程服务器程序,accept使用线程上锁保护 662
30.9 TCP预先派生子进程服务器程序,传递描述符 663
30.10 TCP并发服务器程序,每个客户一个线程 667
30.11 TCP预先创建线程服务器程序,每个线程各自accept 669
30.12 TCP预先创建线程服务器程序,主线程统一accept 671
30.13 小结 673
习题 674
D31章 流 675
31.1 概述 675
31.2 概貌 675
31.3 getmsg和putmsg函数 678
31.4 getpmsg和putpmsg函数 679
31.5 ioctl函数 680
31.6 TPI:传输提供者接口 680
31.7 小结 689
习题 689
附录A IPv4、IPv6、ICMPv4和ICMPv6 690
附录B 虚拟网络 704
附录C 调试技术 708
附录D 杂凑的源代码 714
附录E 精选习题答案 726
参考文献 756
索引 763
《UNIX网络编程卷2进程间通信D2版》
DI一部分 简介
D 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
D 2章 Posix IPC 14
2.1 概述 14
2.2 IPC名字 14
2.3 创建与打开IPC通道 16
2.4 IPC权限 18
2.5 小结 19
习题 19
D3章 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
D二部分 消息传递
D4章 管道和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
D5章 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_Dtify函数 68
5.7 Posix实时信号 78
5.8 使用内存映射I/O实现Posix消息队列 85
5.9 小结 101
习题 101
D6章 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
D三部分 同步
D7章 互斥锁和条件变量 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
D8章 读写锁 140
8.1 概述 140
8.2 获取与释放读写锁 140
8.3 读写锁属性 141
8.4 使用互斥锁和条件变量实现读写锁 142
8.5 线程取消 148
8.6 小结 153
习题 153
D9章 记录上锁 154
9.1 概述 154
9.2 对比记录上锁与文件上锁 157
9.3 Posix fcntl记录上锁 158
9.4 劝告性上锁 162
9.5 强制性上锁 164
9.6 读出者和写入者的优先级 166
9.7 启动一个守护进程的W一副本 170
9.8 文件作锁用 171
9.9 NFS上锁 173
9.10 小结 173
习题 174
D 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 xin号量实现Posix信号量 218
10.17 小结 224
习题 225
D 11章 System V xin号量 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
D四部分 共享内存区
D 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
D 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
D 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
D五部分 远程过程调用
D 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
D 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
《UNIX环境GJ编程D3版》
D 1章 UNIX基础知识 1
1.1 引言 1
1.2 UNIX体系结构 1
1.3 登录 1
1.4 文件和目录 3
1.5 输入和输出 6
1.6 程序和进程 8
1.7 出错处理 11
1.8 用户标识 13
1.9 信号 14
1.10 时间值 16
1.11 系统调用和库函数 17
1.12 小结 18
习题 18
D 2章 UNIX标准及实现 20
2.1 引言 20
2.2 UNIX标准化 20
2.2.1 ISO C 20
2.2.2 IEEE POSIX 21
2.2.3 Single UNIX Specification 25
2.2.4 FIPS 26
2.3 UNIX系统实现 26
2.3.1 SVR4 27
2.3.2 4.4BSD 27
2.3.3 FreeBSD 28
2.3.4 Linux 28
2.3.5 Mac OS X 28
2.3.6 Solaris 28
2.3.7 其他UNIX系统 29
2.4 标准和实现的关系 29
2.5 限制 29
2.5.1 ISO C限制 30
2.5.2 POSIX限制 31
2.5.3 XSI限制 33
2.5.4 函数sysconf、pathconf和fpathconf 33
2.5.5 不确定的运行时限制 40
2.6 选项 43
2.7 功能测试宏 46
2.8 基本系统数据类型 47
2.9 标准之间的冲突 48
2.10 小结 48
习题 48
D3章 文件I/O 49
3.1 引言 49
3.2 文件描述符 49
3.3 函数open和openat 50
3.4 函数creat 52
3.5 函数close 53
3.6 函数lseek 53
3.7 函数read 57
3.8 函数write 57
3.9 I/O的效率 58
3.10 文件共享 59
3.11 原子操作 62
3.12 函数dup和dup2 63
3.13 函数sync、fsync和fdatasync 65
3.14 函数fcntl 65
3.15 函数ioctl 70
3.16 /dev/fd 71
3.17 小结 72
习题 72
D4章 文件和目录 74
4.1 引言 74
4.2 函数stat、fstat、fstatat和lstat 74
4.3 文件类型 75
4.4 设置用户ID和设置组ID 78
4.5 文件访问权限 79
4.6 新文件和目录的所有权 80
4.7 函数access和faccessat 81
4.8 函数umask 83
4.9 函数chmod、fchmod和fchmodat 84
4.10 粘着位 87
4.11 函数chown、fchown、fchownat和lchown 88
4.12 文件长度 89
4.13 文件截断 90
4.14 文件系统 90
4.15 函数link、linkat、unlink、unlinkat和remove 93
4.16 函数rename和renameat 95
4.17 符号链接 96
4.18 创建和读取符号链接 99
4.19 文件的时间 99
4.20 函数futimens、utimensat和utimes 101
4.21 函数mkdir、mkdirat和rmdir 103
4.22 读目录 104
4.23 函数chdir、fchdir和getcwd 108
4.24 设备特殊文件 110
4.25 文件访问权限位小结 112
4.26 小结 113
习题 113
D5章 标准I/O库 115
5.1 引言 115
5.2 流和FILE对象 115
5.3 标准输入、标准输出和标准错误 116
5.4 缓冲 116
5.5 打开流 118
5.6 读和写流 120
5.7 每次一行I/O 122
5.8 标准I/O的效率 123
5.9 二进制I/O 125
5.10 定位流 126
5.11 格式化I/O 127
5.12 实现细节 131
5.13 临时文件 134
5.14 内存流 137
5.15 标准I/O的替代软件 140
5.16 小结 140
习题 140
D6章 系统数据文件和信息 142
6.1 引言 142
6.2 口令文件 142
6.3 阴影口令 145
6.4 组文件 146
6.5 附属组ID 147
6.6 实现区别 148
6.7 其他数据文件 148
6.8 登录账户记录 149
6.9 系统标识 150
6.10 时间和日期例程 151
6.11 小结 157
习题 157
D7章 进程环境 158
7.1 引言 158
7.2 main函数 158
7.3 进程终止 158
7.4 命令行参数 162
7.5 环境表 163
7.6 C程序的存储空间布局 163
7.7 共享库 165
7.8 存储空间分配 165
7.9 环境变量 168
7.10 函数setjmp和longjmp 170
7.11 函数getrlimit和setrlimit 175
7.12 小结 180
习题 180
D8章 进程控制 181
8.1 引言 181
8.2 进程标识 181
8.3 函数fork 182
8.4 函数vfork 187
8.5 函数exit 188
8.6 函数wait和waitpid 190
8.7 函数waitid 194
8.8 函数wait3和wait4 195
8.9 竞争条件 196
8.10 函数exec 199
8.11 更改用户ID和更改组ID 204
8.12 解释器文件 207
8.13 函数system 211
8.14 进程会计 215
8.15 用户标识 220
8.16 进程调度 221
8.17 进程时间 224
8.18 小结 226
习题 226
D9章 进程关系 228
9.1 引言 228
9.2 终端登录 228
9.3 网络登录 231
9.4 进程组 233
9.5 会话 234
9.6 控制终端 235
9.7 函数tcgetpgrp、tcsetpgrp和tcgetsid 237
9.8 作业控制 237
9.9 shell执行程序 240
9.10 孤儿进程组 244
9.11 FreeBSD实现 246
9.12 小结 248
习题 248
D 10章 信号 249
10.1 引言 249
10.2 信号概念 249
10.3 函数signal 256
10.4 不可靠的信号 259
10.5 中断的系统调用 260
10.6 可重入函数 262
10.7 SIGCLD语义 264
10.8 可靠信号术语和语义 266
10.9 函数kill和raise 267
10.10 函数alarm和pause 268
10.11 信号集 273
10.12 函数sigprocmask 275
10.13 函数sigpending 276
10.14 函数sigaction 278
10.15 函数sigsetjmp和siglongjmp 283
10.16 函数sigsuspend 286
10.17 函数abort 291
10.18 函数system 293
10.19 函数sleep、naDsleep和clock_naDsleep 298
10.20 函数sigqueue 300
10.21 作业控制信号 301
10.22 信号名和编号 303
10.23 小结 305
习题 305
D 11章 线程 307
11.1 引言 307
11.2 线程概念 307
11.3 线程标识 308
11.4 线程创建 309
11.5 线程终止 311
11.6 线程同步 318
11.6.1 互斥量 320
11.6.2 避免死锁 322
11.6.3 函数pthread_mutex_ timedlock 327
11.6.4 读写锁 328
11.6.5 带有超时的读写锁 332
11.6.6 条件变量 332
11.6.7 自旋锁 335
11.6.8 屏障 336
11.7 小结 340
习题 340
D 12章 线程控制 341
12.1 引言 341
12.2 线程限制 341
12.3 线程属性 342
12.4 同步属性 345
12.4.1 互斥量属性 345
12.4.2 读写锁属性 352
12.4.3 条件变量属性 353
12.4.4 屏障属性 354
12.5 重入 354
12.6 线程特定数据 358
12.7 取消选项 362
12.8 线程和信号 364
12.9 线程和fork 367
12.10 线程和I/O 370
12.11 小结 371
习题 371
D 13章 守护进程 372
13.1 引言 372
13.2 守护进程的特征 372
13.3 编程规则 374
13.4 出错记录 377
13.5 单实例守护进程 380
13.6 守护进程的惯例 381
13.7 客户进程-服务器进程模型 386
13.8 小结 386
习题 387
D 14章 GJI/O 388
14.1 引言 388
14.2 非阻塞I/O 388
14.3 记录锁 391
14.4 I/O多路转接 403
14.4.1 函数select和pselect 404
14.4.2 函数poll 408
14.5 异步I/O 410
14.5.1 System V异步I/O 410
14.5.2 BSD异步I/O 411
14.5.3 POSIX异步I/O 411
14.6 函数readv和writev 419
14.7 函数readn和writen 421
14.8 存储映射I/O 422
14.9 小结 428
习题 428
D 15章 进程间通信 429
15.1 引言 429
15.2 管道 430
15.3 函数popen和pclose 436
15.4 协同进程 441
15.5 FIFO 445
15.6 XSI IPC 448
15.6.1 标识符和键 448
15.6.2 权限结构 449
15.6.3 结构限制 450
15.6.4 优点和缺点 450
15.7 消息队列 451
15.8 信号量 455
15.9 共享存储 459
15.10 POSIX信号量 465
15.11 客户进程-服务器进程属性 470
15.12 小结 472
习题 472
D 16章 网络IPC:套接字 474
16.1 引言 474
16.2 套接字描述符 474
16.3 寻址 477
16.3.1 字节序 477
16.3.2 地址格式 478
16.3.3 地址查询 480
16.3.4 将套接字与地址关联 486
16.4 建立连接 487
16.5 数据传输 491
16.6 套接字选项 502
16.7 带外数据 504
16.8 非阻塞和异步I/O 505
16.9 小结 506
习题 506
D 17章 GJ进程间通信 507
17.1 引言 507
17.2 UNIX域套接字 507
17.3 W一连接 512
17.4 传送文件描述符 518
17.5 open服务器进程D 1版 527
17.6 open服务器进程D 2版 533
17.7 小结 542
习题 542
D 18章 终端I/O 544
18.1 引言 544
18.2 综述 544
18.3 特殊输入字符 549
18.4 获得和设置终端属性 553
18.5 终端选项标志 554
18.6 stty命令 560
18.7 波特率函数 560
18.8 行控制函数 561
18.9 终端标识 562
18.10 规范模式 567
18.11 非规范模式 570
18.12 终端窗口大小 576
18.13 termcap、terminfo和curses 578
18.14 小结 578
习题 579
D 19章 伪终端 580
19.1 引言 580
19.2 概述 580
19.3 打开伪终端设备 585
19.4 函数pty_fork 588
19.5 pty程序 590
19.6 使用pty程序 595
19.7 GJ特性 600
19.8 小结 601
习题 601
D 20章 数据库函数库 603
20.1 引言 603
20.2 历史 603
20.3 函数库 604
20.4 实现概述 605
20.5 集中式或非集中式 608
20.6 并发 610
20.7 构造函数库 610
20.8 源代码 611
20.9 性能 635
20.10 小结 639
习题 639
D 21章 与网络打印机通信 640
21.1 引言 640
21.2 网络打印协议 640
21.3 超文本传输协议HTTP 642
21.4 打印假脱机技术 643
21.5 源代码 644
21.6 小结 684
习题 684
附录A 函数原型 685
附录B 其他源代码 721
附录C 部分习题答案 730
附录参考书目 763
W.RichardStevensGJ知名的UNIX和网络专家,备受赞誉的技术作家。生前著有多部经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书D1版。StephenA.RagoZSUNIX程序员,目前任NEC美国实验室存储系统集团研究员。之前是贝尔实验室的UNIX系统V版本4的开发人员之一。著有《UNIX系统V网络编程》,并曾担任本书D1版的技术审校和D2版的共同作者。
W. 理查德·史蒂文斯(1951-1999),GJ知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境GJ编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。 比尔·芬纳,AT&T实验室主任研究员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,是RFC标准文档的批准人。 安德鲁 M.鲁道夫,公司ZS软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。
本书是一部UNIX 网络编程的经典之作!进程间通信(IPC)几乎是所有Unix 程序性能的关键,理解IPC 也是理解如何开发不同主机间网络应用程序的必要条件。本书从对Posix IPC 和System V IPC 的内部结构开始讨论,全面深入地介绍了4 种IPC 形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件与记录锁、信号量)、共享内存(匿名共享内存、具名共享内存)及远程过程调用(Solaris门、Sun RPC)。附录中给出了测量各种IPC 形式性能的方法。本书内容详尽且具QW性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格