如何知道给exec的命令是否存在?

时间:2017-10-28 02:30:31

标签: c fork exec parent-child

我搜索了很多,但我仍然没有得到答案。我有一个像shell一样工作的程序,并向用户询问所需的命令,然后我使用execlp打开这个新进程。我想知道是否有一种简单的方法可以确定命令是否已执行,或者收到的命令是否存在。

我使用以下代码:

execlp(argv[0], argv[0], (char *)NULL);

1 个答案:

答案 0 :(得分:1)

如果找不到指定的,则execlp将返回-1并将errno设置为ENOENT。 所以你可以查一下,

if (errno == ENOENT)
  printf("Command not found");

在您的父进程中。