每当我为每个目录运行我的程序时,即使我使用ls-ls检查每个目录的实际大小,也会输出8。 我试图打印用户输入的所有目录的st_blocks
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(int argc, char**argv)
{
struct stat path_stat;
int i;
int size=0;
for (i=1; i <argc; i++){
if (lstat(argv[i], &path_stat)) {
perror(argv[i]);
} else {
if (S_ISDIR(path_stat.st_mode)){
size=path_stat.st_blocks;
printf("%d %s \n",size,argv[i]);
}
}
}
return(0);
}
答案 0 :(得分:2)
st_blocks是分配给目录节点的512字节块的数量。对于典型的现代文件系统,8x512 = 4096字节= 1个块似乎是正确的。
它不会告诉您文件夹中的文件总大小或类似信息,如果这是您希望获得的。
了解更多信息: https://askubuntu.com/questions/186813/why-does-every-directory-have-a-size-4096-bytes-4-k