Я написал эту функцию, которая на самом деле перечисляет содержимое данной директории. Однако я хочу сказать, сколько файлов и сколько каталогов есть. Я пробовал такие вещи, но на самом деле это не работает:Как я могу указать количество файлов/каталогов
if(dir->d_type == D_DIR)
directories++;
Вот мой код. Как его изменить:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
int main (void) {
DIR *d = opendir (".");
struct dirent *dir;
if (d != NULL) {
int files, directories = 0;
while(dir=readdir(d))
puts(dir->d_name);//Prints the actual names of the entries
//Closing the directory
(void) closedir (d);
} else
perror ("Couldn't open the directory");
return 0;
}
«Не работает» означает, что он выходит из строя, печатает пароль вместо этого, или не дает (очевидно, правильный) результат? В любом случае попробуйте макрос 'if (S_ISDIR (s.st_mode))'. – usr2564301
читает исходный код 'ls' –