如何在linux上获取磁盘上的文件大小?
答
是,使用stat(2)
系统调用:
#include <sys/stat.h>
...
struct stat statbuf;
if (stat("file.dat", &statbuf) == -1) {
/* check the value of errno */
}
printf("%9jd", (intmax_t) statbuf.st_size);
我的理解是因为硬盘是块设备所以虽然我写的只是10个字节的文件时,内核会在BLOCK_SIZE方面分配块的文件。即(512字节)。假设磁盘总大小为1KB,并且我们已经创建了两个每个10bytes的文件,然后磁盘已满或没有?我对么 ? – Ashish 2011-04-26 18:01:18
在Linux上,大多数文件系统使用4 KB的块大小(也就是说,每个fs块都由8个512字节块组成),所以没有块适合1KB文件系统(不考虑元数据开销等)。 – janneb 2011-04-26 19:20:08
我知道了,我只举例1KB。谢谢我得到了我的答案。 – Ashish 2011-04-26 20:50:19