次の方法で共有


CFile::LockRange

開いているファイルのバイト列をロックします。ファイルが既にロックされているときは、例外をスローします。

virtual void LockRange(
   ULONGLONG dwPos,
   ULONGLONG dwCount 
);

パラメーター

  • dwPos
    ロックするバイト列の先頭のバイト オフセット。

  • dwCount
    ロックする範囲のバイト数。

解説

ファイル内のバイト範囲をロックすると、ほかのプロセスはそれらのバイト範囲にアクセスできなくなります。 ファイル内の複数の領域をロックできますが、重なり合っている領域はロックできません。

領域のロックを解除するときは、UnlockRange メンバー関数を使います。そのとき、前にロックした領域と正確に一致する領域のロックを解除してください。 LockRange 関数は、隣接する領域をマージしないため、ロックされた 2 つの領域が隣接する場合でも、個別にロックを解除する必要があります。

注意

この関数は、CMemFile 派生クラスでは使用できません。

使用例

CFile cfile;
cfile.Open(_T("LockRange_File.dat"), CFile::modeCreate |
   CFile::modeReadWrite);
ULONGLONG dwPos = 10;
ULONGLONG dwCount = 100;
cfile.LockRange(dwPos, dwCount);

// do something with the file

cfile.UnlockRange(dwPos, dwCount);

必要条件

**ヘッダー:**afx.h

参照

参照

CFile クラス

階層図

CFile::UnlockRange

その他の技術情報

CFile のメンバー