首頁 >> 百科精選 >

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

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

關(guān)于fseek函數(shù)是什么,fseek這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!

1、fseek是用來設(shè)置文件指針stream的位置的函數(shù)。

2、函數(shù)原型:int fseek(FILE *stream, long offset, int fromwhere);參數(shù):stream 是指向打開文件的指針,fromwhere 基準(zhǔn)點,offset以基準(zhǔn)點為起始點的偏移量。

3、返回值:如果執(zhí)行成功,stream將指向以fromwhere為基準(zhǔn),偏移offset(指針偏移量)個字節(jié)的位置,函數(shù)返回0。

4、如果執(zhí)行失敗(比如offset超過文件自身大小),則不改變stream指向的位置,函數(shù)返回一個非0值。

5、注意:文件指針指向文件/流。

6、位置指針指向文件內(nèi)部的字節(jié)位置,隨著文件的讀取會移動,文件指針如果不重新賦值將不會改變指向別的文件。

7、拓展資料:int fseek(FILE *stream, long offset, int fromwhere);函數(shù)設(shè)置文件指針stream的位置。

8、如果執(zhí)行成功,stream將指向以fromwhere為基準(zhǔn),偏移offset(指針偏移量)個字節(jié)的位置,函數(shù)返回0。

9、如果執(zhí)行失敗(比如offset取值大于等于2*1024*1024*1024,即long的正數(shù)范圍2G),則不改變stream指向的位置,函數(shù)返回一個非0值。

10、fseek函數(shù)和lseek函數(shù)類似,但lseek返回的是一個off_t數(shù)值,而fseek返回的是一個整型。

11、重定位流(數(shù)據(jù)流/文件)上的文件內(nèi)部位置指針。

12、注意:文件指針指向文件/流。

13、位置指針指向文件內(nèi)部的字節(jié)位置,隨著文件的讀取會移動,文件指針如果不重新賦值將不會改變或指向別的文件。

14、fseek函數(shù)的文件指針,應(yīng)該為已經(jīng)打開的文件。

15、如果沒有打開的文件,那么將會出現(xiàn)錯誤。

16、 fseek函數(shù)也可以這樣理解,相當(dāng)于在文件當(dāng)中定位。

17、這樣在讀取規(guī)律性存儲文件時可以利用其OFFSET偏移量讀取文件上任意的內(nèi)容。

18、fseek函數(shù)一般用于二進(jìn)制文件,也可以用于文本文件。

19、用于文本文件操作時,需特別注意回車換行的情況:因為在一般瀏覽工具如UltraEdit中,回車換行視為兩個字符0x0D和0x0A,但真實的文件讀寫和定位時卻按照一個字符0x0A進(jìn)行處理,因此碰到此類問題時,可以考慮將文件整個讀入內(nèi)存,然后在內(nèi)存中手工插入0x0D的方法,這樣可以達(dá)到較好的處理效果。

20、參考資料:百度百科:fseek。

本文分享完畢,希望對大家有所幫助。

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

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