關(guān)于fseek函數(shù)是什么,fseek這個(gè)問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、fseek是用來設(shè)置文件指針stream的位置的函數(shù)。
2、函數(shù)原型:int fseek(FILE *stream, long offset, int fromwhere);參數(shù):stream 是指向打開文件的指針,fromwhere 基準(zhǔn)點(diǎn),offset以基準(zhǔn)點(diǎn)為起始點(diǎn)的偏移量。
3、返回值:如果執(zhí)行成功,stream將指向以fromwhere為基準(zhǔn),偏移offset(指針偏移量)個(gè)字節(jié)的位置,函數(shù)返回0。
4、如果執(zhí)行失敗(比如offset超過文件自身大小),則不改變stream指向的位置,函數(shù)返回一個(gè)非0值。
5、注意:文件指針指向文件/流。
6、位置指針指向文件內(nèi)部的字節(jié)位置,隨著文件的讀取會(huì)移動(dòng),文件指針如果不重新賦值將不會(huì)改變指向別的文件。
7、拓展資料:int fseek(FILE *stream, long offset, int fromwhere);函數(shù)設(shè)置文件指針stream的位置。
8、如果執(zhí)行成功,stream將指向以fromwhere為基準(zhǔn),偏移offset(指針偏移量)個(gè)字節(jié)的位置,函數(shù)返回0。
9、如果執(zhí)行失敗(比如offset取值大于等于2*1024*1024*1024,即long的正數(shù)范圍2G),則不改變stream指向的位置,函數(shù)返回一個(gè)非0值。
10、fseek函數(shù)和lseek函數(shù)類似,但lseek返回的是一個(gè)off_t數(shù)值,而fseek返回的是一個(gè)整型。
11、重定位流(數(shù)據(jù)流/文件)上的文件內(nèi)部位置指針。
12、注意:文件指針指向文件/流。
13、位置指針指向文件內(nèi)部的字節(jié)位置,隨著文件的讀取會(huì)移動(dòng),文件指針如果不重新賦值將不會(huì)改變或指向別的文件。
14、fseek函數(shù)的文件指針,應(yīng)該為已經(jīng)打開的文件。
15、如果沒有打開的文件,那么將會(huì)出現(xiàn)錯(cuò)誤。
16、 fseek函數(shù)也可以這樣理解,相當(dāng)于在文件當(dāng)中定位。
17、這樣在讀取規(guī)律性存儲(chǔ)文件時(shí)可以利用其OFFSET偏移量讀取文件上任意的內(nèi)容。
18、fseek函數(shù)一般用于二進(jìn)制文件,也可以用于文本文件。
19、用于文本文件操作時(shí),需特別注意回車換行的情況:因?yàn)樵谝话銥g覽工具如UltraEdit中,回車換行視為兩個(gè)字符0x0D和0x0A,但真實(shí)的文件讀寫和定位時(shí)卻按照一個(gè)字符0x0A進(jìn)行處理,因此碰到此類問題時(shí),可以考慮將文件整個(gè)讀入內(nèi)存,然后在內(nèi)存中手工插入0x0D的方法,這樣可以達(dá)到較好的處理效果。
20、參考資料:百度百科:fseek。
本文分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!