C 将printf/printk消息重定向到文件

C 将printf/printk消息重定向到文件,c,linux,linux-kernel,printf,printk,C,Linux,Linux Kernel,Printf,Printk,我想将通过printf/print调用的消息复制到一个文件中,保持printf/printk的原始行为不变。环境包含多个正在运行的进程和调用的printf/printk函数调用。 我希望实现上述目标,对每个二进制文件的更改尽可能少 提前感谢 不要在程序中执行,而是在运行程序时在控制台中执行 然后,您可以使用该程序将标准输出重定向到文件: ./your_program | tee some_file 这将导致程序的输出同时写入文件和标准输出。改用tee吗?你的意思是printk?你在做Linux

我想将通过printf/print调用的消息复制到一个文件中,保持printf/printk的原始行为不变。环境包含多个正在运行的进程和调用的printf/printk函数调用。 我希望实现上述目标,对每个二进制文件的更改尽可能少


提前感谢

不要在程序中执行,而是在运行程序时在控制台中执行

然后,您可以使用该程序将标准输出重定向到文件:

./your_program | tee some_file

这将导致程序的输出同时写入文件和标准输出。

改用
tee
吗?你的意思是
printk
?你在做Linux内核编程吗?(如果是这样,您的消息可能已经进入了
/var/log
中的一个文件。)
printf
printk
?我知道tee命令,我正在寻找的是,我的系统有N个进程正在运行,这些进程使用printf/printk调用,我只需复制消息并将其发送到自定义文件,保持原始行为不变。如果我使用tee,每个二进制文件都必须用管道分叉,然后是tee&filename test | tee test.txt。有没有其他方法,我考虑过写printf/printk包装器并在其上使用库预加载??使用串行控制台(或telnet/ssh?),然后通过终端仿真器程序(例如minicom或TeraTerm)使用内置的录制/记录功能记录所有控制台输出。谢谢!!!,但我知道tee命令,我要寻找的是,我的系统有N个进程在运行,它们使用printf/printk调用,我只需要复制消息并将其发送到自定义文件,保持原始行为不变。如果我使用tee,每个二进制文件都必须用管道分叉,然后是tee&filename test | tee test.txt。是否有其他方法,我考虑过编写printf/printk包装器并在其上使用库预加载??