- 15
- 0
- 约1.37万字
- 约 16页
- 2017-04-23 发布于贵州
- 举报
西安电子科技大学《操作系统原理》实验报告
西安电子科技大学
计算机学院
实
验
报
告
题目: 进程通信
班级:
姓名:
学号:
内容摘要:
通信进程个数2个采用的通信方式匿名管道实验内容补充说明无
一、分析和设计
1. 理论分析
匿名管道主要用在本地父子进程之间的通信,首先由父进程创建一个匿名管道,在创建成功后,便可以获得匿名管道的读写句柄,然后父进程就可以向匿名管道中写入和读取数据。要实现父子间通信,就要父进程中创建一个子进程,子进程可以继承和使用父进程的一些句柄。在创建子进程的过程中,必须将子进程的标准输入句柄设置为父进程的读管道的句柄,子进程的标准输出句柄设置为父进程的写管道的句柄,这样,父子进程之间就可以通信了。
2. 总体设计
管道一
先由父进程创建一个匿名管道,再由父进程获得读写句柄,构建读写的方式;由父进程创建子进程,实现父进程一样的通信功能。
父进程
子进程
管道二
二、详细实现
1、父进程的实现
1)消息以及成员函数和成员变量的声明
public:
afx_msg void OnBnClickedBtnCreatePipe(); //创建匿名管道
afx_msg void OnBnClickedBtnWritePipe(); //写匿名管道
afx_msg void OnBnClickedBtnReadPipe(); //读匿名管道
void ParentReadPipe(void); //定义父进程读匿名管道的成员函数
void ParentWritePipe(void); //定义父进程写匿名管道的成员函数
void CreateSecurityAttributes(PSECURITY_ATTRIBUTES pSa); //创建 SECURITY_ATTRIBUTES 结构的成员函数
void CreateStartUpInfo(LPSTARTUPINFO lpStartUpInfo); //创建 STARTUPINFO 结构的成员函数
void CreateNoNamedPipe(void); //创建匿名管道的成员函数
//分别代表要从匿名管道中读的数据和要写到匿名管道中的数据
CString m_CStrReadPipe;
CString m_CStrWritePipe;
//保存创建匿名管道后所得到的对匿名管道的读写句柄
HANDLE hPipeRead;
HANDLE hPipeWrite;
//保证匿名管道只创建一次
BOOL m_PipeIsCreated;
2)消息处理函数
//创建匿名管道按钮的消息处理函数
void CNoNamedPipeParentDlg::OnBnClickedBtnCreatePipe()
{
if(m_PipeIsCreated == FALSE)
{
this-CreateNoNamedPipe();
}
}
//写入数据到匿名管道中按钮的消息处理函数
void CNoNamedPipeParentDlg::OnBnClickedBtnWritePipe()
{
this-ParentWritePipe();
}
//从匿名管道中读取数据按钮的消息处理函数
void CNoNamedPipeParentDlg::OnBnClickedBtnReadPipe()
{
this-ParentReadPipe();
}
//接收数据
void CNoNamedPipeParentDlg::ParentReadPipe(void);
//发送数据
void CNoNamedPipeParentDlg::ParentWritePipe(void)
//创建 SECURITY_ATTRIBUTES 结构
void CNoNamedPipeParentDlg::CreateSecurityAttributes(PSECURITY_ATTRIBUTES pSa)
{
//这里必须将 bInheritHandle 设置为 TRUE,
//从而使得子进程可以继承父进程创建的匿名管道的句柄
pSa-bInheritHandle = TRUE;
pSa-lpSecurityDescriptor = NULL;
pSa-nLength = sizeo
您可能关注的文档
- 西安科技大学高校毕业生就业现状与对策分析西安科技大学高校毕业生就业现状与对策分析.doc
- 西安绿森环保科技有限公司西安绿森环保科技有限公司.doc
- 西安翻译学院本科毕业论文(设计)写作技术规范西安翻译学院本科毕业论文(设计)写作技术规范.doc
- 西安职业技术学院 09动漫毕业设计指导书西安职业技术学院 09动漫毕业设计指导书.doc
- 西安装修公司排名大全西安装修公司排名大全.doc
- 西安邮电大学2013年硕士研究生调剂及复试公告西安邮电大学2013年硕士研究生调剂及复试公告.doc
- 西安邮电学院基础课设置意见说明西安邮电学院基础课设置意见说明.doc
- 西安重装蒲白煤矿机械有限公司十二五发展战略及规划西安重装蒲白煤矿机械有限公司十二五发展战略及规划.doc
- 西工大16秋《网页设计与制作》在线作业西工大16秋《网页设计与制作》在线作业.doc
- 西工大《结构力学(续)大作业A卷》17年4月作业考核资料西工大《结构力学(续)大作业A卷》17年4月作业考核资料.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)