關(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 基準點,offset以基準點為起始點的偏移量。
3、返回值:如果執(zhí)行成功,stream將指向以fromwhere為基準,偏移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為基準,偏移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ù)也可以這樣理解,相當于在文件當中定位。
17、這樣在讀取規(guī)律性存儲文件時可以利用其OFFSET偏移量讀取文件上任意的內(nèi)容。
18、fseek函數(shù)一般用于二進制文件,也可以用于文本文件。
19、用于文本文件操作時,需特別注意回車換行的情況:因為在一般瀏覽工具如UltraEdit中,回車換行視為兩個字符0x0D和0x0A,但真實的文件讀寫和定位時卻按照一個字符0x0A進行處理,因此碰到此類問題時,可以考慮將文件整個讀入內(nèi)存,然后在內(nèi)存中手工插入0x0D的方法,這樣可以達到較好的處理效果。
20、參考資料:百度百科:fseek。
本文分享完畢,希望對大家有所幫助。
標簽:
免責聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!