课程设计(实训)报告书.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
九 江 学 院 信 息 科 学 与 技 术 学 院 《嵌入式应用开发》课程设计 报告书 题 目: 有名管道通信 专 业 : 计算机应用技术 班 级: B1232 姓 名: 邓亲超 学 号: 03 同组人员:谢辉、张想、周 政拉、毛扎西 指导 师:周 波 设计时间:2014 年 10 月 27 日~2014 年 11 月 07 日 目 录 2 1.实训计划 2014.10.27~2014.10.28 选择实验任务,明确项目需求,查阅参考书籍 2014.10.29~2014.10.31 业务逻辑的分析和确定 2014.11.03~2014.11.04 项目分析和代码实现 2014.11.05~2014.11.07 代码实现,项目演示、验收、评分 2. 问题描述 1.通过编写有名管道多路通信实验,进一步掌握管道的创建、读写等操 作,同时复习使用 select ()函数实现管道的通信。 2.采用管道函数创建有名管道(并不是在控制台下输入命令),而且使用 select ()函数替代poll ()函数实现多路复用(使用 select ()函数式处于以演示 为目的)。 1 3. 问题分析 用 select ()函数创建两个有名管道,并对相关文件描述符做相应操作。两 个有名管道中输入内容可以再终端显示出来,所以有名管道用只读非阻塞 的方式打开,并且需要一个标准输入来判定,输入某个字符时可以立即结束 程序。并且设定一个倒计时,超时后同样立即结束程序。循环测试有效的文 件描述符是否存在,若不存在也将立即结束程序。 2 4.业务逻辑 实验先使用 mkfifo()函数创建两个有名管道,来获得 3 个文件描述符,其中 有两个有名管道和一个标准输入。然后以非阻塞的方式打开两个管道文件,取 出两个文件中描述符较大者,然后初始化读集 inset,并在读文件描述符集中加入 相应的描述集。判断有效的文件描述符是否存在,并调用 select ()函数对文件描 述符做相应操作,用 tmp_inset=inset 来重置读文件描述符集, 这时在两个管道 的窗口输入内容,都会显示在主程序上面,在终端输入“q”或“Q”时,将结束程序 运行。 3 5.程序模块设计 源代码 : /*创建两个有名管道*/ if (access(FIFO1, F_OK) == -1) { if ((mkfifo(FIFO1, 0666) 0) (errno != EEXIST)) { printf(Cannot create fifo file\n); exit(1); } } if (access(FIFO2, F_OK) == -1) { if ((mkfifo(FIFO2, 0666) 0) (errno != EEXIST)) { printf(Cannot create fifo file\n); exit(1); } } /* 以只读非阻塞方式打开两个管道文件 */ 4 if((fds[1] = open (FIFO1, O_RDONLY|O_NONBLOCK)) 0) { printf(Open in1 error\n);

文档评论(0)

汪汪队 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档