Прототип функции fsetpos:
int fsetpos( FILE * filestream, const fpos_t * pos );
Заголовочный файл
| Название | Язык |
|---|---|
| stdio.h | С |
| cstdio | С++ |
Описание
Функция fsetpos перемещает внутренний указатель положения в файле, связанный с потоком, на новую позицию. Параметр pos является указателем на объект типа fpos_t, значение которого предварительно должно быть получено с помощью вызова функции fgetpos.
Внутренний индикатор конца файла EOF очищается после вызова этой функции, и все эффекты от предыдущих вызовов функции ungetc удаляются.
Для потоков, открытых в режиме обновления (чтения + записи), вызов функции fsetpos позволяет переключаться между режимами чтения и записи.
Параметры:
- filestream
Указатель на объект типаFILE, идентифицируемый поток. - position
Указатель на объект типаfpos_tсодержащий позицию указателя, ранее полученную с помощью функцииfgetpos.
Возвращаемое значение
В случае успеха, функция возвращает нулевое значение.
В противном случае она возвращает ненулевое значение и инициализирует глобальную переменную ERRNO положительным значение, которое может быть интерпретировано функцией perror.
Пример: исходный код программы
//пример использования функции fsetpos
#include <cstdio>
#include <iostream>
int main()
{
FILE * ptrFile = fopen("file.txt","w");
fpos_t position;
fgetpos (ptrFile, &position); // определить текущее положение в файле
fputs("Посмотрел фильм "Вспомнить всё". Вспомнил, что не выключил газ.",
ptrFile); // записать строку в файл
fsetpos(ptrFile, &position); // изменить положение указателя
fputs ("Сходил на ", ptrFile); // заменить слово "Посмотрел" на фразу "Сходил на "
fclose (ptrFile);
return 0;
}
Пример работы программы
После успешного выполнения этого кода, файл с именем file.txt будет содержать:
Комментарии