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"
だから私の質問は何ですか、両方のプロセスでフォークに設定した変数が表示されるのはなぜですか?
set toto=root に関数 putenv を使用しました。より明確にしようとしています。
親から子プロセスに設定されていた環境変数を確認できますか?