2013-01-02 27 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'。 –