0

我正在尝试创建简单的程序,它将从参数运行 shell 命令,例如

./run date +"%r"

 07:56:05 PM

但我不知道怎么做。我试试这个,但它不起作用。我很困惑,完全不知道 exec 是如何工作的。

#include <unistd.h>
#include <stdio.h>

int main (int argc, char *argv[]){

    execlp("bash","bash", "argv[1]", (char*)0);  


    return 0;
}
4

1 回答 1

0

您可能的意思是(注意周围没有引号argv[1]):

execlp("bash", "myprogram", argv[1], NULL);

请注意,我在这里假设这myprogram是一个 shell 脚本。如果它是二进制文件,则应删除前面的"bash"参数。

一种很好的故障排除技术可能是替换bashecho确认命令行。

于 2013-11-04T19:08:32.587 回答