我正在扩展一个现有的 C 项目,将所有信息打印到stdout
with printf
。我希望将此信息打印到标准输出和日志文件。
如果我是原始项目的贡献者,我会替换所有printf
使用我的自定义日志函数进行调用。唉,我不是,所以这是我的问题:
是否可以重定向printf
这样一次调用就可以将两者打印到stdout
并归档?
我知道这是一个很遥远的事情,但是,如果可能的话,我可以获得我想要的东西,而不必修改原始代码。
EDIT:感谢您的回答和评论tee
命令。然而,我正在寻找一种直接在 C 代码中以自动化方式完成此操作的方法,以便用户不必费心使用 tee。
感谢您的关注!
您正在寻找tee命令:
./prog | tee file
这将显示输出./prog
in stdout
它也将它存储在file
。考虑到tee
作为管道中的三通固定装置:)
UPDATE
如果你不想强迫用户考虑使用tee
,我只是制作一个 shell 脚本,它完全按照我上面显示的方式执行 - 使用以下命令调用程序tee
- 并且让用户仅与脚本交互。
如果这对您不起作用,并且您确实想更改源,那么我看不到任何立即简单的解决方案。你可以写一个printf()
写入两个流的包装器,但随后您必须继续并将每个调用替换为printf()
到你的包装纸。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)