我一直在搜索这个问题几个小时但找不到简单的是或否答案(或者可能取决于操作系统或架构),这正是我要找的。这可能是一个非常微不足道的问题。
我的预感是,进程的环境变量位于内核空间中,因此是内核数据结构,位于虚拟地址空间中的进程映像之上。
答案 0 :(得分:1)
为什么你认为环境存储在内核中?
这将需要专用的系统调用来导出它或映射到进程的共享内存区域。但是这个过程可以修改它自己的环境,那么现在发生了什么呢?检查环境最初是否与argv一起存储在堆栈中是微不足道的。
同样,你为什么要google而不是检查实现。例如,有/ proc / PID / environ和check,清楚地显示它正在从目标进程中读取'地址空间。 http://elixir.free-electrons.com/linux/latest/source/fs/proc/base.c#L908