如何将输出重定向远离/ dev/null

Gow*_*ham 5 c redirect stdio

我有一个运行a命令的应用程序如下:

<command> <switches> >& /dev/null

我可以配置<command>,但我无法控制<switches>.此命令生成的所有输出都将转到/dev/null.我希望输出在屏幕上可见或重定向到日志文件.

我试图使用freopen()和相关的函数重新打开/dev/null到另一个文件,但无法使其工作.

你还有其他建议吗?这有可能吗?

谢谢你的时间.

PS:我在Linux上工作.

lex*_*exu 7

可怕的黑客:

在二进制模式下使用文本编辑器打开应用程序,找到'/ dev/null /'并用相同长度的字符串替换它

e.g '~/tmp/log'
Run Code Online (Sandbox Code Playgroud)
  • 先做备份
  • 小心点
  • 要非常小心
  • 我提到了备份吗?


Ven*_*tsu 4

由于您可以修改运行的命令,因此可以使用简单的 shell 脚本作为包装器将输出重定向到文件。

#!/bin/bash
"$@" >> logfile
Run Code Online (Sandbox Code Playgroud)

如果将其保存在路径中作为 capture_output.sh,则可以将 capture_output.sh 添加到命令的开头,以将程序的输出附加到日志文件。