fsetpos() fgetpos()詳解

fsetpos()詳解

函數(shù)原型:int fsetpos(FILE *fp, const fpos_t *pos);

頭文件:#include<stdio.h>

是否是標準函數(shù):是

函數(shù)功能:將文件指針定位在pos指定的位置上竭缝。該函數(shù)的功能與前面提到的fgetpos相反房维,是將文件指針fp按照pos指定的位置在文件中定位。pos值以內(nèi)部格式存儲,僅由fgetpos和fsetpos使用抬纸。

返回值:成功返回0咙俩,否則返回非0。

例程如下 應(yīng)用fsetpos函數(shù)定位文件指針湿故。

#include <stdio.h>

void main( void )

{

FILE *fp;

fpos_t pos;

char buffer[50];

if( (fp = fopen( "test.txt", "rb" )) == NULL )

printf( "Trouble opening file/n" );

else

{

pos = 10;

if( fsetpos( fp, &pos ) != 0 )

perror( "fsetpos error" );

else

{

fread( buffer, sizeof( char ), 16, fp );

printf( "16 bytes at byte %ld: %.16s/n", pos, buffer );

}

}

fclose( fp );

}

例程說明:

(1)首先暴浦,程序以只讀方式打開名為test.txt的文件。在這里晓锻,test.txt文件中已存入字符串This is a test for testing the function of fsetpos.

(2)將pos設(shè)置為10。應(yīng)用fsetpos函數(shù)將文件指針fp按照pos指定的位置在文件中定位飞几。這樣文件指針fp指向字符串中test的字母t砚哆。

(3)再從新定位的文件指針開始讀取16個字符到buffer緩沖區(qū),也就是說讀取字符串"test for testing"到緩沖區(qū)buffer屑墨。

(4)最后顯示結(jié)果:16 bytes at byte 10: test for testing 躁锁。

fgetpos:取得當(dāng)前文件的句柄函數(shù)

函數(shù)原型:int fgetpos( FILE *stream, fpos_t *pos );

頭文件:#include<stdio.h>

是否是標準函數(shù):是

函數(shù)功能:取得當(dāng)前文件的指針所指的位置,并把該指針所指的位置數(shù)存放到pos所指的對象中卵史。pos值以內(nèi)部格式存儲,僅由fgetpos和fsetpos使用战转。其中fsetpos的功能與fgetpos相反,為了詳細介紹以躯,將在后節(jié)給與說明槐秧。

返回值:成功返回0,失敗返回非0忧设,并設(shè)置errno刁标。

例程如下:應(yīng)用fgetpos函數(shù)取得當(dāng)前文件的指針所指的位置。

#include <string.h>

#include <stdio.h>

int main(void)

{

FILE *fp;

char string[] = "This is a test";

fpos_t pos;

fp = fopen("test.txt", "w+");

fwrite(string, strlen(string), 1, fp);

fgetpos(fp, &pos);

printf("The file pointer is at byte %ld/n", pos);

fseek(fp,3,0);

fgetpos(fp, &pos);

printf("The file pointer is at byte %ld/n", pos);

fclose(fp);

return 0;

}

例程說明:

(1)首先址晕,程序以讀寫方式打開一個名為test.txt的文件膀懈,并把字符串"This is a test"寫入文件。注意:字符串共14個字節(jié)谨垃,地址為0~13启搂。用fwrite函數(shù)寫入后硼控,文件指針自動指向文件最后一個字節(jié)的下一個位置。即這時的fp的值應(yīng)該是14胳赌。

(2)再用fgetpos函數(shù)取得指針位置并存入&pos所指向的對象牢撼,此時, pos中的內(nèi)容為14匈织。然后在屏幕上顯示出The file pointer is at byte 14浪默。

(3)再用fseek函數(shù)重設(shè)文件指針的位置,讓fp的值為3缀匕,即指向文件中第4個字節(jié)纳决。

再次取得指針位置并存入&pos所指向的對象。然后在屏幕上顯示出The file pointer is at byte 3乡小。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阔加,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子满钟,更是在濱河造成了極大的恐慌胜榔,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件湃番,死亡現(xiàn)場離奇詭異夭织,居然都是意外死亡,警方通過查閱死者的電腦和手機吠撮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門尊惰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泥兰,你說我怎么就攤上這事弄屡。” “怎么了鞋诗?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵膀捷,是天一觀的道長。 經(jīng)常有香客問我削彬,道長全庸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任融痛,我火速辦了婚禮糕篇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘酌心。我一直安慰自己拌消,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墩崩,像睡著了一般氓英。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹦筹,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天铝阐,我揣著相機與錄音,去河邊找鬼铐拐。 笑死徘键,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遍蟋。 我是一名探鬼主播吹害,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼虚青!你這毒婦竟也來了它呀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤棒厘,失蹤者是張志新(化名)和其女友劉穎纵穿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奢人,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡谓媒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了何乎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篙耗。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宪赶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脯燃,我是刑警寧澤搂妻,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站辕棚,受9級特大地震影響欲主,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逝嚎,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一扁瓢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧补君,春花似錦引几、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敞掘。三九已至,卻和暖如春楣铁,著一層夾襖步出監(jiān)牢的瞬間玖雁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工盖腕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赫冬,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓溃列,卻偏偏與公主長得像劲厌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哭廉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容