gpt4 book ai didi

c++ - 如何从另一个程序运行一个程序并通过 C 或 C++ 中的标准输入将数据传递给它?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:18 24 4
gpt4 key购买 nike

假设我有一个.exe,让我们说sum.exe。现在假设 sum.exe 的代码是

void main ()
{
int a,b;
scanf ("%d%d", &a, &b);
printf ("%d", a+b);
}

我想知道如何从另一个 c/c++ 程序运行这个程序并通过 stdin 传递输入,就像他们在像 ideone 这样的在线编译器站点中所做的那样,我在其中输入代码并在文本框中提供 stdin 数据和该数据被程序使用 scanf 或 cin 接受。另外,我想知道是否有任何方法可以从启动它的原始程序中读取该程序的输出。

最佳答案

在名称以 X 结尾的平台(即非 Windows)上的 C 中,关键组件是:

  1. pipe - 返回一对文件描述符,以便可以从另一个读取写入的内容。

  2. fork - 将进程 fork 为两个,两者继续运行相同的代码。

  3. dup2 - 重新编号文件描述符。有了它,您可以将管道的一端变成标准输入或标准输出。

  4. exec - 停止运行当前程序,开始运行同一进程中的另一个程序。

将它们全部组合起来,就可以得到你想要的。

关于c++ - 如何从另一个程序运行一个程序并通过 C 或 C++ 中的标准输入将数据传递给它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21231188/

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