gpt4 book ai didi

c - 写入另一个程序的标准输入/从 c 中另一个程序的标准输出读取

转载 作者:行者123 更新时间:2023-12-03 21:53:38 27 4
gpt4 key购买 nike

这是一个家庭作业问题。我有 3 个程序 A、B 和 C,它们不是父/子进程,而是单独的程序。 B 必须向 A 的 stdin 写入一条消息(“Hello”)并从 C 的 stdout 读取另一条消息(“Hello”)。我应该使用哪个概念来实现它?我环顾四周,但找不到合适的东西。我想我应该使用 FIFO,但我无法重定向管道。我可以将 dup2 与 FIFO 一起使用吗?如果是,如何?这不是家庭作业本身,它只是它应该工作的方式。然后我会在上面实现其他的东西。 (我可以发布我的 fifo 基本代码,如果是这样,现在不要这样做,因为我不确定)

最佳答案

如果我误解了这个问题,请告诉我。

假设您创建程序 A , BC .以编程方式,您可以使用 man 1 mkfifo man 3 mkfifo , 创建命名管道。

那么你的每一个进程都会 open(2) 他们并使用 dup2(2) 根据他们的需要。

例如,程序 A可以重定向其 stdout像这样:

int fifo = open("fifo_1", O_WRONLY);
dup2(fifo, 1);

或程序 B可以重定向其 stdinstdout像这样:
int fifo_in = open("fifo_1", O_RDONLY);
int fifo_out = open("fifo_2", O_WRONLY);

dup2(fifo_in, 0);
dup2(fifo_out, 1);

或者任何你需要的东西。

关于c - 写入另一个程序的标准输入/从 c 中另一个程序的标准输出读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25331669/

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