1. 程式人生 > >FILE與檔案描述符的對比

FILE與檔案描述符的對比

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庫中的檔案操作就是對系統介面對檔案操作的一層封裝。