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
값은 내부 형식으로 저장되고 fgetpos
및 fsetpos
에서만 사용됩니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 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