如果我提出一个“双重问题”,我很抱歉,但我不想将这两个分开:) 有没有人知道TMPFS_MAGIC
有这个值0x01021994
的用途是什么?它是定义的/usr/include/linux/magic.h
,我在运行以下代码时发现了它,该代码试图确定 linux 目录(通常是分区)中的可用空间:
QString path = "/dev/sde1";
struct stat stst;
struct statfs stfs;
if ( ::stat(path.toLocal8Bit(), &stst) == -1 )
{
return 0.0;
}
if ( ::statfs(path.toLocal8Bit(), &stfs) == -1 )
{
return 0.0;
}
return m_diskFree = stfs.f_bavail * ( stst.st_blksize / 1024 );
从 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。