- 15
- 0
- 约1.32万字
- 约 17页
- 2017-10-03 发布于重庆
- 举报
第四次实验 进程的管道及消息通信
甘肃政法学院
本科生实验报告
(四)
姓名:杨万
学院:计算机科学
专业:计算机科学与技术
班级:2009级计本
实验课程名称:操作系统实验
实验日期:2012年6月8 日
指导教师及职称:何珍祥
实验成绩:
开课时间:2011-2012学年 第二学期
甘肃政法学院实验管理中心印制
实验题目 ?进程的管道及消息通信 否 姓名 杨万 班级 2009级计本 学 号 200981010142 一、实验目的 熟悉UNIX和linux操作系统进程通信的系统调用。
理解和掌握UNIX和LINUX进程通信系统的调用的功能,给出了进程通讯实现机制中的使用的系统调用命令的格式和如何利用系统调用命令进行进程通信编程,通过学习,提高对进程之间可通过系统的编程能力。 二.实验环境 操作系统Windows XP
2.装有虚拟机Linux的系统 三、实验内容与步骤 一.管道通信机制
通过使用管道实现两个或多个进程之间的通信。所谓管道,就是能将一个进程的标准输出与另一个进程的标准输入联系在一起,进行通信的一种方法。同组进程之间可用无名管道任意通信,而不同组进程之间可通过有名管道进行通信。
无名管道的通信
创建无名管道的格式
#includesys/types.h
#includectype.h
#includeunistd.h
int pipe(int filedes[2]);
真确返回:0,错误返回:-1。无名管道pipe()的使用
例子:使用无名管道pipe(),进行父子进程之间的通信。源代码如下:
#includesys/types.h
#includectype.h
#includeunistd.h
int pipe(int filedes[2]);
char parent[]=A message to pipecommunication.\n;
main()
{
int pid,chan1[2];
char buf[100];
pipe(chan1);
pid=fork();
if(pid0)
{
printf(to create child error\n);
exit(1);
}
if(pid0)
{
close(chan1[0]);
printf(parent process sends a message to child.\n);
write(chan1[1],parent,sizeof(parent));
close(chan1[1]);
printf(parent process waits the child to terminate\n);
wait(0);
printf(parent process terminate\n);
}
else
{
close(chan1[1]);
read(chan1[0],buf,100);
printf(The message read by child process from parent is :%s.\n,buf);
close(chan1[0]);
printf(child process terminates\n);
}
}
以命令行为参数的管道通信
(1)命令格式
#includestdio.h
#includesys/types.h
#includectype.h
FILE popen(const char cmdstring,const char type);
真确返回:文件结构的指针;错误返回:空指针。
Int pclose(FILE *fp);
真确返回:cmdstring文件结构的指针;错误返回:-1。
打开一个以命令行为参数的管理文件,完成进程之间的通信进程
例子:以命令行为参数的管理文件的示例。
假设有一个的可执行程序chcase,从标准输出设备读字符,将小写字母转换成大写字母并进行输出。
主程序使用popen创建管道,实现将某文件中的字母转换成大写字母。其中的文本文件名作为参数传进来。源程序如下:
#includesys/wait.h
#includestdio.h
#define MAXLINE 100
int main(int argc,char *argv[])
{
char line[MAXLINE];
FILE *fpin,*fpout;
if(argc!=2)
{
您可能关注的文档
- 知识密集型企业的低成本竞争优势.doc
- 矩形围堰拼装下水下沉作业指导书(先桩后堰).doc
- 矩形截面梁柱优化.doc
- 矩量法求解带电平行板单位长度电容.doc
- 矩阵乘法是一种高效的算法可以把一些一维递推优化到log.doc
- 矩阵间合同等价相似的联系与区别.doc
- 短信网关在短信信息服务中的作用.doc
- 短小芽孢杆菌漆酶.doc
- 短肢剪力墙实验方案.doc
- 短路电流与归算阻抗计算.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 北师大版三年级下册数学全册教学设计(配2026年春改版教材).docx
- (2026年)跌倒坠床护理综合指南PPT课件.pptx VIP
- 工程设计应急响应方案(3篇).docx VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- ntvf调试资料解读.doc VIP
- 电影《色.戒》的叙事伦理.doc VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 佳能EOS1500D基本使用说明书说明书.pdf VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 渣打银行(香港)有限公司.PDF VIP
原创力文档

文档评论(0)