fgetpos
Определена в заголовочном файле <stdio.h> | ||
|---|---|---|
int fgetpos( FILE* stream, fpos_t* pos ); | (до C99) | |
int fgetpos( FILE* restrict stream, fpos_t* restrict pos ); | (начиная с C99) |
Получает индикатор положения в файле и текущее состояние разбора (если оно есть) для файлового потока stream и сохраняет их в объекте, на который указывает pos. Сохранённое значение имеет смысл только в качестве входных данных для fsetpos.
Параметры
| stream | - | файловый поток для проверки |
| pos | - | указатель на объект fpos_t, в который будет сохранён индикатор положения в файле |
Возвращаемое значение
0 в случае успеха, в противном случае — ненулевое значение.
Пример
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
// prepare a file holding 4 values of type 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);
// demo using fsetpos to return to the beginning of a file
fp = fopen("test.bin", "rb");
fpos_t pos;
fgetpos(fp, &pos); // store start of file in pos
double d;
rc = fread(&d, sizeof d, 1, fp); // read the first double
assert(rc == 1);
printf("First value in the file: %.1f\n", d);
fsetpos(fp,&pos); // move file position back to the start of the file
rc = fread(&d, sizeof d, 1, fp); // read the first double again
assert(rc == 1);
printf("First value in the file again: %.1f\n", d);
fclose(fp);
// demo error handling
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++ для fgetpos |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/io/fgetpos