当前位置:首页 > 工业技术
UNIX程序设计教程
UNIX程序设计教程

UNIX程序设计教程PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:赵克佳等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2001
  • ISBN:7302043418
  • 页数:567 页
图书介绍:本书内容包括:UNIX导论,标准输入输出,低级输入输出,文件与目录,进程环境与控制,日期和时间,信号处理,进程之间的通信等。
《UNIX程序设计教程》目录

第1章 UNIX导论 1

1.1 UNIX简史 1

1.1.1 UNIX的诞生 1

前言页 1

1.1.2 UNIX的早期发展 2

1.1.3 BSD UNIX 3

1.1.4 系统V UNIX 4

1.1.5 UNIX的商业化 4

1.2.1 SVID 5

1.2 标准 5

1.2.2 POSIX 6

1.2.3 X/Open 6

1.2.4 C标准 8

1.3 UNIX基本概念 8

1.3.1 程序和进程 8

1.3.2 内核 10

1.3.3 shell 11

1.3.4 特权用户 12

1.3.5 系统调用与库函数 13

1.4 C库 15

1.4.1 头文件 15

1.4.2 保留字 17

1.4.3 特征测试宏 18

1.5 系统信息 19

1.5.1 机器标识 19

1.5.2 硬件/软件类型识别 21

1.6.1 一般能力限制值 22

1.6 系统能力限制 22

1.6.2 系统和文件特征选项 26

1.6.3 sysconf,pathcon和fpathconf函数 28

1.7 错误处理 32

第2章 标准输入输出 37

2.1 输入/输出基本概念 37

2.2 流和FILE对象 39

2.3 打开和关闭流 40

2.4.1 字符I/O 43

2.4 读和写流 43

2.4.2 行I/O 45

2.4.3 读回退 49

2.4.4 块I/O 50

2.5 文件定位 52

2.6 文件结束和错误 57

2.7 流缓冲 58

2.8.1 格式输出 64

2.8 格式I/O 64

2.8.2 格式输入 70

2.9 临时文件 75

第3章 低级输入/输出 79

3.1 文件描述字 79

3.2 open、creat和close函数 80

3.3 文件输入输出 84

3.3.1 read函数 84

3.3.2 write函数 85

3.4 设置描述字的文件位置 87

3.5 dup和dup2函数 90

3.6 fdopen和fileno 91

3.7 文件控制函数fcntl 92

3.7.1 重复文件描述字 93

3.7.2 文件描述字标签 94

3.7.3 文件状态标签 95

3.8 非阻塞I/O 99

第4章 文件与目录 102

4.1 文件 102

4.1.1 stat、fstat、lstat函数 103

4.2 文件类型 105

4.2.1 普通文件 105

4.2.2 目录 106

4.2.3 链接与link函数 106

4.2.4 符号链接与symlink和readlink函数 108

4.2.5 特别文件 110

4.2.6 测试文件的类型 112

4.3 文件的用户和用户组 113

4.3.1 chown、fchown和lchown函数 116

4.4.1 文件访问权限 118

4.4 文件方式 118

4.4.2 调整用户ID和调整组ID 121

4.4.3 sticky位 122

4.4.4 文件方式位小结 123

4.5 确定和改变文件方式 124

4.5.1 umask函数 125

4.5.2 chmod和fchmod函数 126

4.5.3 access函数 128

4.6 文件大小 130

4.6.1 截断文件 132

4.7 文件时间 134

4.7.1 utime和utimes函数 135

4.8 文件的删除与换名 138

4.8.1 删除文件和目录 138

4.8.2 文件改名 140

4.9 目录操作 142

4.9.1 工作目录 142

4.9.2 创建目录 145

4.9.3 读目录流 146

4.9.4 对目录流的随机访问 149

第5章 UNIX进程环境 151

5.1 main函数 151

5.2 命令行参数 151

5.2.1 命令行参数的语法约定 152

5.2.2 扫描命令行参数中的选项 153

5.3 环境变量 156

5.3.1 环境表 156

5.3.2 访问环境 158

5.4 终止进程 160

5.4.1 出口状态 160

5.4.2 终止前的清理 161

5.4.3 流产程序 162

5.5 存储分配 163

5.5.1 进程的地址空间 164

5.5.2 简单存储分配 165

5.5.3 释放分配的存储单元 168

5.5.4 其他存储分配函数 169

5.6 setjmp和longump函数 170

5.7.1 查看与设置资源限制 175

5.7 进程资源 175

5.7.2 资源使用统计 178

5.7.3 进程优先权 179

5.8 用户信息 183

5.8.1 用户名 183

5.8.2 用户数据基 185

5.8.3 组数据基 188

6.1 进程创建 193

第6章 进程控制 193

6.2 执行一个新程序 199

6.3 等待进程完成 204

6.4 进程终止与僵死进程 210

6.5 system函数 214

6.6 进程组 217

6.7 会晤期 219

6.8 控制终端 220

6.9 作业控制 222

6.9.1 作业控制的概念 223

6.9.2 实现作业控制的shell 224

6.9.3 示例shell中用到的数据结构 226

6.9.4 shell的初始化 227

6.9.5 发送作业 228

6.9.6 放置作业于前台或后台 231

6.9.7 暂停的和终止的作业 233

6.9.8 继续被暂停的作业 235

6.10 进程的用户身份 236

6.10.1 调整进程的身份 238

第7章 日期与时间 246

7.1 处理机时间 246

7.1.1 clock函数 246

7.1.2 times函数 248

7.2 定时与睡眠 252

7.2.1 设置定时器 252

7.2.2 睡眠 256

7.3 日历时间 256

7.3.1 取系统时间 257

