CFile::Seek
更新 : 2007 年 11 月
既に開かれているファイルのポインタを移動します。
virtual ULONGLONG Seek(
LONGLONG lOff,
UINT nFrom
);
パラメータ
lOff
ポインタを移動するバイト数。nFrom
ポインタの移動モード。次のいずれかの値を指定します。CFile::begin ファイル ポインタをファイルの先頭から lOff バイトの位置へ移動します。
CFile::current ファイル ポインタをファイルの現在の位置から lOff バイトの位置へ移動します。
CFile::end ファイル ポインタをファイルの末尾から lOff バイト移動します。既存ファイル内でポインタを移動するときは負の値を設定します。正の値を設定すると、ポインタがファイルの末尾を越えて先に移動してしまいます。
戻り値
要求した位置が正しい場合は、Seek 関数は、ファイルの先頭からの新しいバイト オフセットを返します。それ以外の場合は戻り値は未定義のまま、CFileException オブジェクトがスローされます。
解説
Seek 関数を使用すると、相対的または絶対的に指定した量だけポインタを移動することによって、ファイルの内容にランダムにアクセスできます。シーク中は、データは実際には読み取られません。要求した位置がファイル サイズより大きい場合、その位置までファイルの長さが拡張され、例外はスローされません。
ファイルが開かれたとき、ファイル ポインタはオフセット 0 に設定されます。これが、ファイルの先頭を表します。
使用例
CFile cfile;
cfile.Open(_T("Seek_File.dat"), CFile::modeCreate |
CFile::modeReadWrite);
LONGLONG lOffset = 1000;
ULONGLONG lActual;
lActual = cfile.Seek(lOffset, CFile::begin);
必要条件
ヘッダー : afx.h