Функция fseek

Прототип функции fseek:

int fseek( FILE * filestream, long int offset, int origin );

Заголовочный файл

Название Язык
stdio.h С
cstdio С++

Описание

Функция fseek перемещает указатель позиции в потоке. Устанавливает внутренний указатель положения в файле, в новую позицию, которая определяются путем добавления смещения к исходному положению.

Внутренний индикатор конца файла EOF очищается после вызова этой функции, и все эффекты от предыдущих вызовов функции ungetc удаляются.

При использовании функции fseek в текстовых файлах со смещением на величину значения, отличного от нуля или значения, полученного функцией ftell, имейте в виду, что на некоторых платформах, в связи с нестандартным форматом преобразования текстовых файлов, может возникнуть ситуация с некорректного позиционирования указателя.

Для потоков, открытых в режиме обновления (чтения + записи), вызов функции fsetpos позволяет переключаться между режимами чтения и записи.

Параметры:

  • filestream
    Указатель на объект типа FILE, идентифицируемый поток.
  • offset
    Количество байт для смещения, относительно некоторого положения указателя.
  • origin
    Позиция указателя, относительно которой будет выполняться смещение. Такая позиция задаётся одной из следующих констант, определённых в заголовочном файле <cstdio>:
SEEK_SET Начало файла
SEEK_CUR Текущее положение файла
SEEK_END Конец файла

Возвращаемое значение

В случае успеха, функция возвращает нулевое значение.
В противном случае, она возвращает ненулевое значение.

Пример: исходный код программы

//пример использования функции fseek

#include <cstdio>
#include <iostream>

int main()
{
  FILE * ptrFile = fopen( "example.txt" , "w" );

  fputs( "This is sample." , ptrFile );       // записать в файл строку
  fseek( ptrFile , 9 , SEEK_SET );            // изменить позицию на 9 байт относительно начала файла
  fputs( "parta" , ptrFile );                 // дописать слово в файл
  fclose ( ptrFile );
  return 0;
}

Пример работы программы

После успешного выполнения этого кода, файл example.txt содержит:

This is sparta.
Автор: Marienko L.
Дата: 15.09.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.