我正在开发一个服务器程序,该程序通过多个子进程为多个客户端提供服务。我仅使用一个System V消息队列在父进程和子进程之间进行通信。每个进程将等待mtype等于进程ID的消息。每个子进程仅与父进程通信。在父进程中,我使用标志IPC_NOWAIT调用msgrcv,以防止被阻塞以处理其他内容。有2个子进程,它可以按预期工作,但是当子进程数增加时,将发生以下问题:
所以:
我的系统是Centos7。消息的大小为300个字节。
答案 0 :(得分:0)
未提供代码。最好是检查失败的返回值并参考联机帮助页。在gdb上,您可以单步执行操作以指出子进程无法发送消息的地方