消息队列的读写
来源:互联网 发布:矩阵扰动分析 编辑:程序博客网 时间:2024/06/05 13:27
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
struct message
{
long int messagetype;
char text[BUFSIZ];
} messagebuf;
int x;
int y;
long int msg_to_receive = 0;
void* ReadThreadFunc(void* arg);
void* WriteThreadFunc(void* arg);
int main (int argc,char* argv[])
{
int tid;
x=msgget((key_t)1234,0666 |IPC_CREAT);
y=msgget((key_t)1235,0666 |IPC_CREAT);
if(x==-1)
{
printf("fail!\n");
exit(1);
}
if(y==-1)
{
printf("fail!\n");
exit(1);
}
if(pthread_create(&tid,NULL,WriteThreadFunc,NULL)!=0)
{
printf("Create Thread Error !\n");
exit(1);
}
if(pthread_create(&tid,NULL,ReadThreadFunc,NULL)!=0)
{
printf("Create Thread Error !\n");
exit(1);
}
while(1)
{}
return 0;
}
void* WriteThreadFunc(void* arg)
{
while(1)
{
/* printf("my message:");*/
fgets(messagebuf.text,BUFSIZ,stdin);
messagebuf.messagetype=1;
if(msgsnd(x,(void *)&messagebuf, BUFSIZ, 0)==-1)
{
printf("fail!\n");
exit(1);
}
printf ("\n");
if(strncmp(messagebuf.text,"end",3)==0)
break;
}
/* if(msgctl(y, IPC_RMID, 0)==-1)
{
printf("msgct(IPC_RMID) failed!\n");
exit(1);
}*/
}
void* ReadThreadFunc(void* arg)
{
while(1)
{
if(msgrcv(y,(void *)&messagebuf, BUFSIZ,msg_to_receive, 0)==-1)
{
printf("fail!\n");
exit(1);
}
printf("friend:%s\n", messagebuf.text);
}
}
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
struct message
{
long int messagetype;
char text[BUFSIZ];
} messagebuf;
int x;
int y;
long int msg_to_receive = 0;
void* ReadThreadFunc(void* arg);
void* WriteThreadFunc(void* arg);
int main (int argc,char* argv[])
{
int tid;
x=msgget((key_t)1234,0666 |IPC_CREAT);
y=msgget((key_t)1235,0666 |IPC_CREAT);
if(x==-1)
{
printf("fail!\n");
exit(1);
}
if(y==-1)
{
printf("fail!\n");
exit(1);
}
if(pthread_create(&tid,NULL,WriteThreadFunc,NULL)!=0)
{
printf("Create Thread Error !\n");
exit(1);
}
if(pthread_create(&tid,NULL,ReadThreadFunc,NULL)!=0)
{
printf("Create Thread Error !\n");
exit(1);
}
while(1)
{}
return 0;
}
void* WriteThreadFunc(void* arg)
{
while(1)
{
/* printf("my message:");*/
fgets(messagebuf.text,BUFSIZ,stdin);
messagebuf.messagetype=1;
if(msgsnd(x,(void *)&messagebuf, BUFSIZ, 0)==-1)
{
printf("fail!\n");
exit(1);
}
printf ("\n");
if(strncmp(messagebuf.text,"end",3)==0)
break;
}
/* if(msgctl(y, IPC_RMID, 0)==-1)
{
printf("msgct(IPC_RMID) failed!\n");
exit(1);
}*/
}
void* ReadThreadFunc(void* arg)
{
while(1)
{
if(msgrcv(y,(void *)&messagebuf, BUFSIZ,msg_to_receive, 0)==-1)
{
printf("fail!\n");
exit(1);
}
printf("friend:%s\n", messagebuf.text);
}
}
0 0
- 消息队列的读写
- 高效读写消息队列SafeQueue
- MSMQ 跨服务器读写队列的“消息队列系统的访问被拒绝”的解决方案
- MSMQ 跨服务器读写队列的“消息队列系统的访问被拒绝”的解决方案
- MSMQ 跨服务器读写队列的“消息队列系统的访问被拒绝”的解决方案
- Linux的消息队列
- 消息队列的接收
- 消息队列的设置
- 消息队列的使用
- 消息队列的通信
- 消息队列的考虑
- 消息队列的使用
- 消息队列 的理解
- 常用的消息队列
- redis的消息队列
- 消息队列的作用
- redis的消息队列
- redis 的消息队列
- Linux内核模块实例
- CocoaPods安装和使用教程
- iOS画图 上下文栈的使用
- ODC(Orthogonal Defect Classification)简介
- 《Java程序设计》第16周周四:GUI编程及文件对话框的使用~作业
- 消息队列的读写
- configure, Makefile.am, Makefile.in,Makefile之间的关系
- 限制app只能使用https连接,不能使用http连接
- system ():
- 3.7 百分比堆积柱形图
- C++拷贝构造函数
- OSG+VS2010+win7环境搭建
- android 测试单元 自动测试(没开工)
- Activemq几种基本通信方式总结