c - 文件系统统计

标签 c disk-access

我使用下面的代码来查找我的/ 的磁盘使用情况

int main()
{
    struct statfs *stat;
    statfs64("/tmp",stat);
    perror("");
    printf("%lu \n",stat->f_bfree*stat->f_bsize);
    return 0;
}

错误继续打印“Bad Address”和大小的随机数。

地址错误

3264987920

PS:我试过sudo ./a.out,statfs("a.out",stat)

可能是什么问题?

最佳答案

您已经声明了一个指向 statfs 结构的指针,但实际上并没有为这样的结构分配空间。指针指向无处。它是未初始化的,它没有指向任何合法的地方。

struct statfs stat;

if (statfs64("/tmp", &stat) == -1) {
    perror("statfs64");
}
else {
    printf("%lu\n", stat.f_bfree * stat.f_bsize);
}

关于c - 文件系统统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050027/

相关文章:

c - 当我给 scanf() 一个非数字作为输入时,如何继续循环?

c - 在 C 中写入文件时减少磁盘访问次数

kubernetes - 如何确定正在运行的 Kubernetes pod 的当前临时存储使用情况?

android - Android Studio 缓慢的 gradle 构建和高磁盘使用率的任何解决方案?

c++ - C/C++ 程序有什么方法可以在 main() 之前崩溃吗?

c - 获得内核模块的正常运行时间?

c - 错误 : comparison between signed and unsigned integer expressions

c - 在 C 结构中隐藏成员