Provided by: manpages-ru-dev_4.19.0-7_all bug

ИМЯ

       fgetpos, fseek, fsetpos, ftell, rewind - меняют положение в потоке

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <stdio.h>

       int fseek(FILE *stream, long offset, int whence);
       long ftell(FILE *stream);

       void rewind(FILE *stream);

       int fgetpos(FILE *restrict stream, fpos_t *restrict pos);
       int fsetpos(FILE *stream, const fpos_t *pos);

ОПИСАНИЕ

       Функция  fseek()  устанавливает  положение  файлового  индикатора  в  потоке,  на  который
       указывает аргумент stream. Новое  положение  (в  байтах)  получается  прибавлением  offset
       байтов  к  положению,  которое  задаётся  параметром  whence.  Если  значение whence равно
       SEEK_SET, SEEK_CUR или  SEEK_END,  то  смещение  указывается  относительно  начала  файла,
       текущего  положения  указателя  или  конца  файла,  соответственно. Успешный вызов функции
       fseek() очищает (clear) индикатор конца файла потока и отменяет влияние функции  ungetc(3)
       на этот же поток.

       Функция  ftell() возвращает текущее значение файлового индикатора положения для потока, на
       который указывает stream.

       Функция rewind()  устанавливает  файловый  индикатор  положения  для  потока,  на  который
       указывает stream, равным началу файла. Эта функция эквивалентна вызову:

              (void) fseek(stream, 0L, SEEK_SET)

       хотя в этом случае также сбрасывается индикатор ошибок потока (смотрите clearerr(3)).

       Функции  fgetpos()  и  fsetpos() эквивалентны ftell() и fseek() (где значение whence равно
       SEEK_SET); они сохраняют или устанавливают текущее значение файлового смещения в объектах,
       определяемых  pos. В некоторых не-UNIX системах объект fpos_t может быть сложным объектом,
       а данные функции могут  быть  единственным  переносимым  способом  изменения  положения  в
       текстовом потоке.

       If  the stream refers to a regular file and the resulting stream offset is beyond the size
       of the file, subsequent writes will extend the file with a hole, up to the offset,  before
       committing any data.  See lseek(2)  for details on file seeking semantics.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Функция  rewind()  не  возвращает  значений.  При  успешном  выполнении функции fgetpos(),
       fseek(), fsetpos() возвращают 0,  а  ftell()  возвращает  значение  текущего  смещения.  В
       противном случае возвращается -1, а в errno записывается соответствующий код ошибки.

ОШИБКИ

       EINVAL Значение whence в fseek() не равно SEEK_SET, SEEK_ или SEEK_CUR. Или результирующее
              смещение файла получается отрицательным.

       ESPIPE Связанный со stream файловый дескриптор не допускает перемоток (верно для  каналов,
              FIFO или сокетов).

       При  ошибках  функции fgetpos(), fseek(), fsetpos() и ftell() устанавливают значение errno
       равным значению, определённому в функциях fflush(3), fstat(2), lseek(2) и malloc(3).

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌───────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ИнтерфейсАтрибутЗначение │
       ├───────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │fseek(), ftell(), rewind(), fgetpos(), fsetpos()       │ Безвредность в нитях │ MT-Safe  │
       └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008, C99.

СМ. ТАКЖЕ

       lseek(2), fseeko(3)

ПЕРЕВОД

       Русский   перевод   этой    страницы    руководства    был    сделан    Azamat    Hackimov
       <azamat.hackimov@gmail.com>,   Dmitry   Bolkhovskikh  <d20052005@yandex.ru>,  Yuri  Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.