gpt4 book ai didi

c - 流水线 - 在两个程序之间发送字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:31 27 4
gpt4 key购买 nike

我一直在阅读有关流水线的内容,也阅读了这个主题 - How to send a simple string between two programs using pipes?

我阅读了@jschmier 的回答(第一个)- 我想知道它实际上是如何工作的?程序 writer.c 和 reader.c 必须同时运行吗?如果他们这样做了,reader.c 如何“通知”writer.c 已经发送了一个字符串?

这些问题大多是理论性的,但我真的很想知道流水线是如何工作的。谢谢你的提醒。

最佳答案

Do the programs writer.c and reader.c have to run simultaneously ?

他们有。

If they does , how reader.c is "informed" that writer.c has sent a string?

两个程序都打开一个特殊的管道设备:"/tmp/myfifo。一个打开用于读取,另一个用于写入。内核负责在它们之间传输数据.

请注意,管道实际上需要并发读取和写入,因为内部缓冲区非常小,并且在没有一个事件的情况下会阻塞另一个事件。

它是如何工作的:如果为了简化,数据写入管道从进程空间进入内核并进入阅读器进程。通常开发人员尝试使用非阻塞调用,因为在一个进程繁忙的情况下阻塞程序执行是 Not Acceptable 。

有关管道的更多信息,您可以阅读有关该主题的 Linux 文档:http://linux.die.net/man/7/pipe

关于c - 流水线 - 在两个程序之间发送字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065014/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com