函數(shù)原型:int fgetpos( FILE *stream, fpos_t *pos ); 頭文件:#include<stdio.h> 是否是標(biāo)準(zhǔn)函數(shù):是 函數(shù)功能:取得當(dāng)前文件的指針?biāo)傅奈恢?,并把該指針?biāo)傅奈恢脭?shù)存放到pos所指的對(duì)象中。pos值以?xún)?nèi)部格式存儲(chǔ),僅由fgetpos和fsetpos使用,。其中fsetpos的功能與fgetpos相反,,為了詳細(xì)介紹,將在后節(jié)給與說(shuō)明,。 返回值:成功返回0,,失敗返回非0,并設(shè)置errno。 例程如下:應(yīng)用fgetpos函數(shù)取得當(dāng)前文件的指針?biāo)傅奈恢谩?/span> #include <string.h> #include <stdio.h> int main(void) { FILE *fp; char string[] = "This is a test"; fpos_t pos; /* 以讀寫(xiě)方式打開(kāi)一個(gè)名為test.txt的文件 */ fp = fopen("test.txt", "w+"); /* 將字符串寫(xiě)入文件 */ fwrite(string, strlen(string), 1, fp); /* 取得指針位置并存入&pos所指向的對(duì)象 */ fgetpos(fp, &pos); printf("The file pointer is at byte %ld/n", pos); /*重設(shè)文件指針的位置*/ fseek(fp,3,0); /* 再次取得指針位置并存入&pos所指向的對(duì)象 */ fgetpos(fp, &pos); printf("The file pointer is at byte %ld/n", pos); fclose(fp); return 0; } 例程說(shuō)明: (1)首先,,程序以讀寫(xiě)方式打開(kāi)一個(gè)名為test.txt的文件,,并把字符串"This is a test"寫(xiě)入文件。注意:字符串共14個(gè)字節(jié),,地址為0~13,。用fwrite函數(shù)寫(xiě)入后,文件指針自動(dòng)指向文件最后一個(gè)字節(jié)的下一個(gè)位置,。即這時(shí)的fp的值應(yīng)該是14。 (2)再用fgetpos函數(shù)取得指針位置并存入&pos所指向的對(duì)象,,此時(shí),, pos中的內(nèi)容為14。然后在屏幕上顯示出The file pointer is at byte 14,。 (3)再用fseek函數(shù)重設(shè)文件指針的位置,,讓fp的值為3,即指向文件中第4個(gè)字節(jié),。 再次取得指針位置并存入&pos所指向的對(duì)象,。然后在屏幕上顯示出The file pointer is at byte 3。 |
|