当前位置: 技术问答>linux和unix
linux systemV消息队列msgsnd失败
来源: 互联网 发布时间:2017-05-07
本文导语: 在linux下使用syetmV消息队列方式来传递数据 现在msgsnd返回-1,但是使用ipcs查看 对应的消息队列messages个数有相应的增加。。 这是为嘛? 实际上 我使用msgrcv函数也能接收到数据,但是同msgsnd类似msgrcv也提示失败。。...
在linux下使用syetmV消息队列方式来传递数据
现在msgsnd返回-1,但是使用ipcs查看 对应的消息队列messages个数有相应的增加。。
这是为嘛?
实际上 我使用msgrcv函数也能接收到数据,但是同msgsnd类似msgrcv也提示失败。。。
发送方代码如下:
现在msgsnd返回-1,但是使用ipcs查看 对应的消息队列messages个数有相应的增加。。
这是为嘛?
实际上 我使用msgrcv函数也能接收到数据,但是同msgsnd类似msgrcv也提示失败。。。
发送方代码如下:
#include
#include
#include
#include
#include
#include
#include
struct msgbuf{
long mtype; /* type of message */
char mtext[1]; /* message text */
};
int main(int argc,char* argv[])
{
char dir[] = "svmq";//源程序目录下的文件
int msgid;
key_t key;
key = ftok(dir,0);
if(key == -1)
{
printf("ftok failedn");
return -1;
}
msgid = msgget(key,IPC_CREAT|0666);
if(msgid == -1)
{
printf("message queue create failed!n");
return -1;
}
struct msgbuf msx;
int i = 0;
while(i