Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1869742
  • 博文数量: 217
  • 博客积分: 4362
  • 博客等级: 上校
  • 技术积分: 4180
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-20 09:31
文章分类

全部博文(217)

文章存档

2017年(1)

2015年(2)

2014年(2)

2013年(6)

2012年(42)

2011年(119)

2010年(28)

2009年(17)

分类: LINUX

2012-05-27 16:30:51

今天整理资料的时候,发现去年的这个时候,刚来3+1班时,给大家出的题目,呵呵。题目如下:


管道通信题目安排

针对管道通信,我找了三个题目,题目1和题目2是必做,题目3是选做。星期四晚上的讨论我们也主要是围绕题目1和题目2展开的,所以大家提前做好准备,每个人独立完成,如果有疑问的话,可以给新闻组发邮件或者在qq群里面进行讨论。还有,大家一定要把自己所学的知识总结到自己的技术博客里面,坚持写博客,每周的话,我会安排人检查每一个人的博客^_^

星期四晚上的讲座,如果有同学想自己来讲,可以积极地报名,具体联系郭仲杰,欢迎大家积极报名。

说明:大家在完成这些题目的时候,目标要明确,不要为了完成题目而完成题目,要在原理清楚的情况下,来完成这些题目,还要多思考。

 

题目1通过管道进行的父/子进程通信

涉及主要知识点:未命名管道

题目描述:通过一个管道将数据从父进程发送到子进程,然后在子进程当中显示,实现半双工通信。

扩展:使用两个个管道进程全双工通信:父进程从管道接收数据,然后将数据显示,再给子进程发送一个数据;子进程从管道接收数据,然后将数据显示,再给父进程发送一个数据。

再扩展:……

 

题目2通过管道模拟shell命令:cat file | sort

涉及主要知识点:未命名管道、重定向

题目描述:具体模拟一个shell命令:cat file | sort。具体的一些提示在后面。

提示:首先在当前目录下创建一个名为”file”的文件,里面的内容输入如下:

99

123

892

12

1342

89

32

76

通过执行”cat file | sort”后的结果如下:

12

123

1342

32

76

89

892

99

现在我们需要通过一个管道,将”cat file”的结果通过管道送给命令”sort”。其中,将”cat file”命令的输出结果重定向到”sort”命令的输入是由包含在命令中的管道标志”|”来完成的。为了在程序当中实现类似的功能,需要用dup()或者dup2()系统调用将标准输入和标准输出联系起来,具体的系统调用使用可以通过man手册来查,或者查阅群共享里面的函数手册。另外,这里的”cat file””sort”命令不是自己来完成,而是通过调用exec函数族来实现的,具体的exec()函数族的使用不再啰嗦。

扩展:实现两个管道

在扩展:……

 

*题目3命名管道(FIFO)实现客户-服务器关系。、

题目描述:这个题目是大家根据自己的情况,结合自己的想法,实现一个客户、服务器的简单模型,这里可能会涉及到前面的未命名管道和这里的命名管道。自由发挥……

 

阅读(1434) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~