fseek
From Wikipedia, the free encyclopedia
fseek is a C function belonging to the ANSI C standard library, and included in the file stdio.h. Its purpose is to change the file position indicator for the specified stream. Because fseek uses 32 bit values on many platforms it has a limitation of maximum 2 gigabyte seeks[1].
[edit] Function prototype
int fseek(FILE *stream_pointer, long offset, int origin);
Argument meaning:
- stream_pointer is a pointer to the stream FILE structure of which the position indicator should be changed;
- offset is a long integer which specifies the number of bytes from origin where the position indicator should be placed;
- origin is an integer which specifies the origin position. It can be:
- SEEK_SET : set the position indicator to the start of the stream ;
- SEEK_CUR : keep the current position indicator ;
- SEEK_END : set the position indicator the end of the stream ;
[edit] Return value
The return value is an integer which mean:
- 0 (zero) : function performed successfully in the stream
- nonzero : an error occurred
- On devices incapable of seeking, the return value is undefined.
Notes that each error number has a distinct meaning. The meaning can be revealed by checking errno.h.
[edit] Example
#include <stdio.h> int main(int argc, char **argv) { FILE *file_pointer; file_pointer = fopen("text.txt","r"); if(fseek(file_pointer, 0, SEEK_SET)) { puts("An error occurred"); } else { char buffer[100]; fgets(buffer, 100, file_pointer); puts("The first line of the file is:"); puts(buffer); } fclose(file_pointer); return 0; }
This program code opens a file called text.txt in read-only mode, tries to force the file pointer to the beginning of the file, and outputs the first line of the file.

