7

我追求的是这种类型的含义以及什么接口可以使用它。

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

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

4

3 回答 3

10

dev_t在绝大多数程序(可移植且未连接到单个操作系统的程序)中,唯一用途是确定两个文件名或文件描述符引用相同的底层文件。当且仅当两个文件结构的st_ino和条目相互匹配时,这是正确的。st_devstat

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

于 2012-03-09T17:08:33.177 回答
7

实际上,在 中有两个dev_t类型的字段struct stat

  • st_dev是“包含文件的设备的 [d] 设备 ID”,因此如果两个文件具有相同的st_dev,则它们位于同一文件系统上。
  • st_rdev是由字符或块特殊文件表示的设备的设备ID,即在/dev. 它对其他类型的文件没有意义。
于 2012-03-09T14:53:44.607 回答
6

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

于 2014-01-25T12:57:43.073 回答