Unix终端I/O处理:规范与非规范工作方式详解

需积分: 0 1 下载量 56 浏览量 更新于2024-07-31 收藏 908KB PDF 举报
"Unix环境高级编程"这一章节专门探讨了终端I/O处理在Unix操作系统中的复杂性和多样性。Unix自70年代后期以来,经历了系统III到V7,再到Berkeley类系统的变迁,终端I/O的发展形成了两种主要风格:一种是基于V7的传统风格,另一种是POSIX.1所定义的标准化接口。这些接口旨在解决终端设备在不同应用场景下的交互,如终端、直接连接、调制解调器、打印机等,因此涉及到的功能极其复杂。 本章的核心内容包括了POSIX.1的终端函数介绍,以及SVR4和4.3+BSD在此基础上的扩展。终端I/O处理的方式分为规范和非规范两种:规范方式以行为单位处理输入,每读取一次通常返回一行;而非规范方式则不对输入进行字符级的组装,适用于那些命令结构不包含新行符的程序,比如vi编辑器,它使用特殊字符作为编辑命令,所以不希望系统对其处理。 在终端驱动程序方面,V7和BSD类系统提供了三种输入模式:精细加工方式(输入按行装配并处理特殊字符)、原始方式(无行装配且不处理特殊字符)以及cbreak方式(无行装配,但处理特定特殊字符)。通过例子,如程序11-10所示,这些功能使得终端I/O能够灵活适应各种应用程序的需求。 学习这一章节有助于理解如何有效地控制和管理终端设备,这对于编写在Unix环境下运行的高效、兼容性好的程序至关重要。掌握终端I/O的这些细节对于系统管理员、程序员和任何需要与Unix终端进行深度交互的用户都是必不可少的技能。