gpt4 book ai didi

c - lstat() st_blocks 输出错误值

转载 作者:行者123 更新时间:2023-12-03 02:35:44 27 4
gpt4 key购买 nike

每当我为每个目录运行程序时,即使我使用 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);
}

最佳答案

st_blocks 是分配给目录节点的 512 字节 block 的数量。对于典型的现代文件系统来说,8x512 = 4096 字节 = 1 block 似乎是正确的。

它不会告诉您文件夹内文件的总大小或类似信息(如果您希望获得这些信息)。

欲了解更多信息: https://askubuntu.com/questions/186813/why-does-every-directory-have-a-size-4096-bytes-4-k

关于c - lstat() st_blocks 输出错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35679367/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com