在 Linux(2.6.35-22-generic)中,man pipe
指出
pipeline() 创建一个管道,一个可用于进程间通信的单向数据通道。”
在 FreeBSD (6.3-RELEASE-p5) 中,man pipe
指出
pipeline() 系统调用创建一个管道,它是一个允许双向数据流的对象,并分配一对文件描述符。”
一种是单向的,另一种是双向的。我希望这不是一个愚蠢的问题,但是哪种方法是执行此操作的标准方法?它们都符合 POSIX 标准吗?
为了明确我的意图,我在考试中失去了一些分数,因为我相信 pipeline() 是一种方法,并且正在寻找一些弹药来恢复任何分数;p
我一开始是作为对格雷格答案的评论开始的,但我发现它更接近地回答了你的具体问题:
pipe()
s POSIX 标准中的文档 http://pubs.opengroup.org/onlinepubs/9699919799/functions/pipe.html明确指出所讨论的行为是“未指定的”——也就是说,pipe()
不要求是双向的,但并不禁止。 Linux 是单向的,FreeBSD 是双向的。两者都是兼容的,其中一种只是实现了不需要的额外行为(但不会破坏为在兼容系统上运行而构建的应用程序)。
可以将数据写入文件
描述符 fildes[1] 并从
文件描述符fildes[0]。继续阅读
文件描述符 fildes[0] 应
访问写入文件的数据
描述符 fildes[1] 上
先进先出的基础上。这是
未指定 fildes[0] 是否也是
是否开放写入以及是否 fildes[1]
也开放供阅读。
我不会指望拿回积分(尽管你应该这样做)。教授们倾向于忽视现实世界,而倾向于他们认为正确的事物。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)