QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1223|回复: 1

msgsnd阻塞问题

[复制链接]
发表于 2005-1-20 15:32:06 | 显示全部楼层 |阅读模式
发送程序从键盘接收输入作为消息发送,但是发两三条消息(我从键盘输入两三次)就阻塞了,接收程序那边更惨,msgrcv连这个两三条消息都收不全,就阻塞了。我是用strncmp(buf,"end",3)来判断是否结束循环的,本身没问题,我把msgsnd屏蔽了,程序按设计正常运行,就是msgsnd的毛病,估计。缓冲区空间应该够用,BUFSIZ不小了,请指教,谢谢!
 楼主| 发表于 2005-1-20 15:38:43 | 显示全部楼层
struct msgbuf{long type;char data[BUFSIZ];};
struct msgbuf p;
char buf[BUFSIZ];int msgid; int i=1;
msgid=msgget((key_t)1234,0666|IPC_CREAT);
while(i){
fgets(buf,BUFSIZ,stdin);
p.type=1;
strcpy(p.data,buf);
msgsnd(msgid,&p,BUFSIZ,0);
if(strncmp(buf,"end",3)==0) i=0;}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 17:30 , Processed in 0.043282 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表