The fseek() function provides random file access. It’s declared in
int fseek(FILE *fstream, int offset, int whence);
The function sets the file pointer associated with fstream to a new position that is offsetbytes from the location specified by whence. The argument whence can have one of these values:
SEEK_SET // file's beginningSEEK_CUR // current file positionSEEK_END // end of file
In the following example, fseek() is used to calculate a file’s size in a portable manner:
long file_size (FILE *f);{ long cur_pos, length; cur_pos = ftell(f) fseek(f, 0, SEEK_END); // set pointer to end of file length=ftell(f); // offset in bytes from file's beginning fseek(f, cur_pos, SEEK_SET); // restore original position return length;}