gpt4 book ai didi

C 静态变量和 fork 进程

转载 作者:行者123 更新时间:2023-11-30 15:38:48 26 4
gpt4 key购买 nike

假设我有一个全局初始化为零的静态变量,并且有一个 fork 的进程。现在假设在此父进程中静态变量设置为值 10。我注意到在子进程中静态变量仍然为零。这种行为是合理的,因为我们没有在子进程中更改该变量的值。

如何使子级中的静态变量与父级中的该变量的值相同?也就是说,子级静态变量的副本也设置为值 10。

谢谢,如果您需要更多信息,请告诉我。

最佳答案

简短的回答是,使用静态变量不能,因为分配静态变量的内存区域不能共享。相反,您可以创建一个共享内存区域来执行此操作。实现此目的的一种方法是将 mmapMAP_ANONYMOUSMAP_SHARED 结合使用。可以将其想象为 malloc(),只不过以页面大小为单位。另一种途径是使用 shm_open()

关于C 静态变量和 fork 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com