gpt4 book ai didi

c - 是否可以将 stdout 作为 stdin 重定向到同一个程序?

转载 作者:太空狗 更新时间:2023-10-29 15:35:50 27 4
gpt4 key购买 nike

我正在编写一个过滤器,并且正在探索一种编写程序的方法。我想知道这是否可能:从 stdin 中的输入写入 stdout,但重定向此 stdout,以便程序再次读取生成的 stdout,就好像它是 stdin 一样,从而重新处理数据。我不希望将数据存储在一个巨大的数组中——我希望只使用流来做到这一点。这可能吗? (如果没有,那也没关系。)另外,请注意:我希望仅在单个 C 代码源文件中执行此操作。

最佳答案

是的,您可以创建一个 pipe在任何 POSIX 系统中给自己。

但是"There ain't no such thing as a free lunch" .如果你需要存储数据,它必须去某个地方。管道由操作系统管理的缓冲区支持。

您可以从字面上将管道的末端设置为返回 stdinstdout (如 Joachim 的回答),但我建议不要这样做,因为它会覆盖程序的常用输入和输出 channel 。 (C 和任何 POSIX 服务都不会“发送”流,因此用户可以看到它并在程序中回显它。)

关于c - 是否可以将 stdout 作为 stdin 重定向到同一个程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21252452/

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