0

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

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

4

1 回答 1

1

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

换句话说,您基本上必须重新实现该popen功能。

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

于 2012-06-11T12:45:29.813 回答