首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

Linux编程 讯息队列

2012-11-04 
Linux编程 消息队列主要代码如下程序运行时,手动ipcrm -Q 删掉其对应的消息队列,结果程序返回的errno却是E

Linux编程 消息队列
主要代码如下

程序运行时,手动ipcrm -Q 删掉其对应的消息队列,结果程序返回的errno却是EINVAL,

为什么不是EIDRM呢?这两者有什么区别?请教...

C/C++ code
while( msgsnd(msgId,buf,iLen,0) ){    if( errno == EIDRM )    {        msgId = ReopenMsg(msgKey);    }        if( errno == EINTR )    {        LogPrn(3,1,"msgsnd,   EINTR : Interrupted system call\n sleep 2 seconds...");        sleep(2);    }        if( errno == EINVAL )    {        ....;    }    }


[解决办法]
别在意了, 都是可能返回的, 看实现了.

EIDRM The message queue was removed.

EINVAL Invalid msqid value, or nonpositive mtype value, or invalid msgsz value (less than 0 or greater than the system value MSGMAX).
[解决办法]
探讨
别在意了, 都是可能返回的, 看实现了.

EIDRM The message queue was removed.

EINVAL Invalid msqid value, or nonpositive mtype value, or invalid msgsz value (less than 0 or greater than the system value MSGMAX).

热点排行