我在Fedora 20上使用Anjuta和gdb,並創建了C Makefile項目。代碼如下所示:爲什麼在單步執行代碼時printf輸出不會立即顯示?
#include <stdio.h>
int main (void)
{
° printf ("1");
° printf ("2");
° printf ("3");
return (0);
}
°表示我在該位置設置斷點。
現在當我調試代碼時,沒有輸出,而當前行是這些printf函數之一。只有當我退出主'123'出現在終端。
如果我將\ n添加到第二個printf參數中,則當我從斷點2移動到第三個時,出現'12'作爲輸出。
它始終緩衝...不是「碰巧是」 – texasbruce
那麼,你可以通過調用setbuf() –
@texasbruce stdout不總是緩衝。 1,它是實現定義的。第二如果緩衝與否,模式可以改變.. – chux