| Предыдущий | Следующий |
| E2BIG | EBADF |
ENOEXEC
Что код доказывает и чего не доказывает
ENOEXEC означает, что запуск дошёл до проверки формата, но система не смогла распознать цель как допустимый программный образ. Типичные причины: двоичный файл для другой архитектуры процессора, повреждённый или неполный исполняемый файл, прямой запуск текста без подходящей строки интерпретатора либо неверный заголовок сценария.
Это отличается от ENOENT: цель была найдена. Код также не равен обычному отказу в праве исполнения. Некоторые оболочки и высокоуровневые средства запуска намеренно пытаются передать текст shell, поэтому наблюдаемое поведение может различаться между оболочками, средами выполнения и обёртками, хотя исходный системный вызов вернул ENOEXEC.
Как расследовать
- Определите точный файл, переданный API запуска: обёртка может разрешать иной путь, чем показан пользователю.
- Проверьте архитектуру, формат файла и целостность после передачи или распаковки.
- Для сценария проверьте первую строку, путь к интерпретатору, окончания строк и право исполнения.
- Используйте средство запуска, сохраняющее исходный
errno, а не заменяющее его общей фразой «команда завершилась ошибкой».
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.