如何计算我使用fork创建的进程数?其中一些是在子进程内部进行的,因此我不能只在退出时计算。除了退出状态之外,有没有办法传递某些变量?
答案 0 :(得分:0)
shm_open
的手册页有一个如何使用共享内存的示例。打开共享内存对象和内存映射它在每个进程中,将其用作int
指针并在所有进程中增加它。
为了帮助解决竞争条件,您可以使用POSIX semaphores。
答案 1 :(得分:0)
你可以自己使用一个全局变量,只需在每个带条件
的叉子后加1 if((pid = fork()) >= 0)
使用保护变量的机制,如mutex
。