2013-01-02 28 views
-1

如何使用环境变量LD_PRELOAD=/test/lib.so在Linux启动过程在C++中,我知道我应该使用功能execl功能,但是当我用它启动过程中C++的Linux上环境变量C++

感谢我有错误!

+0

您可以发布您的代码和错误吗? – hmjd

+0

你有什么错误? – user93353

+2

您应该使用execle()或execvpe()而不是execl。这些调用允许您指定一个环境。 – Friek

回答

2

man execle演示如何启动一个进程。您设置您的环境并将其传递到execle()

char *envp[] = { "LD_PRELOAD=/test/lib.so", "HOME=/home/olaf", NULL }; 
execle("/path/to/program", "program", "argument1", "argument2", NULL, envp); 
+0

@ivan谢谢您收到缺少的'NULL'。 –