系统相关
首页 > 系统相关> > 无需在Linux中安装即可阻止设备信息

无需在Linux中安装即可阻止设备信息

作者:互联网

我试图在C中获取linux中块设备的一些信息(特别是块大小).是否可以在不安装设备的情况下获取设备的块大小,并且可能无需查看动态文件(如/ sys中的文件),但仅限系统调用.

我正在尝试使用stat,但如果我询问/ dev / sdb2,它会返回有关/ dev filesystem的数据.

如果系统调用不可能,我应该在哪里查看动态文件(也无法找到它.)

解决方法:

你想使用ioctl,特别是BLKSSZGET.

引用linux / fs.h:

#define BLKSSZGET  _IO(0x12,104)/* get block device sector size */

未经测试的例子:

#include <sys/ioctl.h>
#include <linux/fs.h>

int fd = open("/dev/sda");
size_t blockSize;
int rc = ioctl(fd, BLKSSZGET, &blockSize);

标签:linux,block-device
来源: https://codeday.me/bug/20191008/1870753.html