6.6 fgetpos64—record position in a large stream or file

Synopsis

#include <stdio.h>
int fgetpos64(FILE *fp, _fpos64_t *pos);
int _fgetpos64_r(struct _reent *ptr, FILE *fp, 
    _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 fgetpos64 to report on the current position for a file identified by fp that was opened by fopen64; fgetpos will write a value representing that position at *pos. Later, you can use this value with fsetpos64 to return the file to this position.

In the current implementation, fgetpos64 simply uses a character count to represent the file position; this is the same number that would be returned by ftello64.


Returns
fgetpos64 returns 0 when successful. If fgetpos64 fails, the result is 1. Failure occurs on streams that do not support positioning or streams not opened via fopen64; the global errno indicates these conditions with the value ESPIPE.


Portability
fgetpos64 is a glibc extension.

No supporting OS subroutines are required.