2014-06-25 65 views
0

我試圖在運行時使用system()命令在軟件中設置一個linux shell環境變量。在目標中,看不到它。例如 。爲什麼在Linux系統()cmd中不能「導出」在運行時設置linux shell環境變量?

snprintf(buf, sizeof(buf), "export A=%s", "luck"); 
system(buf); 

在目標運行時間嘗試/bin/sh -c "export A=B"並沒有成功。

+3

您無法修改父進程的環境。你能做的最好的事情就是'編寫一個shell腳本。環境模塊包使用源自程序生成的shell腳本的別名來解決此問題。 – Rufflewind

+1

'男人setenv''人putenv' –

+0

我發佈此查詢之前,我試過setenv和putenv。我不好意思不提。不管怎麼說,多謝拉。出於某種原因,setenv和putenv在我的linux shell中不起作用。我確實嘗試了一個腳本,它執行導出/未設置的環境變量。它運作良好。不幸的是,我沒有足夠的聲望投票給答案。謝謝 – here2learn

回答

2

system調用啓動一個新的shell並在其中運行該命令。 環境變量將僅在該shell中設置。

要在您自己的過程中設置環境變量,請使用putenv

相關問題