Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TMPFS_MAGIC in linux标头和确定可用磁盘空间时出错_C_Linux_Disk - Fatal编程技术网

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";