0%

UNIX环境高级编程(第2版)

基本信息

名称: UNIX环境高级编程(第2版)
作者信息: 作者: 史蒂文斯 [ 中文 pdf ]

简单介绍

《UNIX环境高级编程(第2版)》编辑推荐:内容权威,概念清晰,阐述精辟,对于所有层次UNIX程序员都是一本不可或缺的参考书。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
第1章 UNIX基础知识1
1.1引言1
1.2UNIX体系结构1
1.3登录1
1.4文件和目录3
1.5输入和输出6
1.6程序和进程8
1.7出错处理10
1.8用户标识12
1.9信号14
1.10时间值15
1.11系统调用和库函数16
1.12小结17
习题18
第2章 UNIX标准化及实现19
2.1引言19
2.2UNIX标准化19
2.2.1ISO C19
2.2.2IEEE POSIX20
2.2.3Single UNIX Specification25
2.2.4FIPS26
2.3UNIX系统实现26
2.3.1SVR426
2.3.24.4BSD27
2.3.3FreeBSD27
2.3.4Linux27
2.3.5Mac OS X28
2.3.6Solaris28
2.3.7其他UNIX系统28
2.4标准和实现的关系28
2.5限制29
2.5.1ISO C限制29
2.5.2POSIX限制30
2.5.3XSI限制32
2.5.4sysconf、pathconf和fpathconf函数32
2.5.5不确定的运行时限制38
2.6选项42
2.7功能测试宏44
2.8基本系统数据类型45
2.9标准之间的冲突45
2.10小结46
习题46
第3章 文件I/O47
3.1引言47
3.2文件描述符47
3.3open函数48
3.4creat函数49
3.5close函数50
3.6lseek函数50
3.7read函数53
3.8write函数54
3.9I/O的效率54
3.10文件共享56
3.11原子操作59
3.12dup和dup2函数60
3.13sync、fsync和fdatasync函数61
3.14fcntl函数62
3.15ioctl函数66
3.16/dev/fd67
3.17小结68
习题68
第4章 文件和目录71
4.1引言71
4.2stat、fstat和lstat函数71
4.3文件类型72
4.4设置用户ID和设置组ID74
4.5文件访问权限75
4.6新文件和目录的所有权77
4.7access函数77
4.8umask函数79
4.9chmod和fchmod函数81
4.10粘住位83
4.11chown、fchown和lchown函数84
4.12文件长度85
4.13文件截短86
4.14文件系统86
4.15link、unlink、remove和rename函数89
4.16符号链接91
4.17symlink和readlink函数94
4.18文件的时间94
4.19utime函数95
4.20mkdir和rmdir函数97
4.21读目录98
4.22chdir、fchdir和getcwd函数102
4.23设备特殊文件104
4.24文件访问权限位小结106
4.25小结106
习题107
第5章 标准I/O库109
5.1引言109
5.2流和FILE对象109
5.3标准输入、标准输出和标准出错110
5.4缓冲110
5.5打开流112
5.6读和写流114
5.7每次一行I/O116
5.8标准I/O的效率117
5.9二进制I/O119
5.10定位流120
5.11格式化I/O121
5.12实现细节125
5.13临时文件127
5.14标准I/O的替代软件130
5.15小结130
习题130
第6章 系统数据文件和信息133
6.1引言133
6.2口令文件133
6.3阴影口令136
6.4组文件137
6.5附加组ID138
6.6实现的区别139
6.7其他数据文件139
6.8登录账户记录140
6.9系统标识141
6.10时间和日期例程142
6.11小结146
习题146
第7章 进程环境147
7.1引言147
7.2main函数147
7.3进程终止147
7.4命令行参数151
7.5环境表152
7.6C程序的存储空间布局152
7.7共享库154
7.8存储器分配154
7.9环境变量157
7.10setjmp和longjmp函数159
7.11getrlimit和setrlimit函数164
7.12小结168
习题168
第8章 进程控制171
8.1引言171
8.2进程标识符171
8.3fork函数172
8.4vfork函数176
8.5exit函数178
8.6wait和waitpid函数179
8.7waitid函数183
8.8wait3和wait4函数184
8.9竞争条件185
8.10exec函数188
8.11更改用户ID和组ID192
8.12解释器文件196
8.13system函数200
8.14进程会计203
8.15用户标识208
8.16进程时间208
8.17小结210
习题211
第9章 进程关系213
9.1引言213
9.2终端登录213
9.3网络登录216
9.4进程组218
9.5会话219
9.6控制终端220
9.7tcgetpgrp、tcsetpgrp和tcgetsid函数221
9.8作业控制222
9.9shell执行程序225
9.10孤儿进程组228
9.11FreeBSD实现230
9.12小结231
习题232
第10章 信号233
10.1引言233
10.2信号概念233
10.3signal函数240
10.4不可靠的信号242
10.5中断的系统调用244
10.6可重入函数246
10.7SIGCLD语义248
10.8可靠信号术语和语义250
10.9kill和raise函数251
10.10alarm和pause函数252
10.11信号集256
10.12sigprocmask函数258
10.13sigpending函数259
10.14sigaction函数261
10.15sigsetjmp和siglongjmp函数266
10.16sigsuspend函数268
10.17abort函数274
10.18system函数276
10.19sleep函数280
10.20作业控制信号282
10.21其他特征284
10.22小结285
习题285
第11章 线程287
11.1引言287
11.2线程概念287
11.3线程标识288
11.4线程的创建288
11.5线程终止291
11.6线程同步297
11.7小结311
习题311
第12章 线程控制313
12.1引言313
12.2线程限制313
12.3线程属性314
12.4同步属性318
12.5重入324
12.6线程私有数据328
12.7取消选项331
12.8线程和信号333
12.9线程和fork336
12.10线程和I/O339
12.11小结340
习题340
第13章 守护进程341
13.1引言341
13.2守护进程的特征341
13.3编程规则342
13.4出错记录345
13.5单实例守护进程348
13.6守护进程的惯例350
13.7客户进程-服务器进程模型354
13.8小结354
习题354
第14章 高级I/O355
14.1引言355
14.2非阻塞I/O355
14.3记录锁357
14.4STREAMS370
14.5I/O多路转接379
14.5.1select和pselect函数381
14.5.2poll函数384
14.6异步I/O386
14.6.1系统V异步I/O386
14.6.2BSD异步I/O387
14.7readv和writev函数387
14.8readn和writen函数389
14.9存储映射I/O390
14.10小结395
习题396
第15章 进程间通信397
15.1引言397
15.2管道398
15.3popen和pclose函数403
15.4协同进程408
15.5FIFO412
15.6XSI IPC415
15.6.1标识符和键415
15.6.2权限结构416
15.6.3结构限制417
15.6.4优点和缺点417
15.7消息队列418
15.8信号量422
15.9共享存储427
15.10客户进程-服务器进程属性432
15.11小结434
习题434
第16章 网络IPC:套接字437
16.1引言437
16.2套接字描述符437
16.3寻址439
16.3.1字节序440
16.3.2地址格式441
16.3.3地址查询442
16.3.4将套接字与地址绑定449
16.4建立连接450
16.5数据传输452
16.6套接字选项464
16.7带外数据466
16.8非阻塞和异步I/O467
16.9小结468
习题468
第17章 高级进程间通信469
17.1引言469
17.2基于STREAMS的管道469
17.2.1命名的STREAMS管道472
17.2.2唯一连接473
17.3UNIX域套接字476
17.3.1命名UNIX域套接字477
17.3.2唯一连接478
17.4传送文件描述符482
17.4.1经由基于STREAMS的管道传送文件描述符484
17.4.2经由UNIX域套接字传送文件描述符486
17.5open服务器版本1493
17.6open服务器版本2498
17.7小结505
习题505
第18章 终端I/O507
18.1引言507
18.2综述507
18.3特殊输入字符512
18.4获得和设置终端属性516
18.5终端选项标志516
18.6stty命令522
18.7波特率函数523
18.8行控制函数524
18.9终端标识524
18.10规范模式529
18.11非规范模式532
18.12终端的窗口大小537
18.13termcap,terminfo和curses539
18.14小结540
习题540
第19章 伪终端541
19.1引言541
19.2概述541
19.3打开伪终端设备544
19.3.1基于STREAMS的伪终端547
19.3.2基于BSD的伪终端549
19.3.3基于Linux的伪终端551
19.4pty_fork函数553
19.5pty程序555
19.6使用pty程序559
19.7高级特性564
19.8小结565
习题565
第20章 数据库函数库567
20.1引言567
20.2历史567
20.3函数库568
20.4实现概述569
20.5集中式或非集中式572
20.6并发574
20.7构造函数库574
20.8源代码575
20.9性能598
20.10小结600
习题601
第21章 与网络打印机通信603
21.1引言603
21.2网络打印协议603
21.3超文本传输协议605
21.4打印假脱机技术605
21.5源代码607
21.6小结644
习题645
附录A函数原型647
附录B其他源代码677
附录C部分习题答案685
参考书目709
索引715

亚马逊链接

欢迎关注我的其它发布渠道