TMPFS_MAGIC in linux标头和确定可用磁盘空间时出错
很抱歉,如果我提出一个“双重问题”,但我不想将这两个问题分开:)有没有人知道TMPFS_MAGIC in linux标头和确定可用磁盘空间时出错,c,linux,disk,C,Linux,Disk,很抱歉,如果我提出一个“双重问题”,但我不想将这两个问题分开:)有没有人知道TMPFS_MAGIC的值0x01021994用于什么?它是在/usr/include/linux/magic.h中定义的,我在运行以下试图确定linux目录(通常是分区)中可用空间的代码时发现了它: 从gdb命令提示符: (gdb) print stfs $1 = {f_type = 16914836, f_bsize = 4096, f_blocks = 2042909, f_bfree = 2042907, f_b
TMPFS_MAGIC
的值0x01021994
用于什么?它是在/usr/include/linux/magic.h
中定义的,我在运行以下试图确定linux目录(通常是分区)中可用空间的代码时发现了它:
从gdb命令提示符:
(gdb) print stfs
$1 = {f_type = 16914836, f_bsize = 4096, f_blocks = 2042909, f_bfree = 2042907, f_bavail = 2042907, f_files = 2042909, f_ffree = 2042267, f_fsid = {__val = {0, 0}}, f_namelen = 255, f_frsize = 4096, f_flags = 4128, f_spare = {0,
0, 0, 0}}
其中f_type=16914836
是来自上面的魔力。请参考“/dev/sde1”是一个外部驱动器,上面有一个NTFS分区
而且上面的代码对于linux系统上安装的NTFS分区也不能正常工作(它适用于ext*fs文件系统),因此我要问:您是否知道如何正确找到linux主机上安装的NTFS驱动器的可用空间?linux命令df
似乎正确地完成了这项工作,但我没有找到正确的方法来完成它(但…)
谢谢,f.所以,经过一些调试和不眠之夜,解决方案非常简单。找到df.c的源代码并阅读它。免费开放源代码万岁 解释:当你使用stat和statfs来查找硬盘上的可用空间时,你不会试图查找设备本身的可用空间,因为这很神奇。。。但是,您尝试查找安装设备的目录的可用空间。因此,与其
QString path = "/dev/sde1";
应该有
QString path = "/mnt/DISK";
其中“mnt/DISK”
是安装磁盘“/dev/sde1”
的目录。我已经使用了libext2fs
来查找磁盘的装载点,但我确信还有其他更好的解决方案,例如解析/etc/mtab
QString path = "/mnt/DISK";