6.4 ftello64—return position in a stream or file

Synopsis

#include <stdio.h>
_off64_t ftello64(FILE *fp);
_off64_t _ftello64_r(struct _reent *ptr, FILE *fp);

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.

The result of ftello64 is the current position for a large file identified by fp. If you record this result, you can later use it with fseeko64 to return the file to this position. The difference between ftello and ftello64 is that ftello returns off_t and ftello64 is designed to work for large files (>2GB) and returns _off64_t.

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

The function exists only if the __LARGE64_FILES flag is defined. An error occurs if the fp was not opened via fopen64.


Returns
ftello64 returns the file position, if possible. If it cannot do this, it returns -1. Failure occurs on streams that do not support positioning or not opened via fopen64; the global errno indicates this condition with the value ESPIPE.


Portability
ftello64 is a glibc extension.

No supporting OS subroutines are required.