⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 全书20章
💻 TXT
字号:
目      录

译者序

译者简介

前言

第1章   UNIX基础知识	1

1.1   引言	1

1.2   登录	1

1.2.1   登录名	1

1.2.2   shell	1

1.3   文件和目录	2

1.3.1   文件系统	2

1.3.2   文件名	2

1.3.3   路径名	2

1.3.4   工作目录	4

1.3.5   起始目录	4

1.4   输入和输出	5

1.4.1   文件描述符	5

1.4.2   标准输入、标准输出和标准

           出错	5

1.4.3   不用缓存的I/O	5

1.4.4   标准I/O	6

1.5   程序和进程	7

1.5.1   程序	7

1.5.2   进程和进程ID	7

1.5.3   进程控制	7

1.6   ANSI C	9

1.6.1   函数原型	9

1.6.2   类属指针	9

1.6.3   原始系统数据类型	10

1.7   出错处理	10

1.8   用户标识	11

1.8.1   用户ID	11

1.8.2   组ID	12

1.8.3   添加组ID	12

1.9   信号	12

1.10   UNIX时间值	14

1.11   系统调用和库函数	14

1.12   小结	16

习题	16

第2章   UNIX标准化及实现	17

2.1   引言	17

2.2   UNIX标准化	17

2.2.1   ANSI C	17

2.2.2   IEEE POSIX	18

2.2.3   X/Open XPG3	19

2.2.4   FIPS	19

2.3   UNIX实现	19

2.3.1   SVR4	20

2.3.2   4.3+BSD	20

2.4   标准和实现的关系	21

2.5   限制	21

2.5.1   ANSI C限制	22

2.5.2   POSIX限制	22

2.5.3   XPG3限制	24

2.5.4   sysconf、pathconf 和fpathconf

函数	24

2.5.5   FIPS 151-1要求	28

2.5.6   限制总结	28

2.5.7   未确定的运行时间限制	29

2.6   功能测试宏	32

2.7   基本系统数据类型	32

2.8   标准之间的冲突	33

2.9   小结	34

习题	34

第3章   文件I/O	35

3.1   引言	35

3.2   文件描述符	35

3.3   open函数	35

3.4   creat函数	37

3.5   close函数	37

3.6   lseek函数	38

3.7   read函数	40

3.8   write函数	41

3.9   I/O的效率	41

3.10   文件共享	42

3.11   原子操作	45

3.11.1   添加至一个文件	45

3.11.2   创建一个文件	45

3.12   dup和dup2函数	46

3.13   fcntl函数	47

3.14   ioctl函数	50

3.15   /dev/fd	51

3.16   小结	52

习题	52

第4章   文件和目录	54

4.1   引言	54

4.2   stat, fstat和lstat函数	54

4.3   文件类型	55

4.4   设置-用户-ID和设置-组-ID	57

4.5   文件存取许可权	58

4.6   新文件和目录的所有权	60

4.7   access函数	60

4.8   umask函数	62

4.9   chmod和fchmod函数	63

4.10   粘住位	65

4.11   chown, fchown和 lchown函数	66

4.12   文件长度	67

4.13   文件截短	68

4.14   文件系统	69

4.15   link, unlink, remove和rename 

         函数	71

4.16   符号连接	73

4.17   symlink 和readlink函数	76

4.18   文件的时间	76

4.19   utime函数	78

4.20   mkdir和rmdir函数	79

4.21   读目录	80

4.22   chdir, fchdir和getcwd函数	84

4.23   特殊设备文件	86

4.24   sync和fsync函数	87

4.25   文件存取许可权位小结	88

4.26   小结	89

习题	89

第5章   标准I/O库	91

5.1   引言	91

5.2   流和FILE对象	91

5.3   标准输入、标准输出和标准出错	91

5.4   缓存	91

5.5   打开流	94

5.6   读和写流	96

5.6.1   输入函数	96

5.6.2   输出函数	97

5.7   每次一行I/O	98

5.8   标准I/O的效率	99

5.9   二进制I/O	100

5.10   定位流	102

5.11   格式化I/O	103

