fgetpos
ストリームのファイル位置インジケーターを取得します。
構文
int fgetpos(
FILE *stream,
fpos_t *pos
);
パラメーター
stream
対象のストリーム。
pos
位置インジケーターのストレージ。
戻り値
正常に終了した場合、fgetpos
は 0 を返します。 エラーが発生すると、0 以外の値が返され、errno
次のいずれかのマニフェスト定数 (STDIO で定義されています。H): EBADF
指定されたストリームが有効なファイル ポインターではないか、アクセスできないことを意味します。またはEINVAL
、値または値pos
が無効であることを意味stream
します (null ポインターの場合など)。 pos
ポインターのNULL
場合stream
、関数は「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーを呼び出します。
解説
fgetpos
関数は、stream
引数のファイル位置インジケーターの現在の値を取得し、pos
で示されるオブジェクトに格納します。 fsetpos
関数は、pos
に格納されている情報を後で使用して、fgetpos
が呼び出された時点の位置まで stream
引数のポインターをリセットします。 pos
値は内部形式で格納されます。fgetpos
と fsetpos
でのみ使用される値です。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください。
必要条件
機能 | 必須ヘッダー |
---|---|
fgetpos |
<stdio.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// 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
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示