如何使用命令中的参数运行execlp

时间:2013-11-04 18:51:54

标签: c shell exec gnu

我正在尝试创建一个简单的程序,它将从参数运行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;
}

1 个答案:

答案 0 :(得分:0)

你可能意味着(注意argv[1]周围缺少引号):

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

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

一个好的故障排除技术可能是用bash替换echo以确认命令行。