получить путь к файлу / каталогу, используя только системные вызовы read () и open (), и просмотреть все файлы в каталоге и подкаталогах - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь дать моей программе путь к каталогу и перебрать все файлы в этом каталоге и файлы в подкаталогах, чтобы найти только файлы c и скомпилировать их.Я не хочу использовать readdir \ opendir для этого.Теперь я смог открыть каталог, используя:

(fd = open(".", O_DIRECTORY | O_RDONLY))

, чтобы получить доступ к файлам в каталоге и его подкаталогах. Я хочу использовать системный вызов read ().но как я могу это сделать?когда я хочу прочитать файл, я делаю это так:

char c;
read(fd1, &c, 1) == 1)

, но я предполагаю, что использование символа не является правильным способом ... так что я должен использовать вместо этого?

и последнее: чтобы получить доступ к файлам в подкаталогах (хотя я буду использовать рекурсию для этого), я должен иметь возможность определить, читаю ли я файл подкаталога, я знаю, чтомакрос is_dir может сделать это, но в этом случае я не могу его использовать, так как правильно проверить, является ли он файлом или каталогом?

Любая помощь будет принята

...