位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 文件指針

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-02

    C語(yǔ)言中讀寫每一個(gè)文件時(shí),必須了解如下信息:文件在磁盤中的存儲(chǔ)位置、文件的類型(二進(jìn)制文件或文本文件)、對(duì)文件進(jìn)行何種操作(讀或?qū)懀?、?duì)文件以怎樣的方式讀寫(讀一個(gè)字符、或讀一串字符等)以及該文件調(diào)入到內(nèi)存緩沖區(qū)的地址。標(biāo)準(zhǔn)文件系統(tǒng)為每一個(gè)文件定義一個(gè)結(jié)構(gòu)體變量,命名為FILE,該結(jié)構(gòu)體變量中包含了要讀寫文件的基本信息。FILE結(jié)構(gòu)體類型一般定義在stdio.h頭文件 中。具體定義如下:

typedef struct

{

    short                  level;             /*緩沖區(qū)滿空程度*/

    unsigned            flags;            /*文件狀態(tài)標(biāo)志*/

    char                     fd;               /*文件描述符*/

    unsigned char     hold;           /*無(wú)緩沖則不讀取字符*/

    short                    bsize;          /*緩沖區(qū)大小*/

    unsigned char     *buffer;        /*數(shù)據(jù)緩沖區(qū)*/

    unsigned char     *curp;          /*當(dāng)前位置指針*/

    unsigned              istemp;       /*臨時(shí)文件指示器*/

    short                    token;          /*用于有效性檢查*/

} FILE;

    FILE結(jié)構(gòu)體的定義是由編譯系統(tǒng)完成的,對(duì)于編程人員來(lái)說(shuō),只要掌握它的使用即可,不必深究其內(nèi)涵。

    當(dāng)需要打開(kāi)一個(gè)文件時(shí),系統(tǒng)將為該文件定義一個(gè)FILE型結(jié)構(gòu)體變量,該變量中包含了文件的相關(guān)信息,并返回該文件在內(nèi)存緩沖區(qū)的地址,這樣,對(duì)文件的操作就轉(zhuǎn)化為對(duì)指針的操作。例如:

    FILE *fp;

    這就定義了一個(gè)FILE型的指針,指針名為fp。但要注意,此時(shí)指針fp沒(méi)有指向任何地址,需要用文件打開(kāi)操作,將一個(gè)文件的地址賦給fp指針。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部