7.3.2 高分辨率时间函数 258

7.3.3 分解的日历时间 260

7.3.4 格式化日期与时间 263

7.4 时区 267

7.4.1 用TZ环境变量指定时区 267

7.4.2 Tzset函数与相关的变量 269

第8章 信号处理 270

8.1 信号概念 270

8.2 UNIX信号 273

8.2.1 程序错误类信号 274

8.2.2 程序中止类信号 275

8.2.3 闹钟类信号 277

8.2.4 I/O类信号 277

8.2.5 作业控制类信号 277

8.2.6 操作错误类信号 279

8.2.7 其他信号 279

8.2.8 sys-siglist[]数组与psignal函数 280

8.3.1 signal函数 282

8.3 指定和改变信号的动作 282

8.3.2 进程初启时的信号动作 285

8.3.3 不可靠信号 286

8.3.4 sigaction函数 287

8.4 信号句柄 292

8.4.1 正常返回的信号句柄 292

8.4.2 终止进程的句柄 293

8.5 生成信号 294

8.5.1 raise函数 294

8.5.2 kill函数 295

8.6 阻塞信号 297

8.6.1 信号集操作 298

8.6.2 信号屏蔽 299

8.6.3 检查悬挂信号 302

8.7 等待信号 304

8.7.1 pause函数 304

8.7.2 sigsuspend函数 305

8.8 使用分开的信号栈 308

8.9 信号句柄编程技巧 312

8.9.1 句柄内非局部控制转移 313

8.9.2 可重入函数 317

8.9.3 紧相邻的多个信号 319

8.9.4 被信号中断了的系统调用 322

8.9.5 原子数据访问 324

8.10 SA_SIGINFO标志 326

第9章 低级终端I/O 332

9.1 需要改变终端调置的例子 332

9.2.1 终端I/O的历史 335

9.2 低级终端I/O基础 335

9.2.2 终端硬件模式 336

9.2.3 异步串行通信 337

9.2.4 加工和非加工输入方式 339

9.2.5 输入输出队列 339

9.2.6 流控制 341

9.3 POSIX.1 GTI控制界面 341

9.3.1 termios数据结构 341

9.3.2 GTI控制函数 343

9.4.1 输入方式 344

9.4 终端属性标志 344

9.4.2 输出方式 346

9.4.3 控制方式 347

9.4.4 局部方式 348

9.4.5 特殊字符 350

9.4.6 stty命令 353

9.5 终端标识 354

9.6 获取和设置终端属性 358

9.8 非加工方式输入 362

9.7 加工方式输入 362

9.9 设置波特率 369

9.10 行控制函数 370

9.11 串行端口程序设计 373

第10章 高级I/O 377

10.1 文件锁 377

10.1.1 fcntl文件锁操作 378

10.1.2 锁的请求、释放和测试 381

10.1.3 文件锁与进程和文件的关系 389

10.1.4 死锁 390

10.1.5 建议锁与强制锁 392

10.2 流 394

10.2.1 流概貌 394

10.2.2 流消息类型和优先级 397

10.2.3 访问流 399

10.2.4 流控制操作函数ioctl 402

10.3 信号驱动的I/O 404

10.4 多路转接I/O 406

10.4.1 select函数 407

10.4.2 poll 410

10.5 异步I/O 412

10.5.1 异步I/O控制块 413

10.5.2 指定信号 414

10.5.3 异步I/O函数 414

10.5.4 异步I/O之例 417

10.6 I/O方式小结 420

10.7 readv和writev 424

10.8 存储映射I/O 425

11.1 管道 433

第11章 进程间通信 433

11.1.1 创建管道 434

11.1.2 父子进程间管道通信 435

11.1.3 连接标准输入和标准输出的管道 440

11.1.4 popen和pclose函数 441

11.1.5 管道I/O的原子性 443

11.2 FIFL特别文件 443

11.2.1 创建FIFO 444

11.2.2 FIFO操作 446

11.2.3 FIFO用于客户/服务通信 450

11.3 系统V IPC 455

11.3.1 关键字和标识 456

11.3.2 ipc-perm结构 457

11.3.3 ipcs和ipcrm命令 458

11.4 消息队列 459

11.4.1 初始化消息队列 464

11.4.2 控制消息队列 464

11.4.3 发送和接收消息 467

11.5 信号量 471

11.5.1 信号量的初始化 473

11.5.2 信号量控制 475

11.5.3 信号量操作 478

11.6 共享存储 483

11.6.1 共享存储段的访问和控制 484

11.6.2 共享存储段的连接和分离 487

12.1 套接字 493

12.1.1 套接字的域、类型和协议 493

第12章 套接字与网络通信 493

12.1.2 创建套接字 495

12.1.3 关闭套接字 498

12.2 套接字地址 499

12.2.1 主机的IP地址 499

12.2.2 主机名 502

12.2.3 服务与端口号 506

12.2.4 套接字地址数据结构 509

12.3 字节顺序 511

12.4 协议数据库 513

12.5 命名套接字 516

12.6 套接字通信模式 519

12.7 流套接字操作 521

12.7.1 请求连接 522

12.7.2 接收连接 524

12.7.3 多客户 528

12.7.4 getsockname和getpeername 534

12.7.5 send和recv 537

12.8 套接字选项 539

12.9.1 TCP带外数据 541

12.9 带外数据 541

12.9.2 带外数据的发送和接收 543

12.9.3 带外数据标志 547

12.10 数据报套接字操作 550

12.10.1 sendto和recvrfom 551

12.10.2 数据报套接字客户/服务之例 552

12.10.3 使用connect 558

12.11 超时处理 559

附录 函数索引 562

相关图书
作者其它书籍
返回顶部