我使用的glibc版本没有execvpe
功能。但是,我需要确切的功能,以满足我的目的。用户将传入一个参数列表,这是我们运行的linux命令(带有参数列表)。这是它的样子:
foo.c的
int main(int argc, char *argv[], char *envp[])
{
char * newenvp[] = ...;
execvpe(argv[1], &argv[1], newenvp);
}
使用示例
foo echo -e "Hello World.\n"
是否有一种解决方法可以将execvpe
替换为execle
?
答案 0 :(得分:0)
我相信我已经解决了自己的问题。使用execvpe
的解决方法是使用setenv
后跟execvp
。我相信功能是一样的:
int main(int argc, char *argv[], char *envp[])
{
setenv("MYVAR", "MYVALUE", 1);
/* More calls to setenv can be used if needed. */
execvp(argv[1], &argv[1]);
}