C语言中带有nftw函数的目录的递归路径

时间:2017-02-04 19:09:21

标签: c nftw

我试图使用nftw()函数通过某些文件的总和来计算目录的大小。但是如果我不能使用全局变量来存储大小的总和,我如何处理总和,我必须使用函数nftw()

1 个答案:

答案 0 :(得分:1)

我一直在调查,确实没有办法将参数传递给nftw函数来存储总和。但是我找到了一个解决方案,但我不知道它是否非常好。

我的解决方案使用"嵌套函数"如下:

int aux (char * name, int fd_limit, int flags) {

       int sum = 0;
       int nftwfunc (const char* filename, const struct stat* statptr, int fileflags, struct FTW* pfwt) {

           sum + = statptr-> st_size; 

       }

       nftw (name, nftwfunc, fd_limit, flags);
     
       return sum;

}