ChinaUnix.net
相关文章推荐:

msgrcv函数使用

int msgrcv(int msgid,struct msgbuf *msgp,int msgsz, long msgtype,int msgflg); 请问: msgflg 设为0是表示什么? msgflg 设为1是表示什么? msgflg 设为2是表示什么?

by zouhu_cn - C/C++ - 2009-04-06 14:41:51 阅读(1953) 回复(2)

相关讨论

while ((ret=msgrcv(msgid,&msgstr,RCVBUFLEN,msgtype,IPC_NOWAIT)) < 0) { if (++i>;100) return -1; if (errno==EINTR||errno==EAGAIN||errno==ENOMSG){ usleep(20000); errno=0; continue; } syslog( "receive data err",__FILE__...

by xisi - C/C++ - 2004-01-09 14:59:37 阅读(4679) 回复(6)

在fedora7.0平台上写一个消息队列的代码,有一个奇怪的问题请教: 如果用msgget(key, IPC_CREAT | 0600)来创建消息队列,在colinux上的fedora7.0可以正常运行,但是在vmware上的fedora7.0却提示“Permission denied”,如下: [lb@lb server]$ ./server msgget:create: Permission denied 还是在vmware上的fedora7.0,如果用msgget(key, IPC_CREAT | 0000)来创建消息队列,那么,msgget似乎可以了,可是在msgrcv的时候又出错了,...

by reer - C/C++ - 2009-03-04 13:43:19 阅读(4081) 回复(5)

[code]#include "my.h" int main(int argc,char * argv[]) { int mqid; long type; char buff[10]; char * mem_pointer; int f; int shmid; type=100; mqid=msgget(ftok("~/progame/network/ipc",0),O_RDWR); msgrcv(mqid,buff,10,type,0); shmid=shmget(SHMKEY,MAXLINE,0777); mem_pointer=shmat(shmid,(void *)ADDRESS,0); printf("%s",mem_pointer); printf("%s",buff); shmdt(mem_pointer); msgctl(mqid,IPC_R...

by earl808 - C/C++ - 2006-07-08 14:33:57 阅读(5495) 回复(8)

那么是不是只收msgtype类型的数据,其他数据不收了? 那么我把MSGTYPE设置成getpgrp()返回值,那会有什么效果呢?

by 莫良23 - C/C++ - 2008-08-10 16:47:07 阅读(2668) 回复(2)

请问,我用msgrcv从消息队列中读数据后,消息队列中还会不会,存在我已经读过的数据呢?

by harryccf - C/C++ - 2005-10-20 11:09:37 阅读(1370) 回复(3)

消息队列结构体 struct msg_buf /* 消息结构 */ { long msgType; //消息类型 unsigned char msgText[1500]; //消息正文 }suMsgBuf; [code] printf("1ip地址 = [%s], 用户 = [%s], 密码 = [%s], 数据库名称 = [%s]\n", serverID, g_user, pswd, DbName); memset(&suMsgBuf, 0, sizeof(suMsgBuf)); ret = msgrcv(s_TETOSWmsqid, &suMsgBuf, sizeof(suMsgBuf), 0, 0); if( ret < 0 ) { printf("msgrcv error\n"...

by jinmiaobis - C/C++ - 2006-06-02 16:18:06 阅读(907) 回复(2)

我的程序在执行msgrcv后 返回值是0,那也就是说没有从消息队列中取到值吧。但参数中的msgbuf的值怎么会改变了呢? msgrcv( (int) mc_answ_msg, (struct msgbuf*)mc_msg, sizeof(MC_ANSW_MSG_R) - sizeof(long),(long) MC_RD_FIRST_MSG, 0)

by sdemon915 - C/C++ - 2005-07-11 13:50:32 阅读(1156) 回复(2)

返回了一个errno=22的错,请问各位大虾是什么问题?

by yaya76 - C/C++ - 2004-02-25 17:20:26 阅读(688) 回复(0)

如何设置当msgrcv在指定时间没有接受到消息就返回,而不是一直阻塞在那里啊

by aaaaal - C/C++ - 2005-10-21 09:43:15 阅读(3610) 回复(1)

[code] #include ; #include ; #include ; #include ; #include ; #include ; #include ; #include ; struct msg{ long msg_type; unsigned long msg_text; }; int main(int argc, char *argv[]) { int ceshi,ii,cc,id; int i=3; struct msg sg; //printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",EAGAIN,EACCES,EFAULT...

by hawfeng - C/C++ - 2005-07-03 16:06:06 阅读(3827) 回复(3)