5.11.1   格式化输出	103

5.11.2   格式化输入	103

5.12   实现细节	104

5.13   临时文件	105

5.14   标准I/O的替代软件	108

5.15   小结	108

习题	108

第6章   系统数据文件和信息	110

6.1   引言	110

6.2   口令文件	110

6.3   阴影口令	112

6.4   组文件	113

6.5   添加组ID	114

6.6   其他数据文件	115

6.7   登录会计	116

6.8   系统标识	116

6.9   时间和日期例程	117

6.10   小结	121

习题	121

第7章   UNIX进程的环境	122

7.1   引言	122

7.2   main 函数	122

7.3   进程终止	122

7.3.1   exit和_exit函数	122

7.3.2   atexit函数	124

7.4   命令行参数	125

7.5   环境表	126

7.6   C程序的存储空间布局	126

7.7   共享库	127

7.8   存储器分配	128

7.9   环境变量	130

7.10   setjmp 和longjmp函数	132

7.10.1   自动、寄存器和易失变量	134

7.10.2   自动变量的潜在问题	136

7.11   getrlimit 和setrlimit函数	136

7.12   小结	139

习题	140

第8章   进程控制	141

8.1   引言	141

8.2   进程标识	141

8.3   fork函数	142

8.4   vfork 函数	145

8.5   exit函数	147

8.6   wait和waitpid函数	148

8.7   wait3和wait4函数	152

8.8   竞态条件	153

8.9   exec函数	156

8.10   更改用户ID和组ID	160

8.10.1   setreuid 和setregid函数	162

8.10.2   seteuid和 setegid函数	163

8.10.3   组ID	163

8.11   解释器文件	164

8.12   system函数	167

8.13   进程会计	171

8.14   用户标识	175

8.15   进程时间	176

8.16   小结	178

习题	178

第9章   进程关系	180

9.1   引言	180

9.2   终端登录	180

9.2.1   4.3+BSD终端登录	180

9.2.2   SVR4终端登录	182

9.3   网络登录	182

9.3.1   4.3+BSD网络登录	182

9.3.2   SVR4网络登录	183

9.4   进程组	183

9.5   对话期	184

9.6   控制终端	185

9.7   tcgetpgrp 和tcsetpgrp函数	187

9.8   作业控制	187

9.9   shell执行程序	189

9.10   孤儿进程组	193

9.11   4.3+BSD实现	195

9.12   小结	197

习题	197

第10章   信号	198

10.1   引言	198

10.2   信号的概念	198

10.3   signal函数	203

10.3.1   程序起动	205

10.3.2   进程创建	206

10.4   不可靠的信号	206

10.5   中断的系统调用	207

10.6   可再入函数	209

10.7   SIGCLD语义	211

10.8   可靠信号术语和语义	213

10.9   kill和raise函数	213

10.10   alarm和pause函数	214

10.11   信号集	219

10.12   sigprocmask 函数	220

10.13   sigpending函数	222

10.14   sigaction函数	223

10.15   sigsetjmp 和siglongjmp函数	226

10.16   sigsuspend函数	229

10.17   abort函数	234

10.18   system函数	235

10.19   sleep函数	240

10.20   作业控制信号	241

10.21   其他特征	243

10.21.1   信号名字	243

10.21.2   SVR4信号处理程序的附

       加参数	244

10.21.3   4.3+BSD信号处理程序的附

加参数	244

10.22   小结	244

习题	244

第11章   终端I/O	246

11.1   引言	246

11.2   综述	246

11.3   特殊输入字符	250

11.4   获得和设置终端属性	254

11.5   终端选择标志	254

11.6   stty命令	258

11.7   波特率函数	259

11.8   行控制函数	260

11.9   终端标识	260

11.10   规范方式	263

11.11   非规范方式	266

11.12   终端的窗口大小	270

11.13   termcap, terminfo和 curses	271

11.14   小结	272

习题	272

第12章   高级I/O	273

12.1   引言	273

12.2   非阻塞I/O	273

12.3   记录锁	275

12.3.1   历史	276

12.3.2   fcntl记录锁	276

