fseek function in c: The function int fseek(FILE *stream, long int offset, int where); sets the position indicator of the stream to a new position. The new position is defined by adding offset to a reference position specified by where. The value of where should be one of the following constants defined in stdio.h header file.
| Constant | Description |
|---|---|
| SEEK_SET | Beginning of file |
| SEEK_END | End of file |
| SEEK_CUR | Current position of the file pointer |
Function prototype of fseek
int fseek(FILE *stream, long int offset, int where);
- stream : This is a pointer to a FILE object which identifies a stream.
- offset : This is the number of bytes to offset from where.
- where : This is the position from where offset is added to set new position of file position indicator.
Return value of fseek
This function returns a zero on success otherwise it returns a non-zero value.
C program using fseek function
The following program shows the use of fseek function to set the file position indicator to 4th position instead of starting from 0th position.

#include <stdio.h>
int main(){
FILE *file;
int ch;
/* Open a file for reading */
file = fopen("textFile.txt","w+");
if(file == NULL){
perror("Error: Unable to open a file");
return(1);
} else {
fputs("TechCrashCourse.com", file);
/*Setting file pointer position to 5th Character */
fseek(file, 4, SEEK_SET);
/* It will skip first four characters */
while(!feof(file)){
ch = fgetc(file);
printf("%c", ch);
}
fclose(file);
}
return(0);
}
</stdio.h>
Output
CrashCourse.com