当前位置: 技术问答>linux和unix
unix/linux平台下进程间通信的问题(消息队列)(紧急求助)
来源: 互联网 发布时间:2014-11-25
本文导语: 编译平台:pc ,redhat linux 7.2,256M ram 我定义的消息结构如下时,执行正确。 struct strtest { long int msgtype; /*消息类型*/ char buf[236]; }; 将buf改为buf[237]时,发送出错!即: struct strtest { long int msgtype; /*消息类型*...
编译平台:pc ,redhat linux 7.2,256M ram
我定义的消息结构如下时,执行正确。
struct strtest
{
long int msgtype; /*消息类型*/
char buf[236];
};
将buf改为buf[237]时,发送出错!即:
struct strtest
{
long int msgtype; /*消息类型*/
char buf[237];
};
注:
MSGMAX:8192
MSGMNB:16384
MSGMNI:16
我定义的消息结构如下时,执行正确。
struct strtest
{
long int msgtype; /*消息类型*/
char buf[236];
};
将buf改为buf[237]时,发送出错!即:
struct strtest
{
long int msgtype; /*消息类型*/
char buf[237];
};
注:
MSGMAX:8192
MSGMNB:16384
MSGMNI:16
|
建议把msgsnd 后errno 的值打印一下
看看具体错误
msgtype > 0
msgsize = 237
看看具体错误
msgtype > 0
msgsize = 237
|
消息队列满了?
|
说详细点,你是说msgsnd()调用出错吗?在什么情况下出的错?
|
是不是你发送的时候写死了发送长度为236?