int fgetpos ( FILE * fp, fpos_t * pos ); 파일 스트림의 파일 position을 구하는 함수
입력 매개 변수 리스트
fp 파일 스트림
pos 파일 position을 읽어올 메모리 주소
반환 값
성공 시 0, 실패 시 0이 아닌 수
fpos_t 형식은 64비트 정수로 매우 큰 (2의 63승 -1 바이트) 파일에서의 파일 position을 확인할 수 있습니다. 다음의 사용 예는 4G파일을 만든 후에 파일 position을 확인하는 코드입니다. 테스트 후에 data.txt 파일을 지우세요.
사용 예
//C언어 표준 라이브러리 함수 가이드 //int fgetpos ( FILE * fp, fpos_t * pos ); 파일 스트림의 파일 position을 구하는 함수 //커다란 파일을 기록 한 후에 파일 스트림의 position을 확인 /***************************************************************************/ /* 주의: 이 프로그램을 실행하면 4G 파일이 만들어 집니다. */ /* 테스트 후에 반드시 제거하세요. */ /***************************************************************************/ #include <stdio.h> //테스트를 위해 400kbytes 크기의 구조체 정의 typedef struct { char buf[400000]; }BigData; int main (void) { FILE * fp; fpos_t offset; int i; BigData bigdata={'a'}; fopen_s (&fp,"data.txt","wb");//쓰기 모드로 파일 열기 if (fp==NULL) { perror ("error fopen"); return 0; } //출력 파일 스트림에 400kbytes 데이터를 10000번 출력 for(i=0;i<10000;i++) { fwrite(&bigdata,sizeof(BigData),1,fp); } fgetpos(fp,&offset);//파일 스트림의 파일 position 확인 printf("%lld\n",offset); //파일 positon 출력 fclose (fp);//출력 파일 스트림 닫기 return 0; }
출력
4000000000