任何人都知道如何通過C程序更改Linux環境變量?我不想更改爲執行該程序而複製的環境變量。我希望能夠從C程序中更改它的值,然後在linux中執行命令'env'時,我可以看到它的值發生了變化。通過C程序更改環境變量
任何提示?
任何人都知道如何通過C程序更改Linux環境變量?我不想更改爲執行該程序而複製的環境變量。我希望能夠從C程序中更改它的值,然後在linux中執行命令'env'時,我可以看到它的值發生了變化。通過C程序更改環境變量
任何提示?
請參閱POSIX函數setenv
和putenv
。
setenv
http://pubs.opengroup.org/onlinepubs/009604599/functions/setenv.html
putenv
http://pubs.opengroup.org/onlinepubs/009604599/functions/putenv.html
作爲POSIX說的SETENV()函數優於此功能。 (putenv)
我不想更改爲執行該程序而複製的環境變量。
作爲@cnicutar在他的答案中,你只能改變當前進程的環境變量,而不是其父進程或其他進程。
我不想更改爲該程序執行復制的環境變量 。我想在linux我 執行命令「ENV」時,可以看到它的價值,能夠將其值 從C程序變再變
你不能。 您只能更改您自己的流程的環境。你無法觸及父母的環境。換句話說,你所做的任何事情(設置/清除環境變量,更改本地目錄等)對於父進程都是不可見的。
標準明確規定:
的SETENV()函數將更新或在調用進程的 環境添加一個變量。
改變父母環境的唯一方法就是親自去做。
但是我前一陣子在stackovewflow中看到這個帖子: 使用System.Environment類。 方法System.Environment.GetEnvironmentVariable() 和 System.Environment.SetEnvironmentVariable() 將做的工作適合你。 我只是不知道如何調用這些方法 – user1486033 2012-07-29 14:36:48
@ user1486033你注意到這是C,而不是Java? – 2012-07-29 14:43:40
btw how'bout'系統(「export VAR = value」);'? – 2012-07-29 14:44:12