gpt4 book ai didi

无法使用 execv() 执行程序

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:03 26 4
gpt4 key购买 nike

我的代码是:

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”的输出复制粘贴到终端中,在我刚刚执行我的程序的同一个地方并且它可以工作。所以我不确定这是路径问题。

我错过了什么?

最佳答案

execv() 需要路径,例如:

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

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

execvp("gnuplot", arg_list);

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

关于无法使用 execv() 执行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com