免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8722 | 回复: 8
打印 上一主题 下一主题

[新手入门] 请问管道和消息队列有什么不同 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-23 09:28 |只看该作者 |倒序浏览
请问管道和消息队列有什么不同,什么时候应该用管道,什么时候用消息对列

论坛徽章:
0
2 [报告]
发表于 2004-02-23 16:01 |只看该作者

请问管道和消息队列有什么不同

请关心此问题得朋友,帮忙顶一下吧,多谢了

论坛徽章:
0
3 [报告]
发表于 2004-02-23 16:21 |只看该作者

请问管道和消息队列有什么不同

怎么,光看不说话啊,灌点水也行啊

论坛徽章:
0
4 [报告]
发表于 2004-02-23 16:36 |只看该作者

请问管道和消息队列有什么不同

这个问题其实真的很难回答,你可以使这用一下就知道它们的区别了。
管道和消息对列都是“队列”,但是,消息队列并不一定先进先出,一般消息队列的操作可以有选择地读出想要的消息,而管道则不同,一端送进的,另一端原样送出。
管道有命名管道,也有匿名管道,命名管道像文件一样存在,而匿名管道比如ls | more,这就用到了匿名管道等等。
消息队列是IPC机制中的一种,是有一定结构的,存在于内存中的,有核心维护的一片存储区域。
其它的区别多多,上面说的也不一定对,你可以参考一些操作系统原理的资料。
仅此建议

论坛徽章:
0
5 [报告]
发表于 2004-02-23 17:44 |只看该作者

请问管道和消息队列有什么不同

有名消息队列必须要Open(readonly),才能open(writeonly)吗?
必须成对出现吗???

论坛徽章:
0
6 [报告]
发表于 2004-02-24 09:14 |只看该作者

请问管道和消息队列有什么不同

我对这个一窍不通,学习。。。。

论坛徽章:
0
7 [报告]
发表于 2004-02-24 09:20 |只看该作者

请问管道和消息队列有什么不同

还有没有大侠赐教啊

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2004-02-24 09:45 |只看该作者

请问管道和消息队列有什么不同

管道通信(PIPE)

管道通信方式的中间介质是文件,通常称这种文件为管道文件。两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程。写进程通过写端(发送端)往管道文件中写入信息;读进程通过读端(接收端)从管道文件中读取信息。两个进程协调不断地进行写、读,便会构成双方通过管道传递信息的流水线。

利用系统调用PIPE()创建一个无名管道文件,通常称为无名管道或PIPE;利用系统调用MKNOD()创建一个有名管道文件,通常称为有名管道或FIFO。

PIPE是一种非永久性的管道通信机构,当它访问的进程全部终止时,它也将随之被撤消;它也不能用于不同族系的进程之间的通信。而FIFO是一种永久的管道通信机构,它可以弥补PIPE的不足。

管道文件被创建后,便可对它进行读写操作,通过系统调用WRITE()和READ()来实现。通信完毕后,可将管道文件关闭,用CLOSE()来实现。

消息通信(MESSAGE)

消息通信方式以消息缓冲区为中间介质,通信双方的发送和接收操作均以消息为单位。在存储器中,消息缓冲区被组织成队列,通常称之为消息队列。

创建消息队列用系统调用MSGGET()来实现,这一步工作也被称为消息队列的初始化。在进行通信时,消息队列的发送和接收分别用系统调用MSGSND()和MSGRCV()来实现。在需要改变队列的使用权限及其它一些特性时,用MSGCTL()来实现。

论坛徽章:
0
9 [报告]
发表于 2004-02-24 10:04 |只看该作者

请问管道和消息队列有什么不同

mknod(filename, S_IFIFO|0666, 0);
fifo = open(filename, O_RDONLY);
用这种方式打开的是FIFO的吗?他的生命周期是多长
是随着open(filename, O_RDONLY)进程的消失而消失吗?

我写了一个实验,发现read的进程数必须>;=1,write才能写入
当read的进程数=0时,管道文件的大小=0,所有的write进程停止

请问这是FIFO的特性马
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP