fseek() is used to move the file pointer associated with a given file to a specific position.
Syntax of fseek()
The fseek() syntax is:
int fseek(FILE *pointer, long int offset, int position);
Parameters
- pointer: It is the pointer to a FILE object that identifies the stream.
- offset: It is the number of bytes to offset from the position
-
position: It is the position from where the offset is added. Position defines the point with respect to which the file pointer needs to be moved. It has three values:
- SEEK_END: It denotes the end of the file.
- SEEK_SET: It denotes starting of the file.
- SEEK_CUR: It denotes the file pointer’s current position.
Return Value
- It returns zero if successful, or else it returns a non-zero value.
Example
The below C Program demonstrates the use of fseek() function.
C
// C Program to demonstrate the use of fseek() #include <stdio.h> int main()
{ FILE * fp;
fp = fopen ( "test.txt" , "r" );
// Moving pointer to end
fseek (fp, 0, SEEK_END);
// Printing position of pointer
printf ( "%ld" , ftell (fp));
return 0;
} |
Suppose the file test.txt contains the following data:
"Someone over there is calling you. we are going for work. take care of yourself."
Output
81
Explanation
When we implement fseek(), we move the pointer by 0 distance with respect to the end of the file i.e. pointer now points to the end of the file. Therefore the output is 81.
Related Articles: