首页 > 解决方案 > 如何使用 C api 将文件名映射到挂载的设备 linux

问题描述

我要解决的问题:我有一个文件名(带有完整路径)。我想确定它位于 /dev/ 上的哪个设备上。是否可以使用 linux C API 解决?

标签: clinuxlinux-kernel

解决方案


您可以调用任何stat()族函数。struct stat它们用很多值填充 a ,其中之一是st_dev,是包含文件的块设备的设备标识符。

您如何将其映射到真实设备?好吧,您可以遍历所有设备/dev/*并调用stat()所有设备。它们所代表的设备在此其他字段中返回st_rdev(非 POSIX);与原始文件匹配的那个st_dev,即您要查找的设备。

相反,如果您想要设备的主要次要编号,还有以下其他功能:major()minor(),我认为这不是 POSIX。


推荐阅读