The stdio C library function int fsetpos(FILE *stream, const fpos_t *pos); sets the current position in the stream to the position represented by pos. The argument pos is a pointer of type fpos_t object whose value was previously obtained by a call to fgetpos function.
Function prototype of fsetpos
int fsetpos(FILE *stream, const fpos_t *pos);
- stream : A pointer to a FILE object which identifies a stream.
- pos : This is a Pointer to a fpos_t object containing a position previously obtained by calling fgetpos function.
Return value of fsetpos
This function returns zero on success. In case of error it returns a non-zero value and sets the global variable errno to a system-specific positive value.
C program to show the use of fsetpos function
The following program shows the use of fgetpos function to get the position of first character in file and store it in a variable of type fpos_t. Later we will use this value to reset the file position indicator to point to first character of the file using fsetpos function. As a result, below program first prints the first four characters of the file then it again starts printing from the first character of the file.
#include <stdio.h> int main(){ FILE *file; int ch, counter; fpos_t position; file = fopen("textFile.txt","r"); if (file==NULL){ perror("Error: Unable to open a file"); return(1); } /* Storing position of first character in file */ fgetpos(file, &position); for (counter = 0; counter < 23; counter++){ if(counter == 4){ /* Resetting file position pointer to starting position*/ fsetpos(file, &position); } ch = fgetc(file); printf("%c",ch); } fclose(file); return 0; }
Output
TechTechCrashCourse.com