我正在使用命令:
./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