次の方法で共有


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

参照

参照

CFile クラス

階層図

その他の技術情報

CFile のメンバ