任何人都知道我是如何通过一个C程序更改了Linux环境变量? 我不想改变这种复制该程序执行的环境变量。 我想在linux下执行命令“ENV”时,我可以看到它的值改为能够将其值从C程序更改,然后。
有小费吗?
任何人都知道我是如何通过一个C程序更改了Linux环境变量? 我不想改变这种复制该程序执行的环境变量。 我想在linux下执行命令“ENV”时,我可以看到它的值改为能够将其值从C程序更改,然后。
有小费吗?
我不想改变这种复制该程序执行的环境变量。 我希望能够将其值从C程序更改,然后在Linux中执行命令“ENV”时,我可以看到它的价值变化
你不能。 你只能改变自己的过程的环境 。 你根本没有任何接触母体的环境的方式。 换句话说,任何你做(设置/清除环境变量,改变本地目录等)将是父进程不可见。
该标准明确规定:
该SETENV()函数将更新或调用进程的环境中添加一个变量。
改变父母的环境的唯一方法是让它自己来做。
见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放在他的回答只能更改环境变量为你的当前进程,而不是它的父进程或其他进程。