C++ 我怎样才能确定一个循环回哪个设备?

C++ 我怎样才能确定一个循环回哪个设备?,c++,c,ubuntu,disk,C++,C,Ubuntu,Disk,在我的Ubuntu系统上,我运行WUBI,因此我有一个设备:/dev/loop0,它实际上是主驱动器NTFS文件系统上的一个文件。我知道环回设备不一定指向磁盘,但我如何确定它是否指向磁盘以及它环回哪个磁盘(在c/c++ofc中) 至于原因,我正在对系统进行一些轻度评测,并希望将环回上的分区与主磁盘合并。老实说,我不明白“轻度评测”与合并分区有什么关系 或者您真正想要完成的,但要找出哪个环回设备是正确的 与使用losetup命令可以完成的文件关联。执行此操作的代码需要以root身份运行,这样您就可

在我的Ubuntu系统上,我运行WUBI,因此我有一个设备:
/dev/loop0
,它实际上是主驱动器NTFS文件系统上的一个文件。我知道环回设备不一定指向磁盘,但我如何确定它是否指向磁盘以及它环回哪个磁盘(在c/c++ofc中)


至于原因,我正在对系统进行一些轻度评测,并希望将环回上的分区与主磁盘合并。

老实说,我不明白“轻度评测”与合并分区有什么关系 或者您真正想要完成的,但要找出哪个环回设备是正确的 与使用losetup命令可以完成的文件关联。执行此操作的代码需要以root身份运行,这样您就可以运行“sudolosetup-a”

要在C/C++中自己完成同样的操作,过程如下 解析/proc/partions以查找正在使用的循环设备 开环装置 fstat它以确保它是一个循环设备 ioctl循环\u获取\u状态 ioctl循环\u获取\u状态64

所有重要信息都在头文件linux/loop.h中
如果以上任何一个听起来太奇怪和/或模糊,请使用losetup。

评测,在我的例子中:尝试计算每个驱动器上有多少可用空间。由于wubi使用文件生成fs,所以主机文件系统会将其报告为已用空间,即使它不是。