Вы должны определить, что вы имеете в виду исполняемых файлов.
Это может быть любой файл с его исполняемым битом (это владелец, группа или другое). Затем проверьте с access(2) & X_OK
и/или используйте stat(2).
Это также может быть только ELF исполняемых файлов. См. elf(5); то проблема может заключаться в проверке того, что файл действительно может быть выполнен, что может быть затруднено (что касается недостатков в библиотеке или неправильно сформированных файлов ELF?). Возможно, используйте libelf (и/или libmagic, чтобы выполнить эквивалент команды file(1)).
Чтобы сканировать рекурсивно дерево файлов, используйте nftw(3); сканировать только каталог использовать opendir(3) & readdir(3) (не забудьте closedir
!), то вам, вероятно, нужно построить полный путь к файлу из каждой записи каталога (возможно, с помощью snprintf(3) или asprintf(3))
Смотрите также Advanced Linux Programming
Существуют тысячи примеров использования ['opendir'] (http://man7.org/linux/man-pages/man3/opendir.3.html) и связанных функций, если вы просто немного ищете. –
Я много искал и ничего не нашел. Вы можете мне помочь? – user3593549
Одним из первых хитов в моих любимых поисковых системах был [этот старый вопрос SO] (http://stackoverflow.com/questions/3554120/open-directory-using-c). Прочтите этот пример, прочитайте [страницы руководства] (http://man7.org/linux/man-pages/) и попытайтесь сделать что-то самостоятельно. *** Если у вас есть проблемы с *** вашей собственной программой ***, вернитесь сюда и задайте новый вопрос, который показывает вашу полную попытку и подробное описание ваших проблем с этим кодом. –