14.2.19 File Positioning

Last-modified: 2025-03-23 (日) 19:27:32

14.2.19 ファイルの位置指定

特定のファイルのファイル ポインターの位置を設定および決定するための 3 つの関数が用意されています。

: pos = ftell (fid)

ファイル記述子fidで指定されたファイルの先頭からの文字数としてファイル ポインターの位置を返します。

参照: fseek、frewind、feof、fopen。

: status = fseek (fid, offset)

: status = fseek (fid, offset, origin)
ファイル ポインタをファイルfid内の位置オフセットに設定します。

ポインタはoriginからoffset文字分の位置に配置されます 。 origin は、定義済み変数 (先頭)、 (現在の位置)、 (ファイルの末尾) のいずれか、または文字列、、のいずれかに なります。 originが省略された場合は、が想定されます。 offset は正、負、またはゼロになりますが、originとoffsetのすべての組み合わせが実現できるわけではありません。 SEEK_SETSEEK_CURSEEK_END"bof""cof""eof"SEEK_SET

fseek成功した場合は 0 を返し、エラーの場合は -1 を返します。

参照: fskipl、frewind、ftell、fopen、SEEK_SET、SEEK_CUR、SEEK_END。

: fseek_origin = SEEK_SET ()

fseekファイルの先頭を基準にしてファイル ポインターを配置するため に渡す数値を返します。

参照: SEEK_CUR、SEEK_END、fseek。

: fseek_origin = SEEK_CUR ()

fseek現在の位置を基準にしてファイル ポインターを配置する ために渡す数値を返します。

参照: SEEK_SET、SEEK_END、fseek。

: fseek_origin = SEEK_END ()

fseekファイルの末尾を基準としてファイル ポインターを配置するため に渡す数値を返します。

参照: SEEK_SET、SEEK_CUR、fseek。

: frewind (fid)

: status = frewind (fid)

ファイル ポインタを、ファイル記述子fidで指定されたファイルの先頭に移動します。

出力ステータスが要求された場合frewind、成功した場合は 0 を返し、エラーが発生した場合は -1 を返します。

プログラミングノート:frewindは と同等です 。 fseek (fid, 0, SEEK_SET)

参照: fseek、ftell、fopen。

次の例では、現在のファイルの位置を変数に格納し marker、ポインターをファイルの先頭に移動し、4 文字を読み取ってから元の位置に戻ります。

marker = ftell (myfile);
frewind (myfile);
fourch = fgets (myfile, 4);
fseek (myfile, marker, SEEK_SET);