c - 如何使用 C api 将文件名映射到挂载的设备 linux
问题描述
我要解决的问题:我有一个文件名(带有完整路径)。我想确定它位于 /dev/ 上的哪个设备上。是否可以使用 linux C API 解决?
解决方案
您可以调用任何stat()
族函数。struct stat
它们用很多值填充 a ,其中之一是st_dev
,是包含文件的块设备的设备标识符。
您如何将其映射到真实设备?好吧,您可以遍历所有设备/dev/*
并调用stat()
所有设备。它们所代表的设备在此其他字段中返回st_rdev
(非 POSIX);与原始文件匹配的那个st_dev
,即您要查找的设备。
相反,如果您想要设备的主要和次要编号,还有以下其他功能:major()
和minor()
,我认为这不是 POSIX。
推荐阅读
- java - JPA:自动从getter注解迁移到成员注解
- java - 从不使用子类继承的字段
- google-bigquery - 无法确定表的架构以使用 python 从本地上传到 bigquery
- javascript - 如何将对象数组中单个属性的值相加?
- python - 使用 Python 在循环内异步更新 websocket 服务器
- json - Angular + Spring boot REST,无法发布具有外键的实体
- python - 为什么 Pandas .loc 的点击次数比 MultiIndex.intersection 多?
- macos - MacOS Metal:无法从命令行应用程序捕获 GPU 帧
- sdl - 使用 SDL2,我如何可靠地获取操纵杆轴的初始位置?
- postgresql - 从 relfrozenxid 1749 之前找到 xmin 2965836007