求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

Fseek檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
  Fseek

int fseek(FILE *stream, long offset, int fromwhere);函數設置文件指針stream的位置。如果執行成功,stream將指向以fromwhere為基準,偏移offset(指針偏移量)個字節的位置,函數返回0。如果執行失敗(比如offset取值大於等於2*1024*1024*1024,即long的正數範圍2G),則不改變stream指向的位置,函數返回一個非0值。 fseek函數和lseek函數類似,但lseek返回的是一個off_t數值,而fseek返回的是一個整型

簡介

函數設置文件指針stream的位置。如果執行成功,stream將指向以fromwhere(偏移起始位置:文件頭0(SEEK_SET),當前位置1(SEEK_CUR),文件尾2(SEEK_END))為基準,偏移offset(指針偏移量)個字節的位置。如果執行失敗(比如offset超過文件自身大小),則不改變stream指向的位置。fseek函數的文件指針,應該為已經打開的文件。如果沒有打開的文件,那麼將會出現錯誤。 fseek函數也可以這樣理解,相當於在文件當中定位。這樣在讀取規律性存儲文件時可以利用其OFFSET偏移量讀取文件上任意的內容。 fseek函數一般用於二進制文件,也可以用於文本文件。用於文本文件操作時,需特別注意只有fseek(fp, 0, SEEK_SET) 和 fseek(fp, ftell(fp), SEEK_SET)能確保結果符合預期。

評價

第一個參數stream為文件指針第二個參數offset為偏移量,正數表示正向偏移,負數表示負向偏移第三個參數origin設定從文件的哪裡開始偏移,可能取值為:SEEK_CUR、 SEEK_END 或 SEEK_SETSEEK_SET: 文件開頭SEEK_CUR: 當前位置SEEK_END: 文件結尾其中SEEK_SET,SEEK_CUR和SEEK_END依次為0,1和2.簡言之:fseek(fp,100L,0);把stream指針移動到離文件開頭100字節處;fseek(fp,100L,1);把stream指針移動到離文件當前位置100字節處;fseek(fp,-100L,2);把stream指針退回到離文件結尾100字節處。。[1]

參考文獻

  1. Fseek搜狗