C語言 文件指針
C語言中讀寫每一個(gè)文件時(shí),必須了解如下信息:文件在磁盤中的存儲位置、文件的類型(二進(jìn)制文件或文本文件)、對文件進(jìn)行何種操作(讀或?qū)懀?、對文件以怎樣的方式讀寫(讀一個(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; /*無緩沖則不讀取字符*/
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)完成的,對于編程人員來說,只要掌握它的使用即可,不必深究其內(nèi)涵。
當(dāng)需要打開一個(gè)文件時(shí),系統(tǒng)將為該文件定義一個(gè)FILE型結(jié)構(gòu)體變量,該變量中包含了文件的相關(guān)信息,并返回該文件在內(nèi)存緩沖區(qū)的地址,這樣,對文件的操作就轉(zhuǎn)化為對指針的操作。例如:
FILE *fp;
這就定義了一個(gè)FILE型的指針,指針名為fp。但要注意,此時(shí)指針fp沒有指向任何地址,需要用文件打開操作,將一個(gè)文件的地址賦給fp指針。
點(diǎn)擊加載更多評論>>