Syntax
#include <stdio.h> int fsetpos(FILE *stream, const fpos_t *pos);Description
fsetpos moves any file position associated with stream to a new location within the file according to the value pointed to by pos. The value of pos was obtained by a previous call to the fgetpos library function.
If successful, fsetpos clears the end-of-file indicator, and undoes the effect of any previous ungetc function on the same stream.
After the fsetpos call, the next operation on a stream in update mode may be input or output.
If fsetpos successfully changes the current position of the file, it returns 0. A nonzero return value indicates an error.
This example opens a file myfile.dat for reading. After performing input operations (not shown), fsetpos moves the file pointer to the beginning of the file and rereads the first byte.
#include <stdio.h>
FILE *stream;
int main(void)
{
int retcode;
fpos_t pos,pos1,pos2,pos3;
char ptr[20]; /* existing file 'myfile.dat' has 20 byte records */
/* Open file, get position of file pointer, and read first record */
stream = fopen("myfile.dat", "rb");
fgetpos(stream, &pos);
pos1 = pos;
if (!fread(ptr, sizeof(ptr), 1, stream))
perror("fread error");
/* Perform a number of read operations - the value of 'pos' changes */
/* Re-set pointer to start of file and re-read first record */
fsetpos(stream, &pos1);
if (!fread(ptr, sizeof(ptr), 1, stream))
perror("fread error");
fclose(stream);
return 0;
}
Related Information