perl的輸出緩衝

2022-08-04 01:03:11 字數 535 閱讀 8523

今天寫乙個小指令碼的時候,需要即時輸出當前進度到命令列上,並即時將重要資料寫入報告檔案中。但是perl預設是有輸出緩衝的,顯示到命令列上必須以\n結尾才行,輸出到檔案中,回車了都不行,非得要等緩衝區滿了。

**:

select( stdout );

$| = 1;

open( report, ">report.txt" ) || die "create report error: $!\n";

select( report );

$| = 1;

select( stdout );

在寫入報告和輸出進度之前這樣處理一下就可以了。第一句是選擇標準輸出控制代碼為當前預設輸出控制代碼,並設定為不緩衝方式。然後選擇檔案控制代碼為預設輸出控制代碼,設定為不緩衝模式。再最後重新設定stdout為預設輸出控制代碼,少了這一句的話,標準輸出就被重定向到檔案裡面去了。

這樣就會即時寫入報告,不用擔心丟失資料了。即使中途中止了程式,也有一部分結果在。做個小tip,免得忘記了,呵呵。

perl的輸出緩衝

perl的輸出緩衝 今天寫乙個小指令碼的時候,需要即時輸出當前進度到命令列上,並即時將重要資料寫入報告檔案中。但是perl預設是有輸出緩衝的,顯示到命令列上必須以 n結尾才行,輸出到檔案中,回車了都不行,非得要等緩衝區滿了。select stdout 1 open report,report.txt...

C 輸出緩衝

c primer io 概念上,數倍型別和字元大小都不會影響我們要執行的io操作。標準庫使我們能忽略這些不同型別的流之間的差異,這是通過繼承機制實現的。由於不能拷貝io物件,因此我們也不能將形參或返回型別設定為流型別。進行io操作的函式通常以引用方式傳遞和返回流。讀寫乙個io物件會改變其狀態,因此傳...

perl的輸入與輸出

讀取標準輸入 鍵盤輸入,回車分行,ctrl c截止 例 while foreach 簡單寫法,將輸入處理到結尾,不同的是while是取一行處理一行,foreach是全部取出之後再一行行處理。都是每一行作為一條資料,存在預設變數 中。鑽石操作符 例 while 它可以讀取乙個檔案 一行行讀取 每一行存...