gpt4 book ai didi

c++ - 有没有办法在 MinGW 中控制所有三个子应用程序管道,即 STDOUT、STDIN 和 STDERR?

转载 作者:行者123 更新时间:2023-11-28 08:02:41 24 4
gpt4 key购买 nike

我在任何地方都找不到有效的示例。 MinGW 有 _popen() 但他们说它是通过 windows API 实现的,所以它应该是可能的。但是我能找到的所有示例都是针对 VisualC++ 或其他一些较新的语言,如 C# 等。

例如,我尝试为另一个程序制作一个包装器,以红色显示所有标准错误。

最佳答案

在你的情况下,popen 不够好,你必须使用 pipe创建文件句柄,fork创建一个新进程,close关闭子进程中的旧 FILENO_STDIN/FILENO_STDOUT,以及 dup2将管道复制到新的 FILENO_STDIN/FILENO_STDOUT,最后一个 exec启动新程序的功能。

换句话说,您基本上必须重新实现popen 函数。

也很常见,网上有很多例子。

关于c++ - 有没有办法在 MinGW 中控制所有三个子应用程序管道,即 STDOUT、STDIN 和 STDERR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980071/

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