在Posix中,如何使用类型dev_t?

Men*_*phy 5 c posix stat

我所追求的是这种类型的含义以及可以使用它的界面.

Posix规范中解释了它dev_t用于设备ID.但是,设备ID对路径描述的任何对象意味着什么,可以是文件,直接,fifo或物理设备?

例如,调用stat()应该给你一个结构,包括这种类型的成员; 并且您可以在文件系统中统计任何类型的对象.对于不同的文件类型,设备ID应具有不同的含义.

R..*_*R.. 9

dev_t绝大多数程序(可移植且未连接到单个OS)的唯一用途是确定两个文件名或文件描述符引用相同的底层文件.当且仅当两个文件的结构的条目st_inost_dev条目stat彼此匹配时才是这样.

基本上,st_dev告诉文件驻留在哪个"设备"(例如,安装的分区,网络共享等),并且st_ino是单个设备的上下文内的文件的唯一标识符.


Fre*_*Foo 6

实际上,有两个dev_t字段struct stat:

  • st_dev是"包含文件的设备的[d]设备ID",因此如果两个文件具有相同的文件st_dev,则它们位于同一文件系统上.
  • st_rdev是由字符或块特殊文件表示的设备的设备ID,即通常遇到的文件/dev.它对其他类型的文件没有意义.


小智 6

在内核中,定义在的 dev_t 类型用于保存设备号(主要/次要)。dev_t 是一个 32 位的数量,其中 12 位用于主编号,20 位用于次编号。