高等 C 語言 -- 設定檔案緩衝區

高等 C 語言

簡介

字串

指標與陣列

函數

結構

物件導向

記憶體

檔案

錯誤處理

巨集處理

C 與組合語言

資料結構

動態字串

動態陣列

鏈結串列

雜湊表

開發環境

Make

Cygwin

MinGW

DevC++

wxDevC++

編譯器

gcc 編譯器

TinyCC 編譯器

LCC 編譯器

應用主題

CGI 程式

GNU 程式

視窗程式

影像處理

練習題

訊息

相關網站

參考文獻

最新修改

簡體版

English

在 C 語言的標準輸出入函式庫中,您可以使用 setbuf(file, buffer) 的方法,設定擋案的緩衝區,如果您用 setbuf(file, NULL) 這個函數將緩衝區設為 NULL,就會取消檔案緩衝機制,每次都直接輸出到檔案中。

另外,您也可以使用 setvbuf(file, buffer, mode, size) 這樣的方式,設定檔案緩衝區與緩衝模式,其中的 mode 有三種可能,第一種 _IOFBF 代表完全緩衝,該模式會等緩衝區滿了之後再輸出,第二種 _IOLBF 代表行緩衝 (line buffered),一但碰到換行時就會輸出,而第三種 _IONBF 代表不緩衝,該方法會完全不進行緩衝而直接輸出。

程式範例

檔案:setbuf.c

#include <stdio.h>

int main () {
  char buffer[BUFSIZ];  // BUFSIZ 定義在 stdio.h 當中。
  FILE *file;
  file=fopen ("test.txt","w");
  setbuf (file, buffer ); // setbuf(file, NULL) 會取消緩衝區,每次都直接輸出入。
  fclose (file);
  return 0;
}

執行結果

D:\cp>gcc setbuf.c -o setbuf

D:\cp>setbuf

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License