LINUX.ORG.RU

Re:

Из программы на C.

des
() автор топика

Именно подкаталогов можно, посмотрев к-во ссылок у родительского. Вообще всех файлов, по видимому, только обходом.

anonymous
()

В подкрепление слов анонимуса: думаю, в общем виде (безотносительно к ext3) в find эту проблему обдумали достаточно тщательно, см. man find -noleaf. Наверное, подробнее можно посмотреть в сорцах find'а.

alexsaa
()

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>

int main(int argc, char **argv)
{
    struct stat statbuf;

    if(argc < 2)
    {
        fprintf(stderr, "Usage: %s <path to directory>\n", argv[0]);
        return 1;
    }

    if(!stat(argv[1], &statbuf))
        printf("Subdirs (including . and ..): %d\n", statbuf.st_nlink);
    else
    {
        fprintf(stderr, "Cannot stat %s\n", argv[1]);
        return 1;
    }

    return 0;
}

--

statbuf.st_nlink для смонтированных шар может отличаться от локального поведения.

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

> statbuf.st_nlink для смонтированных шар может отличаться от локального поведения

Да кстати, это тоже. Никакие find (fts) для нерекурсивного поиска не нужны, man opendir.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.