Почему в структуре данных должно быть число?Дереву не нужно знать его размер в O (1), если только это не является требованием (и при условии, что это может потребовать дополнительной блокировки и, возможно, узкого места производительности)
Под деревом я не имею в виду включение subdirсодержимое, но файлы с -maxdepth 1 - предположим, что они на самом деле не хранятся в виде списка.
edit: ext2 хранит их как связанный список.
современные ext3 реализуют хэшированиеB-Trees
Сказав это, / bin / ls делает гораздо больше, чем просто подсчет, и фактически сканирует все иноды.Напишите свою собственную программу на C или скрипт, используя opendir () и readdir ().
из здесь :
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main()
{
int count;
struct DIR *d;
if( (d = opendir(".")) != NULL)
{
for(count = 0; readdir(d) != NULL; count++);
closedir(d);
}
printf("\n %d", count);
return 0;
}