1. 程式人生 > >linux c 語言之--fseek(),fseeko(),fseeko64(),ftell(),ftello()講解

linux c 語言之--fseek(),fseeko(),fseeko64(),ftell(),ftello()講解

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的返回值