-
鸿鹄论坛提供的华为认证H35-211-HCNP-Access Network题库涉及特殊设备文件
资源介绍
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环境高级编程
下载