fgetpos
From cppreference.net
|
Определено в заголовочном файле
<stdio.h>
|
||
| (до C99) | ||
| (начиная с C99) | ||
Получает индикатор позиции файла и текущее состояние разбора (если имеется) для файлового потока stream и сохраняет их в объекте, на который указывает pos . Сохраненное значение имеет смысл только как входные данные для fsetpos .
Содержание |
Параметры
| stream | - | файловый поток для проверки |
| pos | - | указатель на объект fpos_t для сохранения индикатора позиции в файле |
Возвращаемое значение
0 при успешном выполнении, иначе ненулевое значение.
Пример
Запустить этот код
#include <assert.h> #include <stdio.h> #include <stdlib.h> int main(void) { // подготовка файла с 4 значениями типа double enum {SIZE = 4}; FILE* fp = fopen("test.bin", "wb"); assert(fp); int rc = fwrite((double[SIZE]){1.1, 2.2, 3.3, 4.4}, sizeof(double), SIZE, fp); assert(rc == SIZE); fclose(fp); // демонстрация использования fsetpos для возврата в начало файла fp = fopen("test.bin", "rb"); fpos_t pos; fgetpos(fp, &pos); // сохраняем начало файла в pos double d; rc = fread(&d, sizeof d, 1, fp); // читаем первый double assert(rc == 1); printf("First value in the file: %.1f\n", d); fsetpos(fp,&pos); // возвращаем позицию файла в начало rc = fread(&d, sizeof d, 1, fp); // снова читаем первый double assert(rc == 1); printf("First value in the file again: %.1f\n", d); fclose(fp); // демонстрация обработки ошибок rc = fsetpos(stdin, &pos); if (rc) perror("could not fsetpos stdin"); }
Вывод:
First value in the file: 1.1 First value in the file again: 1.1 could not fsetpos stdin: Illegal seek
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.21.9.1 Функция fgetpos (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.21.9.1 Функция fgetpos (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.21.9.1 Функция fgetpos (стр: 336)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.19.9.1 Функция fgetpos (стр: 302)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.9.9.1 Функция fgetpos
Смотрите также
|
возвращает текущий индикатор позиции в файле
(функция) |
|
|
перемещает индикатор позиции в файле в указанное место
(функция) |
|
|
перемещает индикатор позиции в файле в указанное место
(функция) |
|
|
C++ documentation
для
fgetpos
|
|