linux c 語言之--fseek(),fseeko(),fseeko64(),ftell(),ftello()講解
阿新 • • 發佈:2018-12-31
fseek() 函式講解:
函式定義:
int fseek(FILE *stream, long offset, int fromwhere);
int fseeko(FILE *stream, off_t offset, int fromwhere);
int fseeko64(FILE *stream, off64_t offset, int fromwhere);
引數:
stream:檔案指標
fromwhere:偏移起始位置
offset:偏移量
功能:
函式設定檔案指標stream的位置。如果執行成功,stream將指向以fromwhere(偏移起始位置:檔案頭0(SEEK_SET),當前位置1(SEEK_CUR),檔案尾2(SEEK_END))為基準,偏移offset(指標偏移量)個位元組的位置。如果執行失敗(比如offset超過檔案自身大小),則不改變stream指向的位置。
說明:這幾個函式唯一的不同是offset的資料型別不同,相應的能夠處理的偏移量的範圍也就有大有小。
返回值:
成功,返回0,失敗返回-1,並設定errno的值,可以用perror()函式輸出錯誤。
fseek position the file(檔案) position(位置) pointer(指標) for the file referenced by stream to the byte location calculated by offset.
ftell()函式講解
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
//Returns: current file position indicator(指示器) if OK, -1L on error
long ftell(FILE *stream);
//Returns:0 if OK, nonzero on error
void rewind(FILE *stream);
相關引數
對於二進位制檔案:whence有三個取值SEEK_SET、SEEK_CUR、SEEK_END
對於文字檔案:whence必須為SEEK_SET,offset只能為兩個值,0—代表rewind到檔案開頭,或者使用ftell的返回值