我需要在 C 中实现一个基本的 shell。我需要的一件事是实现一个具有命令的函数并执行它。我的代码:
pID=fork();
if (pID == 0)
execvp(tmp[0], tmp);
else if (pID > 0)
{
printf("%d", pID);
wait(NULL);
}
else
printf("Failed to create proccess \n");
问题是,无论我在 tmp 中输入什么命令,程序都会再次向我显示提示,除此之外什么也不做。例如,如果我写gedit
(为了打开gedit
Ubuntu 的 ntpad),它不会打开它,或者如果写ls -a
它不会像 Ubuntu 的终端那样向我显示任何输出。