Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在分叉进程之间共享全局变量_C_Process_Fork - Fatal编程技术网

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

C 在分叉进程之间共享全局变量,c,process,fork,C,Process,Fork,我有一个全局变量X,然后我从子变量fork和modify X。我希望这些更改显示在父对象中,但我不希望父对象必须等待子对象 我该怎么做 当您派生一个地址空间的单独副本的新进程时。它只能看到fork之前所做的更改 如果您想要共享内存用于进程之间的通信,则必须显式创建共享内存。您不能 分叉之后,这是两个独立的过程。 您必须使用一些。您需要将变量放入共享内存中。有许多方法可以创建共享内存。我可能只会使用mmap,但您也可以查看shmget或shm\u open对不起,我的问题一定不清楚。我意识到他们每

我有一个全局变量X,然后我从子变量fork和modify X。我希望这些更改显示在父对象中,但我不希望父对象必须等待子对象


我该怎么做

当您派生一个地址空间的单独副本的新进程时。它只能看到fork之前所做的更改

如果您想要共享内存用于进程之间的通信,则必须显式创建共享内存。

您不能

分叉之后,这是两个独立的过程。
您必须使用一些。您需要将变量放入共享内存中。有许多方法可以创建共享内存。我可能只会使用
mmap
,但您也可以查看
shmget
shm\u open

对不起,我的问题一定不清楚。我意识到他们每个人都有一个单独的副本,我正试图绕过这个问题,共享一个变量。如中所述,我如何在进程之间共享内存?您可能最好在这里使用线程(如果您认识我,您会知道这样说有多痛苦),因为您希望多个执行上下文能够修改单个内存实例中的数据。我的问题是问到如何使用某些IPC。