6.7 fsetpos64—restore position of a large stream or file

Synopsis

#include <stdio.h>
int fsetpos64(FILE *fp, const _fpos64_t *pos);
int _fsetpos64_r(struct _reent *ptr, FILE *fp, 
    const _fpos64_t *pos);

Description
Objects of type FILE can have a “position” that records how much of the file your program has already read. Many of the stdio functions depend on this position, and many change it as a side effect.

You can use fsetpos64 to return the large file identified by fp to a previous position *pos (after first recording it with fgetpos64).

See fseeko64 for a similar facility.


Returns
fgetpos64 returns 0 when successful. If fgetpos64 fails, the result is 1. The reason for failure is indicated in errno: either ESPIPE (the stream identified by fp doesn’t support 64-bit repositioning) or EINVAL (invalid file position).


Portability
fsetpos64 is a glibc extension.

Supporting OS subroutines required: close, fstat, isatty, lseek64, read, sbrk, write.