我正在写一个假壳,在那里我创建一个子进程,然后调用execvp()。在正常的shell中,当我输入一个未知的命令如'hello'时,它会返回'hello:Command not found'。但是,当我将hello传入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,那么它是一个未知的命令,但在我的代码未列出的其他条件,在这里我不想等待(进入如如果&在命令结束时)。有什么建议么?