我正在尝试创建一个简单的程序,它将从参数运行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;
}
答案 0 :(得分:0)
你可能意味着(注意argv[1]
周围缺少引号):
execlp("bash", "myprogram", argv[1], NULL);
请注意,我在此假设myprogram
是一个shell脚本。如果它是二进制文件,则应删除前面的"bash"
参数。
一个好的故障排除技术可能是用bash
替换echo
以确认命令行。