Я хочу просмотреть все подкаталоги и получить все файлы в каталоге и подкаталогах.Я только хочу использовать системный вызов open () и read () для этого (не opendir () или is_dir) бит, я продолжаю получать ошибку
error: ‘O_DIRECTORY’ undeclared (first use in this function)
, хотя я импортировал fcntl.
вот мой код ниже:
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include<fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
extern int errno;
int main()
{
int fd;
if ((fd = open(".", O_DIRECTORY | O_RDONLY)) ==-1)
{
printf("error %s\n", strerror(errno));
return -1;
}
return 0;
}
Кроме того, как можно использовать системный вызов read (), чтобы проверить, читаю ли я файл или подкаталог?(как я уже упоминал, я хочу просмотреть файлы во всех подкаталогах) Я знаю, что is_dir делает это, но я ищу способ сделать это без его использования.Любая помощь будет оценена.