gpt4 book ai didi

c++ - statvfs() 无法正常工作 C++ linux

转载 作者:IT王子 更新时间:2023-10-29 00:35:43 25 4
gpt4 key购买 nike

我正在尝试获取可用磁盘空间。但是,当我将更多文件写入磁盘时,我得到的大小不会改变。我做错了什么?

我通过运行 df -h 确认我正在写入 /dev/sda1 并且在我将文件写入磁盘时看到可用空间确实在减少。

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);
}

最佳答案

您需要在要检查的挂载 文件系统上的路径上调用 statvfs,例如

statvfs("/", &buf)

文件系统上的任何路径都可以,例如“/home/user/foo/tmp/file.txt”

/dev/sda1 上的 statvfs 可能会报告/dev 文件系统的使用情况。

关于c++ - statvfs() 无法正常工作 C++ linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com