1

我在linux中玩fork,我看到一些不喜欢我的东西

我读了这个链接分叉后,全局变量是否共享?我用gdb做了一个测试


[c0m0@worktux programming]$ ps aux | grep env

c0m0 3108 0.0 0.0 4288 324 pts/1 S 22:53 0:00 ./env c0m0 3110 0.0 0.0 4288 80 pts/1 S 22:53 0:00 ./env

[c0m0@worktux programming]$ gdb -q -p 3108 Attaching to process 3108

(gdb) call getenv("toto") $1 = 4195989 (gdb) x/s $1 0x400695: "root"

现在我将附加到子进程

[c0m0@worktux programming]$ gdb -q -p 3110

Attaching to process 3110

(gdb) call getenv("toto")

$1 = 4195989

(gdb) x/s $1

0x400695: "root"

所以我的问题是,为什么我在这两个过程中都看到了我在 fork 中设置的变量?

我使用函数 putenv 设置 toto=root,我试图更清楚。

我可以从父进程中看到在子进程中设置的环境变量吗?

4

0 回答 0