良许Linux教程网 干货合集 如何同时输出调试信息到终端及文件?

如何同时输出调试信息到终端及文件?

在Linux开发中,printf函数用于打印调试信息,它默认将信息输出到标准输出stdout(也就是屏幕/终端)上。不过,我们也可以利用输出重定向技术将printf输出写入到指定的文件中,实现将原本应该显示在屏幕的信息写入到文件中的效果。

示例:

image-20231007195952664
image-20231007195952664

但是有时候既要实时查看打印调试信息,又要把这些调试信息保存下来发给他人分析。

下面分享能达到这个需求的两种方法:

1、使用script工具

script工具是一个非常使用的工具,可以把输出到终端的信息记录下来。使用方法如:

(1)输入 script log.txt命令开始保存终端输出的信息 ,其中log.txt为需要写入的log文件,可随意命名。

(2)输入exit退出保存。

演示如下:

image-20231007195955648
image-20231007195955648

之前我只知道有script 这样一个工具,而且经常在Ubuntu上使用。奈何开发板里的系统没这个工具,所以很长的一段时间我都是等程序跑完后我手动从终端拷贝全部信息到文本中保存。。。

刚开始程序跑得不久,日志信息还不是很多,还可以接受。后面程序跑久了,日志信息越来越多,再这么手动拷贝实在受不了。

image-20231007195958912
image-20231007195958912

所以找了另外的方法:使用tee工具。

2、使用tee工具

tee工具`用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。`简单的说就是把数据重定向到给定文件和屏幕上。

存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到1024个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件。

演示如下:

image-20231007200001989
image-20231007200001989

可见,使用tee工具输入到文本里的内容比script工具输入到文本里的内容还要干净,就是程序打印输出的东西。

以上就是本次分享的两个实用小工具的使用,希望大家喜欢~

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部