当前位置: 技术问答>linux和unix
请教,在程序中把打印信息输入到一个文件中的问题。
来源: 互联网 发布时间:2016-10-26
本文导语: 现在调试程序的时候,将一些打印语句打印出来,在终端中查看很麻烦,现在用 ./exe_hello > hello.log 的方法,将exe_hello中的打印信息定向到hello.log中,现在遇到的问题是:当exe_hello代码成功退出时,hello.log中的打印...
现在调试程序的时候,将一些打印语句打印出来,在终端中查看很麻烦,现在用 ./exe_hello > hello.log 的方法,将exe_hello中的打印信息定向到hello.log中,现在遇到的问题是:当exe_hello代码成功退出时,hello.log中的打印信息可以完全看到。
而在exe_hello运行的过程中,打开hello.log,无法查看到程序打印的语句,当exe_hello错误退出时,hello.log中是空的。现在不知道问题在哪,特向各位请教,谢谢!
ps:最初执行./exe_hello > hello.log 这个命令时无此问题,昨天删除了部分打印信息,则出现上述问题。
而在exe_hello运行的过程中,打开hello.log,无法查看到程序打印的语句,当exe_hello错误退出时,hello.log中是空的。现在不知道问题在哪,特向各位请教,谢谢!
ps:最初执行./exe_hello > hello.log 这个命令时无此问题,昨天删除了部分打印信息,则出现上述问题。
|
./exe_hello > hello.log 2>&1
|
4楼正解
./exe_hello > hello.log 只是重定向了标准输出的结果
./exe_hello > hello.log 2>&1 重定向了标准输出和标准出错,因为错误信息是输出到标准出错的,所以你只重定向标准输出时看不到的
./exe_hello > hello.log 只是重定向了标准输出的结果
./exe_hello > hello.log 2>&1 重定向了标准输出和标准出错,因为错误信息是输出到标准出错的,所以你只重定向标准输出时看不到的
|
在程序里要输出日志的时候 你直接写到日志文件里不行吗?
或者用syslog()函数输出日志 然后配置/etc/syslog.conf来捕获
或者用syslog()函数输出日志 然后配置/etc/syslog.conf来捕获
|
自己封装一个方法,传入字符串,写入文件,关闭文件
把程序中用到打印的地方替换成这个方法
把程序中用到打印的地方替换成这个方法
|
应该是写到缓存里面去了,你在用printf之前设置IO无缓存就应该好了。。。。