Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何计算我使用 fork 完成了多少进程?其中一些是在子进程中创建的,所以我不能只在退出时数数。除了退出状态之外,有没有办法传递某些变量?
手册页shm_open有一个关于如何使用共享内存的例子。在每个进程中打开共享内存对象并对其进行内存映射,将其用作int指针并在所有进程中增加它。
shm_open
int
为了帮助解决竞争条件,您可以使用POSIX 信号量。
您可以自己使用全局变量,只需在每个带有条件的分叉后添加 1
if((pid = fork()) >= 0)
具有保护变量之类的机制mutex。
mutex