- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
匿名管道通信文档汇编
韶关学院课程设计说明书学生信息单位计算机学院专业计算机科学与技术班级14计科一班姓名薛明春颜仁海学号1411501102914115011030课程设计信息 课程名称 计算机操作系统课程设计题目 利用匿名管道实现进程间的通信课程设计时间小组情况指导教师批改情况成绩评阅教师批改时间年月日 2015 - 2016 学年第二学期 目录一.课程设计内容与目的3二.背景知识3三.系统环境4 四.总体设计5 4.1.程序设计组成框图5 4.2流程图5五.详细设计6 5.1父进程实现6 5.2子进程实现.......................................................................................................10六.调试与测试..........................................................................................................12七.问题及心得体会..................................................................................................14八.参考文献..............................................................................................................15一:设计内容与目的oStudio?匿名管道是一种未命名的、单向管道。通常用来在父进程和子进程之间传输数据。匿名管道总是本地的,不能在网络之间传递数据。本课程设计的目的是在windows环境下,利用匿名管道实现两个本地进程之间的通信。二.背景知识管道通信(CommunicationPipeline)即发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者利用管道进行通信。匿名管道是一种进程间的通讯方式,是相对于命名管道的概念提出的。命名管道可用于任意两个进程间的通讯。匿名管道仅可用于本地进程,并且必须是父进程与子进程间的通讯。它的优点是运行速度快,系统消耗小。缺点就是以上的限制条件啦。在本地机器上可以使用匿名管道来实现父进程和子进程之间的通信,这里需要注意两点,第一就是在本地机器上,这是因为匿名管道不支持跨网络之间的两个进程之间的通信,第二就是实现的是父进程和子进程之间的通信,而不是任意的两个进程。匿名管道主要用于本地父进程和子进程之间的通信。在父进程中,首先是要创建一个匿名管道,在创建匿名管道成功后,可以获取这个匿名管道的读句柄和写句柄,然后父进程就可以向这个匿名管道中写入数据和从匿名管道中读取数据了;但是如果要实现的是父子进程通信的话,那么还必须在父进程中创建一个子进程;同时,这个子进程必须能够继承和使用父进程的一些公开的句柄,因为在子进程中必须要使用父进程创建的匿名管道的读写句柄,通过这个匿名管道才能实现父子进程的通信,所以必须继承父进程的公开句柄。三:系统环境1.1硬件环境Intel(R)Core?2 Duo CPU E7500 @2.93GHz 2.00GB内存1.2软件环境Microsoft Windows XP Professional 版本2002 Service Pack 3Microsoft Visual Studio2010Microsoft visual c++6.0四.总体设计4.1程序设计组成框图4.2流程图五.详细设计5.1父进程的实现5.1.1添加两个私有变量? HANDLE hWrite;?? HANDLE hRead;5.1.2创建匿名管道SECURITY_ATTRIBUTES sa;sa.bInheritHandle=TRUE;sa.lpSecurityDescriptor=NULL;sa.nLength=sizeof(SECURITY_ATTRIBUTES);if(!CreatePipe(hRead,hWrite,sa,0)){printf(创建匿名管道失败!\n);return 0;}else printf(成功创建匿名管道!\n);5.1.3匿名管道的写入操作void WriteMsg(){char buf[100];printf(please input your information:\n);scanf(%s,buf);DWORD dwWrite;i
文档评论(0)