Я ищу способ определить, была ли функция execvp успешной или неудачной. Я знаю, что если он вернется, то он потерпел неудачу, но я ищу случай, когда команда, запущенная с execvp, потерпела неудачу. Например, в случае, когда «ls» пытается перечислить несуществующую папку. Из этого я планирую добавить поддержку для логических операторов (например, & &, ||). Благодарю.Определите, было ли execvp успешным или неудавшимся
else {
int status;
if (wait(&status) < 0) {
perror("wait failed");
exit(0);
}
if (status == 0) {
success = true;
}
else {
success = false;
}
}
Прямо сейчас у меня есть это, в конце моих проверок, чтобы убедиться, что вилка провалилась. Но я не думаю, что ищу нужную информацию из статуса. 'else if (c_pid> 0) { pid = waitpid (c_pid, & status, 0); if (pid == -1) {perror («wait failed»); \t выход (0); \t} if (status == 0) { \t success = true; \t} success = false; /* if ((pid = wait (& status)) <0) { perror ("wait ..."); выход (1); } */ } ' – xythyl
@xythyl Обновите свой вопрос кодом. Это невозможно прочитать в комментарии. – dbush
Спасибо! Кроме того, как мне правильно отправлять код здесь? По какой-то причине он не поддерживал форматирование. – xythyl