我所追求的是这种类型的含义以及可以使用它的接口。
在Posix规范中解释了dev_t
用于设备ID。但是,设备ID对路径描述的任何对象意味着什么,可以是文件,直接,fifo或物理设备?
例如,调用stat()
会给你一个结构,包括这种类型的成员;并且您可以在文件系统中统计任何类型的对象。对于不同的文件类型,设备ID应具有不同的含义。
答案 0 :(得分:9)
绝大多数程序(可移植且未连接到单个操作系统)中dev_t
的唯一用途是确定两个文件名或文件描述符引用相同的基础文件。当且仅当两个文件“st_ino
”结构的st_dev
和stat
条目彼此匹配时才会出现这种情况。
基本上,st_dev
告诉文件驻留在哪个“设备”(例如挂载的分区,网络共享等),st_ino
是单个上下文中文件的唯一标识符设备
答案 1 :(得分:5)
实际上,struct stat
中有两个dev_t
类型的字段:
st_dev
是“包含文件的设备的[d]设备ID”,因此,如果两个文件具有相同的st_dev
,则它们位于同一文件系统中。st_rdev
是由字符或块特殊文件表示的设备的设备ID,即/dev
中常见的文件。它对其他类型的文件没有意义。答案 2 :(得分:4)
在内核中,定义的dev_t类型用于保存设备号(主要/次要)。 dev_t是一个32位数量,其中12位为主要数字,20位为次要数字。