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

UNIX程序设计指南PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:本丛书编写委员会编写
  • 出 版 社:北京:北京希望电子出版社
  • 出版年份:2000
  • ISBN:7900049371
  • 页数:492 页
图书介绍:本书介绍在目前流行的UNIX系统上如何进行程序设计,并重点介绍了UNIX的DECC语言版本。本书由两大篇组成,上篇为“UNIX编程指南”,下篇为“DECC语言参考”。
《UNIX程序设计指南》目录

上篇 UNIX编程指南 3

第1章 概述 3

1.1 应用程序开发的各阶段 3

1.2 技术要求和设计考虑 3

1.3 主要的软件开发工具 5

1.4 源文件控制 6

1.5 程序安装工具 6

1.6 进程间通信功能综述 7

第2章 编译系统 8

2.1 编译系统组成部件 8

2.2 Trn64 UNIX环境中的数据类型 10

2.3 使用C预处理器 13

2.4 编译源程序 15

2.5 链接目标文件 19

2.6 运行程序 21

2.7 目标文件工具 22

2.8 在标准C语言库中防止ANSI命名空间的冲突 24

第3章 预处理程序(伪)指令的杂注 26

3.1 #pragma environment(伪)指令 26

3.2 #pragma exten_prefix(伪)指令 27

3.3 #pragma inline(伪)指令 28

3.4 #pragma intrinsic和#pragma function(伪)指令 29

3.5 #pragma linkage(伪)指令 30

3.6 #pragma member_alignment(伪)指令 32

3.7 #pragma message(伪)指令 33

3.8 #pragma pack(伪)指令 33

3.9 #pragma pointer_size(伪)指令 34

3.10 #pragma use_linkage(伪)指令 35

第4章 共享程序库 36

4.1 共享程序库概述 36

4.2 识别符号 37

4.3 链接共享程序库 40

4.4 关闭共享程序库 40

4.5 创建共享程序库 40

4.6 使用私有共享程序库 41

4.7 使用快速起动 41

4.8 调试与共享程序库连接的程序 46

4.9 在运行时加载共享程序库 46

4.10 保护共享程序库文件 47

4.11 共享程序库的版本划分 48

4.12 符号绑定 55

4.13 使用共享程序库的一些限制 55

第5章 使用dbx调试程序 57

5.1 常规调试应注意的问题 58

5.2 运行dbx 60

5.3 使用dbx命令 62

5.4 使用dbx监控程序工作 64

5.5 控制dbx 67

5.6 分析源程序 74

5.7 对程序的控制 79

5.8 设置断点 84

5.9 检验程序的状态 89

5.10 启动对信息转储文件的命名 94

5.11 调试运行中进程 96

5.12 调试多线程应用程序 96

5.13 调试多重异步进程 100

5.14 例程 101

第6章 C程序检查工具Iint程序 103

6.1 Iint命令的语法结构 103

6.2 程序流程的检验 104

6.3 数据类型的检验 105

6.4 变量和函数的检验 107

6.5 未经赋值就加以引用的变量的检验 109

6.6 迁移的检验 109

6.7 可移植性的检验 109

6.8 编码错误和编码文风特色的检验 110

6.9 增大表格尺寸 111

6.10 创建一个Iint库 111

6.11 对Iint错误信息的理解 113

6.12 使用警告类项消除Iint信息 117

6.13 为编译期间语法结构错误的检验生成函数原型 121

第7章 调试程序的工具疲劳测试 122

7.1 在应用程序上运行疲劳测试 122

7.2 调试程序举例 124

7.3 疲劳测试错误信息的解释 129

7.4 检查应用程序中堆的用法 131

7.5 在符号信息不够的程序上使用疲劳测试 135

7.6 合法的疲劳测试错误报告 135

7.7 未检测的错误 136

第8章 配置改进性能的程序 137

8.1 概述 137

8.2 配置样例程序 137

8.3 配置文件的编译选项 139

8.4 自动的和配置文件定向的优化 139

