Документация по LinuxLinuxDoc.Ru 🔍

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

НАЗВАНИЕ
fgetpos, fseek, fsetpos, ftell, rewind - меняют положение
операции в потоке

СИНТАКСИС

#include

int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(FILE *stream);
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);

ОПИСАНИЕ
Функция fseek устанавливает позицию следующей операции
ввода/вывода в потоке, на который указывает аргумент
stream. Новая позиция получается прибавлением смещения
offset байтов к начальной позиции, определяемой параметром
whence. Если whence определяется как SEEK_SET, SEEK_CUR
или SEEK_END, то смещение будет относиться к началу файла,
текущей позиции указателя или концу файла соответственно.
Успешный вызов функции fseek "очищает" индикатор конца
файла для потока и отменяет влияние функции 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 может быть сложным
объектом, а данные функции могут быть единственным
способом быстро менять позицию в текстовом потоке.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция rewind не возвращает значений. При успешном
завершении вызова fgetpos, fseek, fsetpos возвращают 0, а
ftell возвращает значение текущего смещения. В противном
случае возвращается -1, а в глобальную переменную errno
записывается соответствующий код ошибки.

КОДЫ ОШИБОК
EBADF В указанном потоке stream невозможно изменять
позицию ввода/вывода в файле.

EINVAL Параметр whence в fseek не является SEEK_SET,
SEEK_END или SEEK_CUR.

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

СООТВЕТСТВИЕ СТАНДАРТАМ
Функции fgetpos, fsetpos, fseek, ftell и rewind
соответствуют стандарту ANSI X3.159-1989 (``ANSI C'').
Читать новости Linux в Telegram
Linux - fgetpos, fseek, fsetpos, ftell, rewind - меняют положение операции в потоке
Мы в соцсетях ✉