Предполагая, что ваша конечная цель - в конечном итоге выполнить программу, вы этого не делаете. Этот тест был бы бесполезен, потому что результат потенциально неверен даже до того, как функция, выполняющая проверку, вернется! Вы должны быть готовы обработать ошибку execve
из-за ошибок разрешения.
Как указал Стив Джессоп, проверка того, является ли данный файл исполняемым , может быть полезной в некоторых ситуациях, таких как вывод списка файлов (ls -l
) или визуальный файловый менеджер. Можно, конечно, подумать о более эзотерическом использовании такого использования битов разрешения файла для межпроцессного взаимодействия (интересно как метод, который не требует выделения ресурсов), но я подозреваю, stat
(«Какие биты разрешения установлены to? "), а не access
(" Имеет ли вызывающий процесс разрешение X? "), скорее всего, будет интересным вопросом ...