fgetpos
ストリームのファイル位置インジケーターを取得します。
int fgetpos(
FILE *stream,
fpos_t *pos
);
パラメーター
stream
ターゲット ストリーム。pos
位置インジケーターのストレージ。
戻り値
fgetpos、正常終了した場合は 0 を返します。 失敗すると、0 以外の値を返し、次のマニフェスト定数の 1 種類に errno を設定します (インクルード) を定義する: EBADFのいずれかが null ポインターの場合 pos の stream 値または指定したストリームを意味する値が無効であることを意味する有効なファイル ポインターではなく、アクセス可能、または EINVALなどではありません。 stream または pos が NULL のポインターの場合、関数は パラメーターの検証"に説明されているように、無効なパラメーター ハンドラーを呼び出します。
解説
fgetpos 関数は stream 引数のファイル位置インジケーターおよび格納の現在の値を posが指すオブジェクトに格納します。 fsetpos 関数は pos で fgetpos が呼び出されたときの位置に stream 引数のポインターをリセットするために保存されている情報を使用できます。 pos 値は内部形式で格納および使用に fgetpos と fsetposでのみ使用されます。
必要条件
関数 |
必須ヘッダー |
---|---|
fgetpos |
<stdio.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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