深入理解UNIX环境编程

需积分: 0 3 下载量 148 浏览量 更新于2024-07-31 收藏 6.17MB PDF 举报
"UNIX环境高级编程.pdf" 这篇PDF文档主要涵盖了UNIX环境下的高级编程知识,适合对UNIX系统有一定基础的读者进一步提升技能。书中的内容详细讲述了UNIX操作系统如何为运行在其上的程序提供服务,如执行程序、文件操作、内存管理、时间获取等。作者采取了一种逐步深入的方式,避免在讲解过程中超前引用未解释的概念,确保读者能够逐步理解UNIX的工作机制。 在第一章中,作者首先介绍了UNIX的基本概念,包括操作系统的核心功能和服务。这一部分简要地概述了UNIX系统如何通过登录过程来验证用户身份,其中涉及到登录名和加密口令存储在/etc/passwd文件中的结构。值得注意的是,有些现代系统会将加密口令单独存储,这部分将在后续章节中详细讨论。 接下来,书中提到了shell,这是用户与UNIX系统交互的重要工具。shell是一个命令行解释器,它接受用户的输入,执行相应的命令。常见的shell类型有Bourne shell (/bin/sh)、C shell (/bin/csh)和Korn shell (/bin/ksh)。每个用户的默认shell通常在口令文件的相应条目中指定。Bourne shell是最早的广泛使用的shell,而C shell由于其语法接近C语言而在伯克利软件发行版中流行。Korn shell则是Bourne shell的增强版本,结合了两者的优点。 后续章节将会详细讲解如何使用shell命令、编写shell脚本、文件管理、进程控制、输入输出重定向、管道和过滤器,以及更高级的系统调用和库函数。这些内容对于在UNIX环境中进行系统编程至关重要,涵盖了诸如打开、读写文件、创建进程、信号处理等核心主题。此外,书中可能还会涉及不同版本的UNIX系统,如BSD、System V和SVR4之间的差异,以便读者了解跨平台的兼容性问题。 通过学习这本书,读者不仅可以掌握UNIX编程的基本技巧,还能深入了解UNIX系统的设计哲学和工作原理,从而有能力解决更复杂的系统级问题。无论是对个人开发者还是团队协作,掌握这些知识都将极大地提升在UNIX环境下的开发效率和代码质量。
2011-10-20 上传
本书全面介绍了UNIX系统的程序设计界面—系统调用界面和标准C库提供的许多函数。 本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、 进程间通信以及各种I/O。在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库, PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威, 概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士 —都是一本无价的参考书籍。 目 录 译者序 译者简介 前言 第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函数