gpt4 book ai didi

c - 写入标准输入以进行自制管道

转载 作者:太空宇宙 更新时间:2023-11-04 07:38:01 26 4
gpt4 key购买 nike

我正在编写一个模仿 Unix 管道系统的小程序(例如“cat file1.txt | grep keyword | wc”)。

我可以设法使用 dup2() 和管道从 stdout 收集程序的输出,但我不知道如何将它提供给下一个进程。

一开始觉得很简单,就是这样:

write(stdin, buffer, buffer_size);

但这对我不起作用。那里有很多关于 stdout 的信息,但几乎没有关于 stdin 的信息。

任何帮助都会很棒。

最佳答案

据我了解你的问题,你的意思是你想执行命令cat file1.txt | grep 关键字 | wc 从你的程序中。

您可以通过使用 pipe() 在程序之间设置一些管道来做到这一点。然后为每个要执行的程序 fork 几次。在不同的分支进程中,将 stdinstdout 设置为创建的管道的正确结尾。一切设置完成后,您可以调用 exec() 来执行不同的程序,例如 catgrepwc使用正确的参数。

您的程序不仅可以在 wc 程序之后从管道中读取以获得最终输出。

关于c - 写入标准输入以进行自制管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293814/

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