1

我的代码是:

char* arg_list[] = { "gnuplot", "gnuplot_script.sh", NULL };
printf("Ready %s %s\n", arg_list[0], arg_list[1]);
execv( "gnuplot", arg_list );
_exit(EXIT_FAILURE);

输出是:

Ready gnuplot gnuplot_script.sh

但什么也没有发生(虽然它应该弹出一个图表)。

我正在将输出复制粘贴,没有“Ready”到终端,在我刚刚执行我的程序的同一个地方,它可以工作。所以我不确定这是一个路径问题。

我错过了什么?

4

1 回答 1

1

execv()需要一个路径,例如:

execv("/usr/bin/gnuplot", arg_list);

execvp()如果您只想提供文件名,则可以使用:

execvp("gnuplot", arg_list);

这两个函数都设置errno为失败,所以perror()在失败时运行会告诉你发生了什么。

于 2014-11-18T02:10:30.410 回答