【发布时间】:2011-01-07 00:32:48
【问题描述】:
我有一个模块使用 IPC::Open3(或 IPC::Open2,都存在这个问题)来调用外部二进制文件(在这种情况下为 bogofilter)并通过子输入文件句柄为其提供一些输入,然后读取子输出句柄的结果。该代码在大多数环境中运行时都可以正常工作。但是,此模块的主要用途是在 Apache 2.2.6 下运行的 Web 服务中。在那种环境下,我得到了错误:
无法 fdopen STDOUT:参数无效
这只发生在代码在 Apache 下运行时。以前,该代码构建了一个极其复杂的命令,其中包括一个用于输入的 here-document,并使用反引号运行它。这行得通,但速度很慢,而且容易以独特而令人费解的方式中断。我不想必须恢复到旧版本,但我无法破解。
【问题讨论】: