【发布时间】:2011-08-02 20:52:09
【问题描述】:
我正在尝试在 c 程序中执行带有参数的命令。 例如,当用户执行我的程序时: "./a.out ls -la"
程序应该使用 la 选项执行 ls。
但我不知道该怎么做。
我的程序使用了 fork。
我试试这个方法:
pid = fork();
if(pid == 0){
execvp(argv[1], &argv[2]);
}else{
wait(NULL);
}
但它不起作用。
我想将带有 args 的数组作为 execvp 的第二个参数传递给命令,但我对指针有点困惑(以及更多关于指针的指针:s)。
我知道这不起作用,因为参数中的破折号,但即使我不使用破折号,程序也只会启动“ls”而不考虑“la”选项。
如果有人可以帮助我,我会很高兴知道这样做的好方法。
谢谢。
【问题讨论】: