statvfs()无法正常工作C++linux
statvfs() not working correctly C++ linux
我正在尝试获取可用的磁盘空间。但是,当我向磁盘写入更多文件时,我返回的大小不会改变。我做错了什么?
我通过运行df -h
确认了我正在向/dev/sda1
写入,并且在向磁盘写入文件时看到可用空间确实在减少。
double size; //size of aval disk space
struct statvfs buf;
if((statvfs("/dev/sda1", &buf)) < 0)
{
printf("Failed to get statvfsn");
}
else
{
size = (((double)buf.f_bavail * buf.f_bsize) / 1048576);
printf("You have: %.0f MB freen", size);
}
您需要在要检查的安装的文件系统上的路径上调用statvfs,例如
statvfs("/", &buf)
文件系统上的任何路径都可以,例如"/home/user/foo/tmp/file.txt"
/dev/sda1上的statvfs可能会报告/dev/文件系统的使用情况。
相关文章:
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- 编译在我的 Mac 上工作,但在集群 (Linux) 上不起作用
- 声明C++具有动态大小的数组类型在 Linux 中工作正常,但不能在 Windows 中工作
- 为什么带lcov的codecov在Travis上不能正常工作,而在我当地的Linux Mint上却不能正常工作
- popen() 如何工作以及如何在 Linux 上实现它到 C++ 代码中
- Linux C++读取 UART 设备无法始终如一地工作
- Makefile在Linux中工作,但在Windows下不起作用,在子目录中找不到文件
- C++代码在 Linux 上按预期工作,但在 Windows 上则不然
- QtCUrl post不再工作(Linux nok...窗口确定)
- C++程序使用 mingw 在 Linux 上交叉编译在 MSy2 中工作,但不能直接在 Windows 中工作
- 将Linux打开,读,写,关闭功能以在Windows上工作
- Linux 中共享库中的单例无法按预期工作
- 为什么我的文件/目录操作在Windows上工作正常,但在Linux上不能
- C++:printf 和 wprintf 不能一起工作 (Linux)
- 在macOSX上编译boost_asio/example/ssl/server.cpp可以在Linux上工作
- 为什么这个c++代码在Linux中可以正常工作,而在Windows中却不能
- 可执行文件无法正常工作 [Linux]
- 无法在 Linux 上进行回车工作
- statvfs()无法正常工作C++linux
- 如何让马利比特键盘工作在linux上?(薄荷)