UNIX环境高级编程——基础与实现

需积分: 11 35 下载量 15 浏览量 更新于2024-07-27 1 收藏 18.16MB PDF 举报
"UNIX环境高级编程(china-pub).pdf" 本书是关于UNIX环境高级编程的一份详细指南,主要涵盖了UNIX操作系统的基础知识、标准化进程以及文件I/O等方面的内容。以下是书中部分核心知识点的概述: 1. **UNIX基础知识** - **登录**:在UNIX系统中,用户通过提供用户名和密码来登录系统,进入自己的工作环境。 - **文件和目录**:文件系统是组织文件和目录的方式。文件名和路径名用于定位文件,工作目录是当前操作的目录,而起始目录则是用户登录时默认进入的目录。 - **输入和输出**:UNIX系统使用文件描述符来标识输入/输出流。标准输入、输出和错误通常分别关联到键盘、屏幕和错误消息输出。无缓冲I/O直接与设备交互,而标准I/O库提供了缓冲机制。 2. **程序和进程** - **程序**:执行中的指令集合,而**进程**是程序的实例,具有唯一的进程ID(PID)。 - **进程控制**:包括创建(fork)、执行(exec)和终止(exit)等操作。 3. **ANSIC**:本书讨论了C语言的标准,特别是关于函数原型、类属指针和原始系统数据类型的规范。 4. **出错处理**:在UNIX中,错误通常通过返回值和设置errno全局变量来报告。程序员可以使用perror或strerror函数将错误代码转换为可读的错误信息。 5. **用户标识** - **用户ID**(UID):每个用户都有一个唯一的ID,用于标识其在系统中的权限。 - **组ID**(GID):用户属于一个或多个组,每个组也有自己的ID,用于控制文件访问权限。 - **添加组ID**(Supplementary GID):用户还可以有额外的组ID,扩展权限范围。 6. **信号**:信号是进程间通信的一种方式,用于通知进程发生了特定事件,如SIGINT用于中断程序。 7. **UNIX时间值**:UNIX系统使用时间戳来记录时间,通常以秒为单位,从1970年1月1日开始计算。 8. **系统调用和库函数**:系统调用是直接与内核交互的手段,而库函数是对系统调用的封装,提供更易用的接口。 9. **UNIX标准化** - **ANSI C**:定义了C语言的语法和语义,是编写跨平台软件的基础。 - **IEEE POSIX**:定义了一套操作系统接口标准,使得UNIX和其他兼容POSIX的系统之间有更大的一致性。 - **X/Open XPG3** 和 **FIPS 151-1**:进一步扩展和规范了UNIX系统的行为。 10. **文件I/O** - **文件描述符**:标识打开文件的唯一整数。 - **open函数**:用于打开文件,返回文件描述符。 - **creat函数**:创建新文件或重写已存在文件。 - **close函数**:关闭文件描述符,释放系统资源。 - **lseek函数**:更改文件读写位置。 - **read和write函数**:读写文件内容,考虑效率和原子性。 - **文件共享**:多个进程可以同时访问同一文件,需要考虑同步和互斥问题。 - **dup和dup2函数**:复制文件描述符,实现文件描述符间的关联。 - **fcntl和ioctl函数**:提供高级文件控制功能,如锁定和设备控制。 以上只是《UNIX环境高级编程》中的一部分内容,全书深入探讨了UNIX系统的各个方面,对于理解和开发在UNIX环境下运行的应用程序具有极高的价值。通过学习这些知识,开发者可以更好地理解系统的内部工作原理,并能更高效地利用系统资源。
2023-06-09 上传