擦除整个环境

时间:2016-05-03 13:40:36

标签: c unix environment-variables

当我使用代码environ=NULL时,这意味着我正在擦除整个环境。

但我想知道为什么envrion=NULL意味着它正在消除整个环境。

基本上,环境变量位于进程堆栈地址范围下的地址空间中。

因此,environ变量表示地址空间,environ=NULL表示environ不再表示地址空间,我的意思是不擦除存在的内存环境变量

但是,为什么这意味着擦除整个环境?

1 个答案:

答案 0 :(得分:4)

C标准库通过environ指针访问环境。如果将该指针设置为不同的指针,则会使标准库不再找到先前设置的环境变量,从而具有清除环境或将其设置为您设置environ指针的任何内容的效果。