我在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,我试图更清楚。
我可以从父进程中看到在子进程中设置的环境变量吗?