linux c语言进程间通信疑问,上述程序只是想父进程创建一个消息队列,发给子进程消息,但是为什么没有成功

2024-12-04 13:35:44
推荐回答(1个)
回答1:


if((msgid=msgget(IPC_PRIVATE,0666))==-1)
{
printf("error111");
exit(0);
}
放到fork()函数之前就可以了。

创建消息队列需要在fork()之前,因为fork()产生的是两个进程,他们的资源是相互独立的。

fork()之后创建的消息队列,另一个进程不能识别。