如何在 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 我是堆栈的新手所以我不知道如何给你信用
我正在尝试执行从终端传递到由 :
分隔的 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 我是堆栈的新手所以我不知道如何给你信用