首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
自考
编写利用消息机构实现输入进程和输出进程同步的C程序。输入进程从标准输入读入一个字符串,并将该字符串发给输出进程;输出进程向标准输出中输出字符串。通信双方通过关键字为MSGKEY的消息队列进行通信,两个程序使用相同的一组头文件,假设头文件的说明已放在文件ms
编写利用消息机构实现输入进程和输出进程同步的C程序。输入进程从标准输入读入一个字符串,并将该字符串发给输出进程;输出进程向标准输出中输出字符串。通信双方通过关键字为MSGKEY的消息队列进行通信,两个程序使用相同的一组头文件,假设头文件的说明已放在文件ms
admin
2016-05-12
54
问题
编写利用消息机构实现输入进程和输出进程同步的C程序。输入进程从标准输入读入一个字符串,并将该字符串发给输出进程;输出进程向标准输出中输出字符串。通信双方通过关键字为MSGKEY的消息队列进行通信,两个程序使用相同的一组头文件,假设头文件的说明已放在文件msgcom.h中。
选项
答案
程序清单24-7:msg.C /*msgcom.h*/ #include<errno.h> #include<sys/types.h> #include<sys/ipc.h> #include<sys/msg.h> #define MSGKEY 12345678 struct msgtype{ long mtype; charstr[256]; }; /*输入进程*/ #include"msgcom.h" #include<stdio.h> #include<string.h> main() { struct msgtype buf; int qid,pid; void bzero(); if((qid=msgget(MSGKEY,IPC_CREAT|0666))==-1) return(-1); buf.mtype=getpid(); while(1){ bzero(buf.str,sizeof(buf.str)); printf("Input data:"); Scanf("%S",buf.str); msgsnd(qid,&buf,strlen(buf.str)+1,0); } } /*输出进程*/ #include"msgcom.h" #include<stdio.h> main() { void bzero(); struct msgtype buf; int qid; if((qid=msgget(MSGKEY,IPC_CREAT|0666))==-1) return(-1); while(1){ msgrcv(qid,&buf,512,0,MSG_NOERROR);//接收消息队列最早的消息 printf("Receive a string from process%d:%S\n",buf.mtype,buf.str); bzero(buf.str,sizeof(buf.str)); } } 由于消息队列本身就具有缓冲和队列的同步机制,故发送进程只需不断发数据,接收进程只管不断收数据就可以了。这比用信号量实现计算进程和打印进程的同步要简单。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/DSNx777K
本试题收录于:
操作系统题库理工类分类
0
操作系统
理工类
相关试题推荐
写出图中对应的助记符指令程序和布尔代数方程表达式。
什么是顺序控制系统?分为哪几类?
下列关于风险分析方法的说法正确的是()
下列内容不属于我国《工程建设项目施工招标投标办法》中列举的投标人之间串通投标报价行为的是()
工程招标一般程序中的三个阶段不包括()
下列属于建筑工程技术经济分析需要经历步骤的是()
某流水施工组织成加快成倍节拍流水,施工段数为6,甲、乙、丙三个施工过程的流水节拍分别为1、2、3天,试计算流水工期。
下列选项中,招标人可以不必在资格预审文件或招标文件中载明()
在网络系统中部署防火墙,通常会使网络系统的部分功能被___________。
进程队列是如何组织的?
随机试题
在肺的生理功能中。与调节汗液排泄有关的是
肌肉松弛较完全的全麻药是:
鼻咽癌患者有舌下神经麻痹,表明肿瘤已侵至
口岸药品监督管理局负责药品的进口备案工作,下列属于其具体职责的是
下列公式错误的是______。
项目启动会议的主要内容不包括()。
人口按性别分为男、女属于()计量尺度。
企业发行的可转换公司债券,应当在初始确认时将其包含的负债成份和权益成份进行分析,将负债成份确认为应付债券,将权益成份确认为“资本公积──股本溢价”。()
Readthearticlebelowaboutenhancede-books’influenceonliterature,andthequestionsontheoppositepage.Foreachque
ThomasMalthuspublishedhisEssayonthePrincipleofPopulationalmost200yearsago.Eversincethen,forecastershavebeing
最新回复
(
0
)