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);