fgetpos
From cppreference.net
|
헤더 파일에 정의됨
<stdio.h>
|
||
| (C99 이전) | ||
| (C99 이후) | ||
파일 스트림 stream 의 파일 위치 표시자와 현재 파싱 상태(있는 경우)를 획득하여 pos 가 가리키는 객체에 저장합니다. 저장된 값은 fsetpos 에 대한 입력으로만 의미가 있습니다.
목차 |
매개변수
| stream | - | 검사할 파일 스트림 |
| pos | - | 파일 위치 표시자를 저장할 fpos_t 객체에 대한 포인터 |
반환값
0 성공 시 0, 그렇지 않으면 0이 아닌 값.
예제
이 코드 실행
#include <assert.h> #include <stdio.h> #include <stdlib.h> int main(void) { // double 타입의 4개 값을 보유하는 파일 준비 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 함수 (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 The fgetpos function
참고 항목
|
현재 파일 위치 지시자를 반환합니다
(함수) |
|
|
파일 위치 지시자를 파일의 특정 위치로 이동합니다
(함수) |
|
|
파일 위치 지시자를 파일의 특정 위치로 이동합니다
(함수) |
|
|
C++ documentation
for
fgetpos
|
|