Прототип функции 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
содержит: