fgetpos() — 파일 위치 가져오기
형식
#include <stdio.h>
int fgetpos(FILE *stream, fpos_t *pos);
언어 레벨
ANSI
스레드세이프
예
설명
fgetpos() 함수는 stream과 연관된 파일 포인터의 현재 위치를 pos가 가리키는 오브젝트에 저장합니다. pos가 가리키는 값을 fsetpos() 호출에서 나중에 사용하여 stream을 재배치할 수 있습니다.
리턴값
fgetpos() 함수는 성공하면 0을 리턴합니다. 오류 시 0이 아닌 값을 리턴하고 errno를 0이 아닌 값으로 설정합니다.
errno 값을 다음으로 설정할 수 있습니다.
- 값
- 의미
- EBADF
- 파일 포인터 또는 설명자가 유효하지 않습니다.
- EBADSEEK
- 찾기 조작의 잘못된 오프셋입니다.
- ENODEV
- 잘못된 장치에서 조작을 시도했습니다.
- ENOTOPEN
- 파일이 열려 있지 않습니다.
- ERECIO
- 레코드 I/O를 위해 파일이 열려 있습니다.
- ESTDERR
- stderr을 열 수 없습니다.
- ESTDIN
- stdin을 열 수 없습니다.
- ESTDOUT
- stdout을 열 수 없습니다.
- EIOERROR
- 회복 불가능한 I/O 오류가 발생했습니다.
- EIORECERR
- 회복 가능한 I/O 오류가 발생했습니다.
type=record로 열린 파일에는 fgetpos() 함수가 지원되지 않습니다.
예
이 예는 읽기 위해 myfile 파일을 열고 현재 파일 포인터 위치를
pos 변수에 저장합니다.
#include <stdio.h>
FILE *stream;
int main(void)
{
int retcode;
fpos_t pos;
stream = fopen("mylib/myfile", "rb");
/* The value returned by fgetpos can be used by fsetpos */
/* to set the file pointer if 'retcode' is 0 */
if ((retcode = fgetpos(stream, &pos) == 0)
printf("Current position of file pointer found\n");
fclose(stream);
}