對於這3個標準 i/o 版本中的每乙個,其使用者cpu時間都大於 圖3-6 的最佳 read 版本,因為在每次讀乙個字元的標準 i/o 版本中有乙個要執行 1 億次迴圈,而在每次讀一行的版本中有乙個要執行 3144984 次的迴圈。在 read 版本中,其迴圈只需執行 25224 次(對於緩衝區長度為 4096 位元組)。因為系統的cpu時間幾乎相同,所以使用者cpu時間的差別以及等待 i/o 結束所消耗時間的差別造成了時鐘時間的差別。
系統 cpu 時間幾乎相同,原因是因為所有這些程式對核心提出的讀、寫請求數基本相同。注意:
由最後一列知:使用 getc() 和 putc() 實現的版本與 fgetc 和 fputc 的版本在文字空間長度方面大體相同。
使用每次一行i/o版本的速度大約是每次乙個字元版本速度的兩倍,若fgets 和 fputs 是用 getc 和 putc 實現的,那麼預期時間會相近,每次一行的版本甚至更慢一些,因為還需增加額外函式呼叫。但是fgets和fputs是用 memccpy 實現的。通常為了提高效率,memccpy 函式用組合語言而非c語言編寫
,正因為如此,每次一行的版本才會有較高的速度。
I O 標準 I O 實驗
一 測試標準 i o 一次可以同時開啟多少個檔案 1 實驗思路 利用迴圈同時開啟檔案,直到不能開啟 2 如下 二 fgetc 和 fputc 實現拷貝檔案並輸出檔案行數 1 實驗思路 開啟檔案,用 fgetc 讀取,然後 fputc 輸出 2 如下 三 fgetc 和 putchar 實現只輸出字母...
標準IO以及標準IO實現拷貝
1 include 2 include 3 include 4int main 513char s this is test.14 size t ret fwrite s,1 strlen s fp 15 if 0 ret 16 寫完指標指向最後,如果讀的話需要移動指標 20fseek fp,0,s...
檔案標準標準IO與檔案IO 的區別
首先宣告,我是乙個菜鳥。一下文章中出現技術誤導情況蓋不負責 先來了解下什麼是標準 以及檔案 標準 標準i o是ansi c建立的乙個標準i o模型,是乙個標準函式包和stdio.h標頭檔案中的定義,擁有必定的可移植性。標準io庫處理很多細節。例如快取分配,以優化長度執行io等。標準的io供給了三種型...