gpt4 book ai didi

C 统计问题

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:58 25 4
gpt4 key购买 nike

在我的程序中,stat 仅适用于当前目录。谁能帮我解决这个问题。

即使我从 main 传递参数,它也只适用于当前目录。源路径很好,它正在打印我从主要路径传递过来的正确路径。

    DIR *dr;
struct dirent *cur;
struct stat fi;
long int total_size = 0;
dr = opendir(source);
char *name;
printf("%s\n\n\n", source);
if (!(dr))
{
perror("opendir()");
return(1);
}

while (cur = readdir(dr))
{
if(cur->d_name[0] != '.')
{
if(stat(cur->d_name, &fi) == -1)
{
printf("error \n\n");
}
else
{
printf("%s ",cur->d_name);
printf("%ld ",fi.st_blocks);
total_size = total_size + fi.st_blocks;
}
}
}
printf("\n\ntotal_size = %ld \n", total_size);
printf("\n\n\n");
return 0;

最佳答案

cur->d_name 只包含文件名。

获取当前目录外的'stat()',

需要以路径字符串作为前缀。

还需要检查是否从 readdir() 返回的结构是文件或子目录。

关于C 统计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947038/

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