Я пишу фальшивую оболочку, где я создаю дочерний процесс и затем вызываю execvp (). В обычной оболочке при вводе неизвестной команды, такой как «привет», возвращается «привет: команда не найдена». Тем не менее, когда я передаю hello в execvp (), он не возвращает ошибку по умолчанию и просто продолжает работу остальной части моей программы, как будто ничего не произошло. Какой самый простой способ узнать, действительно ли ничего не было запущено? вот мой код:
if(fork() == 0)
{
execvp(cmd, args);
}
else
{
int status = 0;
int corpse = wait(&status);
printf(Child %d exited with a status of %d\n", corpse, status);
}
Я знаю, что если труп <0, то это неизвестная команда, но в моем коде нет других условий, которых я не хочу ждать (например, если & вводится в конце команды). Есть предложения? </p>