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