【发布时间】:2010-03-24 12:28:27
【问题描述】:
我有一个运行如下命令的应用程序:
<command> <switches> >& /dev/null
我可以配置<command>,但我无法控制<switches>。此命令生成的所有输出都转到/dev/null。我希望输出在屏幕上可见或重定向到日志文件。
我尝试使用freopen() 和相关函数将/dev/null 重新打开到另一个文件,但无法正常工作。
您还有其他想法吗?这可能吗?
感谢您的宝贵时间。
PS:我在 Linux 上工作。
【问题讨论】:
-
这和 Perl 有什么关系?
-
除非您可以更改脚本中的命令,否则我认为您不走运。一旦它被重定向到 null 你就无法取回它,因为你可能与它共享的所有文件描述符(stdin、stdout、stderr)都消失了。
-
所以你可以控制命令,但不能控制它的重定向?如果是这样,我会说 e-t172 是正确的,或者至少与您将要得到的一样正确:stackoverflow.com/questions/2507569/… 如果不是,请更新以澄清。
-
我可以配置
,但无法控制 。 <command> # <switches> >& /dev/null将运行不带开关的命令! :( 我已经编辑了我的问题以使其更清晰。 -
这个问题不是更适合ServerFault吗?跟C有什么关系?您是否正在考虑编写一个 C 程序来替换
?一种会捕获参数然后调用命令但将 ITS 输出重定向到日志文件的方法?