Функции библиотеки 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().
Пример
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.
Теперь давайте используем следующую программу для просмотра содержимого вышеуказанного файла:
Пример
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);
}