无需在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