12.3.3   锁的隐含继承和释放	280

12.3.4   4.3+BSD的实现	281

12.3.5   建议性锁和强制性锁	284

12.4   流	288

12.4.1   流消息	289

12.4.2   putmsg和putpmsg函数	290

12.4.3   流ioctl操作	291

12.4.4   write至流设备	294

12.4.5   写方式	294

12.4.6   getmsg和getpmsg函数	294

12.4.7   读方式	295

12.5   I/O多路转接	296

12.5.1   select函数	298

12.5.2   poll函数	301

12.6   异步I/O	303

12.6.1   SVR4	303

12.6.2   4.3+BSD	303

12.7   readv和writev函数	304

12.8   readn和writen函数	306

12.9   存储映射I/O	307

12.10   小结	311

习题	311

第13章   精灵进程	312

13.1   引言	312

13.2   精灵进程的特征	312

13.3   编程规则	313

13.4   出错记录	314

13.4.1   SVR4流log驱动程序	315

13.4.2   4.3+BSD syslog设施	316

13.5   客户机-服务器模型	319

13.6   小结	319

习题	319

第14章   进程间通信	320

14.1   引言	320

14.2   管道	320

14.3   popen和pclose函数	325

14.4   协同进程	330

14.5   FIFO	333

14.6   系统V IPC	335

14.6.1   标识符和关键字	336

14.6.2   许可权结构	337

14.6.3   结构限制	337

14.6.4   优点和缺点	337

14.7   消息队列	338

14.8   信号量	342

14.9   共享存储	346

14.10   客户机-服务器属性	351

14.11   小结	353

习题	353

第15章   高级进程间通信	355

15.1   引言	355

15.2   流管道	355

15.3   传送文件描述符	358

15.3.1   SVR4	360

15.3.2   4.3BSD	361

15.3.3   4.3+BSD	364

15.4   open服务器第1版	366

15.5   客户机-服务器连接函数	371

15.5.1   SVR4	372

15.5.2   4.3+BSD	375

15.6   open服务器第2版	378

15.7   小结	385

习题	385

第16章   数据库函数库	386

16.1   引言	386

16.2   历史	386

16.3   函数库	386

16.4   实现概述	388

16.5   集中式或非集中式	390

16.6   并发	391

16.6.1   粗锁	391

16.6.2   细锁	391

16.7   源码	392

16.8   性能	409

16.8.1   单进程的结果	410

16.8.2   多进程的结果	410

16.9   小结	412

习题	412

第17章   与PostScript打印机通信	413

17.1   引言	413

17.2   PostScript通信机制	413

17.3   假脱机打印	415

17.4   源码	417

17.5   小结	434

习题	434

第18章   调制解调器拨号器	435

18.1   引言	435

18.2   历史	435

18.3   程序设计	436

18.4   数据文件	437

18.5   服务器设计	439

18.6   服务器源码	439

18.7   客户机设计	463

18.7.1   终端行规程	463

18.7.2   一个进程还是两个进程	464

18.8   客户机源码	465

18.9   小结	474

习题	474

第19章   伪终端	476

19.1   引言	476

19.2   概述	476

19.2.1   网络登录服务器	477

19.2.2   script程序	478

19.2.3   expect程序	479

19.2.4   运行协同进程	479

19.2.5   观看长时间运行程序的输出	479

19.3   打开伪终端设备	480

19.3.1   SVR4	481

19.3.2   4.3+BSD	482

19.4   pty_fork函数	484

19.5   pty程序	486

19.6   使用pty程序	489

19.6.1   utmp文件	489

19.6.2   作业控制交互	489

19.6.3   检查长时间运行程序的输出	491

19.6.4   script程序	491

19.6.5   运行协同进程	492

19.6.6   用非交互模式驱动交互式

             程序	492

19.7   其他特性	494

19.7.1   打包模式	494

19.7.2   远程模式	494

19.7.3   窗口大小变化	495

19.7.4   信号发生	495

19.8   小结	495

习题	495

附录A   函数原型	497

附录B   其他源代码	512

附录C   习题答案	518

参考书目	536

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -