Я пишу фальшивую оболочку, где создаю дочерний процесс, а затем вызываю execvp(). В нормальной оболочке, когда я вхожу в неизвестную команду, такую как «hello», она возвращает «hello: Command not found». Однако, когда я передаю привет в execvp(), он по умолчанию не возвращает никаких ошибок и просто продолжает работу с остальной частью моей программы, как ничего не произошло. Какой самый простой способ узнать, что на самом деле ничего не было сделано? вот мой код:C - передача неизвестной команды в 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, то это неизвестная команда, но есть и другие условия в моем коде нет в списке, где я не хочу ждать (например, если & вводится в конце команды). Какие-либо предложения?