中易网

Linux程序设计:关于消息队列题目:编写两程序,程序1从消息队列接收消息,程序2则发送消息

答案:1  悬赏:60  
解决时间 2021-11-29 02:50
题目:编写两程序,程序1从消息队列接收消息,程序2则发送消息(假设发送的消息是My name is ---)。
要求:程序,(附注释)调试经过,结果
谢谢。
回复:stesen05
我这里没有运行环境,后天就要交了
求注释调试经过运行结果以及截图 稍微写点
可不可以运行一下截个图发到我邮箱啊
[email protected]谢谢了
最佳答案
我的作业,你凑合着用吧
//msgq_send.c
#include <stdio.h>
#include <string.h>
#include <sys/msg.h>

#define MAXSIZE 256

int main(int argc, char *argv[])
{
if (argc < 2)
{
printf("Error args\n");
return -1;
}

int msgid;

msgid = msgget((key_t)2000, IPC_CREAT | 0644);
if (msgid == -1)
{
printf("msgget error\n");
return -1;
}

if (msgsnd(msgid, (void *)argv[1], MAXSIZE, 0) == -1)
{
printf("msgsnd error\n");
return -1;
}

return 0;
}

//msgq_recv.c
#include <stdio.h>
#include <string.h>
#include <sys/msg.h>

#define MAXSIZE 256

int main(void)
{
int msgid;
int msgsize;
char buff[MAXSIZE];

msgid = msgget((key_t)2000, IPC_CREAT | 0644);
if (msgid == -1)
{
printf("msgget error\n");
return -1;
}

msgsize = msgrcv(msgid, (void *)&buff, MAXSIZE, 0, 0);
if (msgsize == -1)
{
printf("msgrcv error\n");
return -1;
}

printf("%s\n", buff);

return 0;
}

//Makefile
TARGET := msgq_send msgq_recv
CC := gcc
CFLAGS := -Wall -g

all: msgq_send msgq_recv

msgq_send: msgq_send.o
$(CC) $(CFLAGS) $^ -o $@

msgq_recv: msgq_recv.o
$(CC) $(CFLAGS) $^ -o $@

clean:
rm -fr *.o $(TARGET)

.PHONY :clean
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
娃娃鱼有毒吗?
1992年11月初3下午15点20分出生是什么时辰
中介公司招银行客服面试通过交名额费是不是骗
买针线盒的是什么群体
背离是什么意思说明白点谢谢
wca英雄联盟完了的音乐叫什么
英杰才人是什么意思
不想和父母生活在一起了,我已经19岁了,父母
新人想做蔬菜配送没有资源怎么起步?
怎么做鳄鱼肉会好吃啊!
前束是什么意思
被野猫咬伤后要打免疫球蛋白吗?
描写生态的词要五个词
我男票过生日,要写说说,怎么写
现代完成时做主语,从句用什么时态?
推荐资讯
欧式实木家具价格一般是多少?
掩埋的意思是什么啊?请解释下!
明光市嘉山集中心小学怎么去啊,有事要去办理
日本电器都有那些牌子呢
攢玩的意思是什么?攢玩的释义是什么啊?
09年东风标致307三厢1.6升手动多少价位可以出
怎么解决脸部毛孔粗糙和长毛
阿监的意思是什么?阿监的释义是什么啊?
小孩子不吃饭怎么办?是什么原因呢?
顽傲的意思是什么啊?请解释下!
银座造型地址在哪,我要去那里办事
陈记特色米粉怎么去啊,有知道地址的么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?