다음을 통해 공유


fgetpos

스트림의 파일 위치 표시기를 가져옵니다.

구문

int fgetpos(
   FILE *stream,
   fpos_t *pos
);

매개 변수

stream
대상 스트림입니다.

pos
위치 표시기 스토리지입니다.

반환 값

성공하면 fgetpos가 0을 반환합니다. 실패 시 0이 아닌 값을 반환하고 다음 매니페스트 상수(STDIO에 정의됨) 중 하나로 설정합니다errno. H): EBADF즉, 지정된 스트림이 유효한 파일 포인터가 아니거나 EINVAL액세스할 수 없거나, null 포인터인 경우와 같이 값이나 값 pos 이 유효하지 않음을 의미합니다stream. 포인터이거나 pos 포인터인 경우 stream 함수는 NULL 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다.

설명

fgetpos 함수는 stream 인수 파일 위치 표시기의 현재 값을 가져오고 pos가 가리키는 개체에 저장합니다. fsetpos 함수는 나중에 pos에 저장된 정보를 사용하여 fgetpos가 호출되었던 위치에 대한 stream 인수의 포인터를 재설정합니다. pos 값은 내부 형식으로 저장되고 fgetposfsetpos에서만 사용됩니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

요구 사항

함수 필수 헤더
fgetpos <stdio.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// crt_fgetpos.c
// This program uses fgetpos and fsetpos to
// return to a location in a file.

#include <stdio.h>

int main( void )
{
   FILE   *stream;
   fpos_t pos;
   char   buffer[20];

   if( fopen_s( &stream, "crt_fgetpos.txt", "rb" ) ) {
      perror( "Trouble opening file" );
      return -1;
   }

   // Read some data and then save the position.
   fread( buffer, sizeof( char ), 8, stream );
   if( fgetpos( stream, &pos ) != 0 ) {
      perror( "fgetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fgetpos: %.13s\n", buffer );

   // Restore to old position and read data
   if( fsetpos( stream, &pos ) != 0 ) {
      perror( "fsetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fsetpos: %.13s\n", buffer );
   fclose( stream );
}

입력: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

출력 crt_fgetpos.txt

after fgetpos: gets a stream
after fsetpos: gets a stream

참고 항목

스트림 I/O
fsetpos