### 6.5 `fseeko64`—set file position for large file ¶

Synopsis

    #include <stdio.h>
    int fseeko64(FILE *fp, _off64_t offset, int whence);
    int _fseeko64_r (struct _reent *ptr, FILE *fp,
        _off64_t offset, int whence);

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 `fseeko64` to set the position for the file identified by fp that was opened via `fopen64`. The value of offset determines the new position, in one of three ways selected by the value of whence (defined as macros in ‘`stdio.h`’):

`SEEK_SET`—offset is the absolute file position (an offset from the beginning of the file) desired. offset must be positive.

`SEEK_CUR`—offset is relative to the current file position. offset can meaningfully be either positive or negative.

`SEEK_END`—offset is relative to the current end of file. offset can meaningfully be either positive (to increase the size of the file) or negative.

See `ftello64` to determine the current file position.

Returns
`fseeko64` returns `0` when successful. On failure, the result is `EOF`. The reason for failure is indicated in `errno`: either `ESPIPE` (the stream identified by fp doesn’t support repositioning or wasn’t opened via `fopen64`) or `EINVAL` (invalid file position).

Portability
`fseeko64` is a glibc extension.

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