按字符而不是按行刷新输出

按字符而不是按行刷新输出

我的程序每 100 毫秒打印一次.(不带换行符)以指示进度。但是,当通过 ssh 在远程计算机上运行它时,在打印换行符之前我看不到输出。我在 Cygwin 和 Ubuntu 上尝试过。

有没有办法让 ssh 在行完成之前显示输出?

答案1

问题通常出在程序的输出缓冲上,或者更准确地说,出在程序使用的 IO 库或运行时上。特别是行缓冲。

无缓冲 IO 效率较低,这就是为什么默认情况下不使用它。

编程语言通常有一种指定无缓冲输出的方法。由于它通常取决于 STDOUT 所连接的内容,因此它也受操作系统环境设置的影响。

也可以看看标准缓冲区

相关内容