当前位置: 技术问答>linux和unix
Linux系统编程求助:消息队列
来源: 互联网 发布时间:2016-07-31
本文导语: 求助高手帮做下这题: 题目: 利用消息队列实现无亲缘的多进程间通信。 进程A向消息队列中写入10000以内的偶数。 进程B向消息队列中写入10000以内能被3整除的数。 进程C通过消息队列接收A进程所发的数据,并将其...
求助高手帮做下这题:
题目:
利用消息队列实现无亲缘的多进程间通信。
进程A向消息队列中写入10000以内的偶数。
进程B向消息队列中写入10000以内能被3整除的数。
进程C通过消息队列接收A进程所发的数据,并将其保存到test.dat.v1文件中。
进程D通过消息队列接收B进程所发的数据,并将其在屏幕上每行10个进行显示。
注意:
1.所有进程的通信均通过同一个消息队列,即程序中只能用一个消息队列完成通信。
2.注意所有进程之间的同步互斥。
题目:
利用消息队列实现无亲缘的多进程间通信。
进程A向消息队列中写入10000以内的偶数。
进程B向消息队列中写入10000以内能被3整除的数。
进程C通过消息队列接收A进程所发的数据,并将其保存到test.dat.v1文件中。
进程D通过消息队列接收B进程所发的数据,并将其在屏幕上每行10个进行显示。
注意:
1.所有进程的通信均通过同一个消息队列,即程序中只能用一个消息队列完成通信。
2.注意所有进程之间的同步互斥。
|
ac的给你那个通许了
bd的给你
详细说明还是见他那个帖子
b进程
bd的给你
详细说明还是见他那个帖子
b进程
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define KEY_PATH "/tmp"
key_t key;
int msgid;
typedef struct
{
long mtype;
char mtext[100];
}msg_buf;
union semun
{
int val;
};
int main()
{
int pid;
int semid;
key_t key;
int msgid;
struct sembuf sem;
union semun arg;
unsigned int i=0;
msg_buf buf;
buf.mtype=100;
if((key=ftok(KEY_PATH,'a'))