我试图在C ++中获取Linux中块设备的一些信息(特别是块大小)。是否可以在不安装设备的情况下获得设备的块大小,也可以不查看动态文件(例如/sys中的文件),而仅使用系统调用来获得该块的大小。

我尝试使用stat,但是如果我询问/dev,它会返回有关/dev/sdb2文件系统的数据。

如果无法通过系统调用,我应该在哪里查看动态文件(也无法找到它)。

有帮助吗?

解决方案

您要使用 ioctl ,尤其是BLKSSZGET

引用linux / fs.h: 通用标签

未经测试的示例: 通用标签

其他提示

我认为ioctl的值应该是unsigned long而不是size_t(最新的是更多的内存相关内容),我也将其初始化为0(以防BLKSSZGET返回unsigned int的情况)。 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top