终端 - 输出到文件的重定向被缩短

终端 - 输出到文件的重定向被缩短

我正在使用命令:

./cpp-generator > ~/log.log

但是当我打开 log.log 时,文件被缩短。它在一个单词的中间结束。但如果我只跑:

./cpp-generator 

在终端中,结果是完整的、完整的输出。

答案1

好的,正如 @StéphaneChazelas 所说,可能的原因是 ./cpp-generator 被终止。 终端具有基于行的缓冲,而不是 ./cpp-generator 中的块缓冲,因此这就是终端将打印所有输出的原因。

ctrl我给了 ./cpp-generator 足够的时间来打印消息,但因为它在循环中运行,所以我总是以+结尾c- 因此我杀死了它,并且基于块的缓冲区没有机会写入文件......

工作解决方案是这样运行 ./cpp-generator :

stdbuf -o0 cpp-generator > log.log

谢谢@StéphaneChazelas

相关内容