首頁 >> 百科精選 >

fseek函數(shù)是什么(fseek)

2022-11-29 03:45:25 來源: 用戶: 

關(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ì)大家有所幫助。

  免責(zé)聲明:本文由用戶上傳,與本網(wǎng)站立場(chǎng)無關(guān)。財(cái)經(jīng)信息僅供讀者參考,并不構(gòu)成投資建議。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。 如有侵權(quán)請(qǐng)聯(lián)系刪除!

 
分享:
最新文章
大家愛看
頻道推薦
站長推薦