Функции библиотеки C -fsetpos()

Стандартная библиотека C - <stdio.h>

Описание

Функции библиотеки Cint fsetpos(FILE *stream, const fpos_t *pos)Устанавливает позицию файла заданного потокаstreamв заданную позицию. Параметрыpos— это позиция, заданная функцией fgetpos.

Объявление

Ниже приведено объявление функции fsetpos().

int fsetpos(FILE *stream, const fpos_t *pos)

Параметр

  • stream-- Это указатель на объект FILE, который идентифицирует поток.
  • pos-- Это указатель на объект fpos_t, содержащий позицию, ранее полученную с помощью fgetpos.

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

При успешном выполнении функция возвращает ноль; в противном случае она возвращает ненулевое значение и устанавливает глобальную переменнуюerrnoв положительное значение, которое можно интерпретировать с помощью perror.

Пример

В следующем примере демонстрируется использование функции fsetpos().

Пример

#include <stdio.h>

int main ()
{
   FILE *fp;
   fpos_t position;

   fp = fopen("file.txt","w+");
   fgetpos(fp, &position);
   fputs("Hello, World!", fp);
 
   fsetpos(fp, &position);
   fputs("This will overwrite the previous content", fp);
   fclose(fp);
   
   return(0);
}

Давайте скомпилируем и запустим вышеуказанную программу, которая создаст файлfile.txt, содержимое которого выглядит следующим образом. Сначала мы используемfgetpos()Функция получает начальную позицию файла, затем мы записываем в файлHello, World!, затем мы используемfsetpos()функцию, чтобы сбросить указатель записи в начало файла, перезаписав файл следующим содержимым:

This will overwrite the previous content.

Теперь давайте используем следующую программу для просмотра содержимого вышеуказанного файла:

Пример

#include <stdio.h>

int main ()
{
   FILE *fp;
   int c;

   fp = fopen("file.txt","r");
   while(1)
   {
      c = fgetc(fp);
      if( feof(fp) )
      {
          break ;
      }
      printf("%c", c);
   }
   fclose(fp);
   return(0);
}

Стандартная библиотека C - <stdio.h>

Другие расширения