FILE與檔案描述符的對比
阿新 • • 發佈:2018-12-25
FILE是一個結構體,C語言的stdio.h標頭檔案中,定義了用於檔案操作的結構體FILE。這樣,我們通過fopen返回一個檔案指標(指向FILE結構體的指標)來進行檔案操作。
FILE結構體的定義如下:
#ifndef _FILE_DEFINED struct _iobuf { char *_ptr; //檔案輸入的下一個位置 int _cnt; //當前緩衝區的相對位置 char *_base; //指向檔案的起始位置 int _flag; //檔案標誌 int _file; //檔案描述符 int _charbuf; //檢查緩衝區狀況 int _bufsiz; //緩衝區大小 char *_tmpfname;//臨時檔名 }; typedef struct _iobuf FILE;
開啟一個檔案將返回指向FILE結構(在stdio.h中定義)的指標,它包含用於處理檔案的資訊,也就是說,這個結構包含檔案描述符。C語言庫中的操作檔案函式都是呼叫的系統介面中的(read,write,open)實現的。C庫中的檔案操作就是對系統介面對檔案操作的一層封裝。