我正在尝试获取可用的磁盘空间。但是,当我将更多文件写入磁盘时,我回来的大小不会改变。我做错了什么?
我通过运行/dev/sda1
确认我正在写df -h
,并且在将文件写入磁盘时看到可用空间确实在下降。
double size; //size of aval disk space
struct statvfs buf;
if((statvfs("/dev/sda1", &buf)) < 0)
{
printf("Failed to get statvfs\n");
}
else
{
size = (((double)buf.f_bavail * buf.f_bsize) / 1048576);
printf("You have: %.0f MB free\n", size);
}
答案 0 :(得分:2)
您需要在要检查的已挂载文件系统上的路径上调用statvfs, 例如
statvfs("/", &buf)
文件系统上的任何路径都可以,例如&#34; /home/user/foo/tmp/file.txt"