$ man nftw
NAME
ftw
, nftw
- файл дерева ходьбы
ОПИСАНИЕ
ftw()
идет по дереву каталогов
который находится под каталогом
dirpath и вызывает fn()
один раз для каждого
запись в дереве. По умолчанию,
каталоги обрабатываются до
файлы и подкаталоги, которые они содержат
(предварительный заказ).
СООТВЕТСТВУЕТ
POSIX.1-2001, SVr4, SUSv1.
Простой пример
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
static unsigned int total = 0;
int sum(const char *fpath, const struct stat *sb, int typeflag) {
total += sb->st_size;
return 0;
}
int main(int argc, char **argv) {
if (!argv[1] || access(argv[1], R_OK)) {
return 1;
}
if (ftw(argv[1], &sum, 1)) {
perror("ftw");
return 2;
}
printf("%s: %u\n", argv[1], total);
return 0;
}