在c程序中使用execvp运行命令

时间:2013-10-26 22:44:21

标签: c execvp

我想用execvp

运行此命令
gcc file1.o file2.o file3.o

我创建了一个包含此选项卡的标签:

char * tab = {"file1.o", "file2.o", "file3.o", NULL };

当我像这样调用execvp时:

 execvp("gcc",tab);

我有这个错误:

file1.o: erreur fatale: -fuse-linker-plugin, but liblto_plugin.so not found

当我使用:

编译文件时
gcc file1.o file2.o file3.o

没有问题。

注意我的程序不像我为此简化而编写的程序。要查看完整的代码,请访问http://pastebin.com/zQ8pwmZd

1 个答案:

答案 0 :(得分:3)

传递给argv的{​​{1}}数组的第一个元素(即传递给execvp的第二个参数)应该是(就像传递给execvp数组一样)任何C程序的argv函数)正在执行的程序的名称,其后的元素是第一个命令行参数。因此,main应为:

tab