“execle”在Linux和嵌入式Linux中的区别

3

我想使用x86平台通过以下方式启动名为myapp的应用程序:execl("./myapp","");这很好!但是,当我使用ARM平台+嵌入式Linux时失败了。为什么?任何帮助都将不胜感激。先谢谢。


根据man手册,你应该使用execl("./myapp", "./myapp", (char *)NULL);。你遇到了什么样的错误?execl的返回值是什么?errno是什么? - David Brigada
2个回答

3

您的调用方式有误:必须使用NULL作为参数列表的结束标志,否则execl()函数无法正常工作。

在x86平台上它仍然能够工作,真是个奇迹 ;)


2

如果您想使用execle传递与调用应用程序相同的环境变量,您可以使用以下内容:

#include <unistd.h>
extern char **environ;

/* ... */
execle("./myApp","./myApp",NULL,environ);  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接