Namespaces
Variants

fgetpos

cppreference.net에서
< C | io
 
 
파일 입출력
타입과 객체
        
함수
파일 접근
(C95)
서식 없는 입출력
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

서식 있는 입력
 
헤더에 정의됨 <stdio.h>
int fgetpos( FILE* stream, fpos_t* pos );
(until C99)
int fgetpos( FILE* restrict stream, fpos_t* restrict pos );
(since C99)

파일 스트림 stream의 파일 위치 표시자와 현재 구문 분석 상태(있는 경우)를 가져와서 pos가 가리키는 객체에 저장합니다. 저장된 값은 fsetpos에 대한 입력으로만 의미가 있습니다.

매개변수

stream - 검사할 파일 스트림
pos - 파일 위치 표시자를 저장할 fpos_t 객체에 대한 포인터

반환값

0 성공 시 0, 그렇지 않으면 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 함수 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.21.9.1 fgetpos 함수 (p: TBD)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.21.9.1 fgetpos 함수 (p: 336)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.19.9.1 fgetpos 함수 (p: 302)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.9.9.1 fgetpos 함수

같이 보기

현재 파일 위치 표시자를 반환합니다
(함수)
파일 위치 표시자를 파일 내 특정 위치로 이동합니다
(함수)
파일 위치 표시자를 파일 내 특정 위치로 이동합니다
(함수)
C++ 문서 에 대한 fgetpos