文件名称:特殊设备文件-中国电信智慧城市白皮书
文件大小:18.36MB
文件格式:PDF
更新时间:2024-07-29 20:46:29
Unix 环境高级编程
4.23 特殊设备文件 s t _ d e v和s t _ r d e v这两个字段经常引起混淆,当在 11 . 9节讨论t t y n a m e函数时,需要使用这两 个字段。有关规则很简单: • 每个文件系统都由其主、次设备号而为人所知。设备号所用的数据类型是基本系统数据 类型d e v _ t。回忆图4 - 1,一个磁盘经常包含若干个文件系统。 • 我们通常可以使用两个大多数实现都定义的宏: m a j o r和m i n o r来存取主、次设备号。这 就意味着我们无需关心这两个数是如何存放在 d e v _ t对象中的。 早期的系统用 1 6位整型存放设备号: 8位用于主设备号, 8位用于次设备号。 S V R 4使用3 2位:1 4位用于主设备号, 1 8位用于次设备号。 4 . 3 + B S D则使用1 6位: 8位用于主设备号,8位用于次设备号。 P O S I X . 1说明d e v _ t类型是存在的,但没有定义它包含什么,或如何取得其内 容。大多数实现定义了宏 m a j o r和m i n o r,但在哪一个头文件中定义它们则与实现 有关。 • 系统中每个文件名的 s t _ d e v值是文件系统的设备号,该文件系统包含了该文件名和其对 应的i节点。 • 只有字符特殊文件和块特殊文件才有 s t _ r d e v值。此值包含该实际设备的设备号。 实例 程序4 - 1 0为每个命令行参数打印设备号,另外,若此参数引用的是字符特殊文件或块特殊 文件,则也打印该特殊文件的s t _ r d e v值。 程序4-10 打印s t _ d e v和s t _ r d e v值 8 6 U N I X环境高级编程 下载