請問大家,我在Cygwin底下跑程式,有印出大量 text,但是文字
卻不會很 smooth 地印出,而是似乎累積了一堆之後,才一次丟出
到螢幕,然後停在某個字元後,又等程式跑到一堆結果後,又一次
打印出來。感覺似乎是有 buffer 之類的先暫存,滿了之後一次倒出。
有沒有辦法改為讓打印不要先送到 buffer 直接印出到 console 呢?
我的 OS 是 Win7 64bit.
作者:
bitlife (BIT一生)
2020-10-24 17:48:00假設你是用stdio.h相關函式,資料寫出後使用 fflush這問題比較屬於c語言之類的問題,不是linux特定的問題
不是自寫的程式,只是在別台電腦可以很smooth打印出字母-by-字母, 而不是一次傾印出一大堆.
作者:
bitlife (BIT一生)
2020-10-24 18:01:00不是自己寫的,又不是linux平台,最好是去問作者
linux 程式如果輸出是終端機多半不會 buffer ,但如果用管道串了一些程式,程式看到輸出是管道就會有buffer行為,參考harttle.land/2020/06/06/tail-f-pipe.html
謝謝樓上G大解釋,因為兩台不同等級PC都跑Cygwin+同一程式,輸出到console的方式卻有差異,有buf太久會讓我誤以為程式當掉.因為沒有cygwin版故到此發問,謝!