以编程方式获取另一个进程的环境变量?

时间:2012-07-24 09:14:27

标签: winapi linux-kernel

我想从流程B获取流程A的环境变量? 与A和B没有任何关系。 不是系统环境变量,而是已传递给流程的环境变量!

在linux或windows中

2 个答案:

答案 0 :(得分:2)

在Linux中,您可以通过阅读(或mmaping)/ proc / [pid] / environ来完成此操作。来自proc(5):

  

/ proc / [pid] / environ

     

此文件包含进程的环境。条目以。分隔    空字节('\ 0'),最后可能有一个空字节。因此,要打印出来    过程1的环境,你会这样做:

      $ (cat /proc/1/environ; echo) | tr '\000' '\n'

答案 1 :(得分:2)

环境变量显示在/proc/PID/environ

$ cat /proc/19065/environ
DISPLAY=localhost:0.0SHELL=/bin/bashPWD=/home/phil...

查看this问题。