UNIX操作系统中的作业控制与标准化

需积分: 11 23 下载量 160 浏览量 更新于2024-08-06 收藏 18.16MB PDF 举报
"这篇文档是关于UNIX环境高级编程的教程,涵盖了作业控制、UNIX系统的基础知识、标准化进程以及文件I/O等内容。主要讨论了作业控制在UNIX系统中的实现,包括所需的壳层支持、内核终端驱动和信号支持,并提到了不同UNIX版本如SVR4和4.3BSD对POSIX.1作业控制的支持。此外,文档还深入介绍了UNIX系统的基本概念,如文件和目录管理、进程控制、C语言标准、用户标识、信号处理、时间值以及系统调用和库函数。" 知识点详解: 1. **作业控制**: 作业控制是UNIX系统的一个特性,允许用户在同一个终端上启动多个作业(进程组),并能控制哪个作业可以访问终端以及哪些作业在后台运行。它需要支持作业控制的shell、内核中的终端驱动程序以及对特定作业控制信号的支持。 2. **POSIX.1作业控制**: 标准化进程中,POSIX.1选择了伯克利形式的作业控制。FIPS 151-1规定了对POSIX.1作业控制的要求。SVR4和4.3+BSD操作系统实现了这一标准。 3. **UNIX基础知识**: 包括登录、文件和目录管理(文件系统、文件名、路径名、工作目录和起始目录)、输入和输出(文件描述符、标准输入输出、无缓冲I/O和标准I/O)、程序和进程(程序与进程ID、进程控制)、ANSI C标准(函数原型、类属指针和原始系统数据类型)以及错误处理、用户标识(用户ID和组ID)和信号处理。 4. **UNIX标准化**: 讲述了UNIX标准化的过程,包括ANSI C、IEEE POSIX、X/Open XPG3和FIPS 151-1。同时,讨论了不同UNIX实现,如SVR4和4.3+BSD,以及它们如何与标准相关联。 5. **文件I/O**: 文件I/O部分详细介绍了文件描述符、open、creat、close、lseek、read、write等文件操作函数,以及I/O效率、文件共享、原子操作(如向文件添加内容和创建文件)、dup、dup2、fcntl和ioctl函数的用法,以及/dev/fd设备节点。 6. **限制和兼容性**: 文档提到了不同标准下的限制,如ANSI C、POSIX、XPG3的限制,以及如何通过sysconf、pathconf和fpathconf函数查询这些限制。还讨论了FIPS 151-1的要求以及运行时未确定的限制。 7. **功能测试宏**: 功能测试宏用于检测系统是否支持特定的功能或行为,是编写可移植代码的重要工具。 通过以上知识点,读者可以深入了解UNIX系统的核心特性和编程接口,为高级编程和系统级开发打下坚实基础。