通过一个C程序改变环境变量(Changing a environmental variable th

2019-10-17 02:20发布

任何人都知道我是如何通过一个C程序更改了Linux环境变量? 我不想改变这种复制该程序执行的环境变量。 我想在linux下执行命令“ENV”时,我可以看到它的值改为能够将其值从C程序更改,然后。

有小费吗?

Answer 1:

我不想改变这种复制该程序执行的环境变量。 我希望能够将其值从C程序更改,然后在Linux中执行命令“ENV”时,我可以看到它的价值变化

你不能。 你只能改变自己的过程的环境 。 你根本没有任何接触母体的环境的方式。 换句话说,任何你做(设置/清除环境变量,改变本地目录等)将是父进程不可见。

该标准明确规定:

该SETENV()函数将更新或调用进程的环境中添加一个变量。

改变父母的环境的唯一方法是让它自己来做。



Answer 2:

见POSIX功能setenvputenv

setenv http://pubs.opengroup.org/onlinepubs/009604599/functions/setenv.html

putenv http://pubs.opengroup.org/onlinepubs/009604599/functions/putenv.html

如POSIX说优于此函数的SETENV()函数。 (运行putenv)

我不想改变这种复制该程序执行的环境变量。

作为@cnicutar放在他的回答只能更改环境变量为你的当前进程,而不是它的父进程或其他进程。



文章来源: Changing a environmental variable through a C program