c - 删除整个环境

标签 c unix environment-variables

当我使用代码 environ=NULL 时,这意味着我正在为该进程删除整个环境。

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

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

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

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

最佳答案

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

关于c - 删除整个环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37005896/

相关文章:

linux - 如何用文件中的绝对路径替换变量值?

linux - 使用 tee 在不同 unix 上表现不同的文件就地编辑

environment-variables - 如何从 Chapel 程序中读取环境变量?

c - 长型打印

c - 原始套接字在虚拟网络上发送两个数据包

c - 多线程应用程序中的锁定和解锁

c - 从文件的特定部分读取 PIC32MX

c - 如何在 C 中将 GCD 代码重写为 POSIX

Azure Pipeline Secret 环境变量标记为未定义

交响乐 4 : Uncaught RuntimeException: APP_ENV environment variable is not defined