8.5 人工设计和代码的优化 143

8.6 缩小系统资源的使用 156

8.7 确认检验事实的重要性 159

8.8 选择显示的配置信息 159

8.9 合并配置数据文件 161

8.10 配置多线程应用程序 162

8.11 使用监视例程控制配置 163

第9章 使用和开发Atom工具 167

9.1 运行Atom工具 167

9.2 开发Atom工具 170

第10章 优化技术 192

10.1 建立一个应用程序的指导方针 192

10.2 应用程序的代码指导方针 197

第11章 处理异常情况 204

11.1 异常处理的概述 204

11.2 从一个用户程序中提出异常情况 206

11.3 编写一个结构化异常处理程序 206

11.4 编写一个结束处理程序 213

第12章 开发线程安全库 216

12.1 关于线程支持的概述 216

12.2 因POSIX的一致性而发生的运行期间库变化 217

12.3 线程安全和可重入例程的特点 217

12.4 编写线安全代码 218

12.5 建立多线程应用程序 221

第13章 OpenMP并行处理 223

13.1 cc命令行选项 223

13.2 环境变量 224

13.3 协调运行期间执行 224

13.4 常见的用户错误 225

13.5 使用锁 226

13.6 特殊执行行为 227

第14章 发送与接收EVM事件 228

14.1 事件与事件管理 228

14.2 关于如何处理EVM事件的概述 229

14.3 启动与停止EVM 230

14.4 授权发送和接收事件 230

14.5 EVM事件的内容 230

14.6 设计系列的事件 236

14.7 EVM编程接口 242

14.8 增加对EVM的事件信道 263

附录A 在Tru64 UNIX系统中使用32位指针 268

A.1 编译程序系统和语言对32位指针的支持 268

A.2 -taso选项的使用 269

A.3 -xtaso或-xtaso_short选项的使用 272

附录B 系统V Habitat的区别 274

B.1 源代码的兼容性 274

B.2 系统调用和库例程的总结 275

附录C 创建动态可配置的内核子系统 277

C.1 动态可配置子系统的概要 277

C.2 属性表的概要 279

C.3 创建一个配置例程 284

C.4 允许可装载子系统中操作系统的修改 292

C.5 建立和装载可装载的子系统 292

C.6 在内核中建立一个静态可配置子系统 293

C.7 测试用户的子系统 295

附录D 旧式的并行处理 297

D.1 并行处理杂注的使用 297

D.2 并行处理杂注语法 299

D.3 环境变量 303

附录E 处理设备特殊文件名 305

下篇 DEC C语言参考 311

第1章 词典 311

1.1 字符集 312

1.2 标识符 314

1.3 注释 315

1.4 关键字 316

1.5 操作符 316

1.6 标点符号 317

1.7 字符串 318

1.8 常量 318

1.9 头文件 323

1.10 限制 323

第2章 基本概念 325

2.1 块 326

2.2 编译单元 326

2.3 作用域 326

2.4 可见性 328

2.5 副作用和序列点 328

2.6 不完全类型 329

2.7 相容类型和组合式类型 330

2.8 连接 331

2.9 不确定定义 332

2.10 存储类型 333

2.11 存储类型修饰语 334

2.12 向前引用 337

2.13 标记 338

2.14 左值和右值 339

2.15 名字空间 340

2.16 预处理 340

2.17 类型名 341

第3章 数据类型 342

3.1 数据大小 344

3.2 整数类型 344

3.3 浮点数类型 346

3.4 派生类型 347

3.5 void类型 351

3.6 枚举类型 351

3.7 类型限定符 352

3.8 类型定义 362

第4章 声明 364

4.1 声明语法规则 364

4.2 初始化 366

4.3 外部声明 367

4.4 声明简单对象 368

4.5 声明枚举 370

4.6 声明指针 371

4.7 声明数组 373

4.8 声明结构和联合 377

4.9 带指示的初始变元 383

4.10 声明标记 385

