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