2012-07-29 34 views
1

任何人都知道如何通過C程序更改Linux環境變量?我不想更改爲執行該程序而複製的環境變量。我希望能夠從C程序中更改它的值,然後在linux中執行命令'env'時,我可以看到它的值發生了變化。通過C程序更改環境變量

任何提示?

回答

3

我不想更改爲該程序執行復制的環境變量 。我想在linux我 執行命令「ENV」時,可以看到它的價值,能夠將其值 從C程序變再變

你不能。 您只能更改您自己的流程的環境。你無法觸及父母的環境。換句話說,你所做的任何事情(設置/清除環境變量,更改本地目錄等)對於父進程都是不可見的。

標準明確規定:

的SETENV()函數將更新或在調用進程的 環境添加一個變量。

改變父母環境的唯一方法就是親自去做。

+0

但是我前一陣子在stackovewflow中看到這個帖子: 使用System.Environment類。 方法System.Environment.GetEnvironmentVariable() 和 System.Environment.SetEnvironmentVariable() 將做的工作適合你。 我只是不知道如何調用這些方法 – user1486033 2012-07-29 14:36:48

+2

@ user1486033你注意到這是C,而不是Java? – 2012-07-29 14:43:40

+1

btw how'bout'系統(「export VAR = value」);'? – 2012-07-29 14:44:12