Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Получает индикатор позиции файла потока.
Синтаксис
int fgetpos(
FILE *stream,
fpos_t *pos
);
Параметры
stream
Целевой поток.
pos
Хранилище индикатора позиции.
Возвращаемое значение
В случае успеха fgetpos возвращает 0. При сбое возвращает ненулевое значение и задает errno одно из следующих констант манифеста (определено в STDIO. H): EBADFэто означает, что указанный поток не является допустимым указателем файла или недоступен, или EINVALозначает stream , что значение или значение pos недопустимо, например, если имеет значение NULL. Если stream или pos является NULL указателем, функция вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров.
Замечания
Функция fgetpos возвращает текущее значение индикатора позиции файла для аргумента stream и сохраняет его в объекте, на который указывает pos. После этого функция fsetpos может использовать данные, хранящиеся в указателе pos, для сброса указателя аргумента stream в позицию на момент времени, когда была вызвана функция fgetpos. Значение pos хранится во внутреннем формате и предназначено для использования только в функциях fgetpos и fsetpos.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
| Function | Обязательный заголовок |
|---|---|
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