我搜索了很多,但我仍然没有得到答案。我有一个像shell一样工作的程序,并向用户询问所需的命令,然后我使用execlp打开这个新进程。我想知道是否有一种简单的方法可以确定命令是否已执行,或者收到的命令是否存在。
我使用以下代码:
execlp(argv[0], argv[0], (char *)NULL);
答案 0 :(得分:1)
如果找不到指定的,则execlp将返回-1并将errno设置为ENOENT。 所以你可以查一下,
if (errno == ENOENT)
printf("Command not found");
在您的父进程中。