unix环境IPC通信之消息队列,并使用多进程的实例
来源:互联网 发布:问答系统 知乎 编辑:程序博客网 时间:2024/06/11 21:08
/************************************************************************
* *
* 发送消息进程 *
* *
************************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
struct msgt
{
long msgtype;
char msgtext[1024];
};
int main()
{
int msqid;
int msg_type;
char str[256];
struct msgt msgs;
/* 创建消息队列 */
msqid = msgget((key_t) 1024, IPC_CREAT);
while(1)
{
printf("please input message type, 0 for quit!\n");
/* 获取消息类型 */
scanf("%d",&msg_type);
/* 如果用户输入的消息类型为0, 退出该循环 */
if(msg_type == 0)
break;
/* 获取消息数据 */
printf("please input message content !\n");
scanf("%s", str);
msgs.msgtype = msg_type;
strncpy(msgs.msgtext, str, 256);
/* 发送消息 */
msgsnd(msqid, &msgs, sizeof(struct msgt), 0);
}
/* 删除消息队列 */
msgctl(msqid, IPC_RMID, 0);
return 0;
}
/************************************************************************
**
*接收消息进程*
**
************************************************************************/
#include <stdio.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <unistd.h>struct msgt{long msgtype;char msgtext[1024];};int msqid = 0; // 消息队列的idvoid childprocess(){struct msgt msgs;while(1){
// 接收消息队列msgrcv(msqid, &msgs, sizeof(struct msgt), 0, 0);// 打印消息队列的数据printf("msg text : %s\n", msgs.msgtext);}
return;}int main(){int i;int cpid;/* 打开消息队列 */msqid = msgget((key_t)1024, IPC_CREAT);/* 创建3个子进程 */for(i=0; i<3; i++){
cpid = fork();if(cpid < 0)printf("creat child process error!\n");else if(cpid == 0)childprocess();
}
return 0;}
阅读全文
0 0
- unix环境IPC通信之消息队列,并使用多进程的实例
- Unix/Linux 进程间通信之消息队列应用实例
- 进程通信 IPC 之消息队列
- 进程间通信(IPC)之消息队列
- 多进程通信(IPC)--消息队列
- unix环境IPC通信之socket(三),tcp采用并发服务器编程实例,多进程方式
- Linux环境编程之IPC进程间通信(五):Posix消息队列1
- 笔记六:进程间的通信(IPC通信之消息队列)
- 进程间通信---IPC对象 之 消息队列
- 进程间通信IPC 主题一 之 消息队列
- IPC进程间通信主题之消息队列
- Linux — IPC进程通信之消息队列详解
- IPC之 - 使用微软消息队列实现C#进程间通信
- UNIX环境高级编程学习之第十五章进程间通信 - 通过消息队列实现进程间通信
- Linux C 进程间的IPC通信 之 消息队列(1)
- Linux C 进程间的IPC通信 之 消息队列(2)
- Linux进程间通信(IPC)编程实践(十二)Posix消息队列--基本API的使用
- 消息队列IPC---------用途:进程间通信
- jQuery动态创建html元素的常用方法汇总
- 输入一个正整数,输出如下图形
- Docker Error Invalid or corrupt jarfile .jar
- Openstack之控制节点系统及环境安装
- 使用Java创建JSON数据
- unix环境IPC通信之消息队列,并使用多进程的实例
- CSS浮动
- 基于Unity UGUI RawImage的网络头像功能实现方案
- 移位操作
- MYSQL 自定义函数(if else)
- 移动Web开发基础-meta锦集
- 理解矩阵
- vcomp140.dll缺失 OSError: [WinError 126] 找不到指定的模块。
- (C++)智能指针的模拟实现及使用