CFile::LockRange
更新 : 2007 年 11 月
開いているファイルのバイト列をロックします。ファイルが既にロックされているときは、例外をスローします。
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