fgetpos
取得資料流的檔案位置的指標。
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。
需求
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
.NET Framework 對等用法
System::IO::FileStream::Position