把if((msgid=msgget(IPC_PRIVATE,0666))==-1){printf("error111");exit(0);}放到fork()函数之前就可以了。创建消息队列需要在fork()之前,因为fork()产生的是两个进程,他们的资源是相互独立的。fork()之后创建的消息队列,另一个进程不能识别。