Функция fsetpos

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

Сходил на  фильм «Вспомнить всё». Вспомнил, что не выключил газ.
Автор: Marienko L.
Дата: 15.09.2012
Поделиться:

Комментарии

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

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