如何在 C 的 execlp 中执行 cat 命令?

How can I execute a cat command in a execlp in C?

我正在尝试执行从终端传递到由 : 分隔的 argv 的命令,更具体地说 cat nevermind : grep left : wc -c

tabCommand 是一个包含每个命令的数组所以 cat nevermind,grep left,wc -c

使用 printf 我可以确认 tabCommand[i-1] 确实等于 cat nevermind 但我得到的输出是 Error: No such file or directory

 if (execl(tabCommande[i-1],tabCommande[i-1], (char *)NULL) == -1) {
        error_and_exit();
 }

如果有人能帮助我找到问题,我将不胜感激。

根据我在 post 中收到的评论,我设法找到了我的问题

execlp("/bin/sh","sh","-c",tabCommande[i], (char *)NULL) 有效,因为我需要使用完整路径。 如果我这样做 execlp(tabCommande[i],tabCommande[i], (char *)NULL) 它不会工作,因为我没有使用每个命令的完整路径所以简单地给 cat 给 execlp 将不会工作。

找到这个答案感谢 waltinator 我是堆栈的新手所以我不知道如何给你信用