在分叉进程之间共享全局变量

时间:2012-02-04 19:35:46

标签: c process fork

我有一个全局变量X.然后我从子代中分叉并修改X.我希望这些更改显示在父级中,但我不希望父级必须等待子级。

我该怎么做?

3 个答案:

答案 0 :(得分:5)

您需要将变量放在共享内存中。有许多方法可以创建共享内存。我可能只使用mmap,但您也可以查看shmgetshm_open

答案 1 :(得分:1)

当您分叉一个新进程时,该进程是地址空间的单独副本。它只能看到之前所做的更改。

如果您希望共享内存用于进程之间的通信,则必须明确创建。

答案 2 :(得分:1)

你不能。

分叉后,这是两个独立的过程。 您必须使用一些IPC