int fseek (FILE *stream, long offset, int origin)
Функция fseek() устанавливает указатель положения в файле, связанном со stream, в соответствии со значениями offset и origin. Ее основное назначение — поддерживать операции ввода/ вывода по произвольному адресу. Аргумент offset — это выраженный в байтах сдвиг от позиции, определяемой origin, до новой позиции. Аргумент origin может принимать значения 0, 1 или 2, причем 0 означает начало файла, 1 — текущую позицию, а 2 — конец файла. В stdio.h определены следующие макросы для origin
Имя | Позиция origin |
---|---|
SEEK_SET | Начало файла |
SEEK_CUR | Текущая позиция |
SEEK_END | Конец файла |
В случае успеха fseek() возвращает 0. Ненулевое значение означает неудачу. С помощью fseek() можно переместить указатель положения в любую точку внутри файла и даже за его пределы после конца файла. Однако попытка установить указатель перед началом файла будет воспринята как ошибка.
Функция fseek() сбрасывает флаг конца файла, связанный с указанным потоком. Кроме того, она обнуляет любую предыдущую ungetc() в том же потоке.