我使用下面的代码来查找我的/
的磁盘使用情况
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/