4.11 声明类型定义 386

第5章 函数 388

5.1 函数调用 388

5.2 函数类型 388

5.3 函数定义 389

5.4 函数声明 391

5.5 函数原型 392

5.6 形参和实参 394

第6章 表达式和运算符 397

6.1 基本表达式和运算符 397

6.2 C运算符概述 398

6.3 后缀运算符 401

6.4 一元表达式和运算符 405

6.5 二元表达式和运算符 408

6.6 条件表达式和运算符 412

6.7 赋值表达式和运算符 412

6.8 逗号表达式和运算符 413

6.9 常量表达式 413

6.10 数据类型转换 414

第7章 语句 418

7.1 有标号语句 418

7.2 复合语句 418

7.3 表达式语句 419

7.4 空语句 419

7.5 选择语句 419

7.6 循环语句 422

7.7 转移语句 424

第8章 预处理指令和预定义宏 426

8.1 宏定义(#define和#undef) 426

8.2 条件编译(#if,#ifdef,#ifndef,#else,#elif,#endif和defined) 430

8.3 文件包含(#include) 432

8.4 显示行编号方式(#line) 433

8.5 特定实现预处理指令(#pragma) 433

8.6 错误指令(#error) 435

8.7 空指令(#) 435

8.8 预定义宏功能名 435

第9章 ANSI C标准库 437

9.1 诊断(〈assert.h〉) 437

9.2 字符处理(〈ctrype.h〉) 438

9.3 错误码(〈ermo.h〉) 439

9.4 ANSI C限制(〈limits.h〉)和(〈flost.h〉) 439

9.5 本地限制(〈locale.h〉) 439

9.6 数学(〈math.h〉) 442

9.7 非局部跳转(〈setjmp.h〉) 444

9.8 信号处理(〈signal.h〉) 445

9.9 可变参数(〈stdarg.h〉) 446

9.10 常用定义(〈stddef.h〉) 446

9.11 输入/输出(〈stdio.h〉) 447

9.12 通用操作(〈stdlib.h〉) 454

9.13 字符串处理(〈string.h〉) 458

9.14 日期和时间(〈time.h〉) 461

附录A 语言语法概要 464

附录B ANSI一致性概要 475

B.1 诊断 475

B.2 宿主环境 475

B.3 多字节字符 475

B.4 转义序列 475

B.5 翻译限制 476

B.6 数值限制 476

B.7 关键字 476

B.8 标识符 477

B.9 标识符的连接 477

B.10 类型 477

B.11 整型常量 477

B.12 字符常量 477

B.13 字符串文字 478

B.14 运算符——复合赋值 478

B.15 字符和整数——值保存扩展 478

B.16 有符号和无符号的整数转换 478

B.17 浮点数和整数转换 478

B.18 指针转换 478

B.19 构和联合成员 479

B.20 sizeof运算符 479

B.21 强制类型转换运算符 479

B.22 乘法运算符 479

B.23 加法运算符 479

B.24 位字段移位运算符 480

B.25 存储类型说明符 480

B.26 类型说明符 480

B.27 结构和联合说明符 480

B.28 可变结构和联合 480

B.29 结构对齐方式 480

B.30 枚举说明符 481

B.31 类型限定符 481

B.32 说明符 481

B.33 初始化 481

B.34 switch语句 482

B.35 外部对象定义 482

B.36 条件包含 482

B.37 源文件包含 482

B.38 宏替换——预处理宏功能名 482

B.39 ##操作符 484

B.40 error指令 484

B.41 编译指示指令 484

B.42 函数直接插入扩展 484

B.43 连接编译指示 485

B.44 其他的编译指示 485

附录C ASCII等价表 486

附录D DEC C支持的通用C扩展 488

D.1 和ANSI C兼容的扩展 488

D.1 和ANSI C不兼容的扩展 489

附录E DEC C支持的VAX C扩展 490

E.1 和ANSI C兼容的扩展 490

E.2 和ANSI C不兼容的扩展 491

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