/* FUNCTION <>---record position in a large stream or file INDEX fgetpos64 ANSI_SYNOPSIS #include int fgetpos64(FILE *<[fp]>, _fpos64_t *<[pos]>); TRAD_SYNOPSIS #include int fgetpos64(<[fp]>, <[pos]>) FILE *<[fp]>; _fpos64_t *<[pos]>; DESCRIPTION Objects of type <> can have a ``position'' that records how much of the file your program has already read. Many of the <> functions depend on this position, and many change it as a side effect. You can use <> to report on the current position for a file identified by <[fp]> that was opened by <>; <> will write a value representing that position at <<*<[pos]>>>. Later, you can use this value with <> to return the file to this position. In the current implementation, <> simply uses a character count to represent the file position; this is the same number that would be returned by <>. RETURNS <> returns <<0>> when successful. If <> fails, the result is <<1>>. Failure occurs on streams that do not support positioning or streams not opened via <>; the global <> indicates these conditions with the value <>. PORTABILITY <> is a glibc extension. No supporting OS subroutines are required. */ #include #ifdef __LARGE64_FILES int _DEFUN (fgetpos64, (fp, pos), FILE * fp _AND _fpos64_t * pos) { _flockfile(fp); *pos = (_fpos64_t)ftello64 (fp); if (*pos != -1) { _funlockfile(fp); return 0; } _funlockfile(fp); return 1; } #endif /* __LARGE64_FILES */