1. 首页
  2. 操作系统
  3. Unix
  4. 特殊设备文件-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

特殊设备文件-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

上传者: 2024-07-15 21:53:41上传 PDF文件 18.16MB 热度 13次

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环境高级编程下载。

相关内容参考:

UNIX环境高级编程

用户评论