0

私はこのようなものを持っていると仮定します

readFile(.....&ol) //with overlapped

while(1){

////////.....
waitforsingleobject(//ol.hevent);

////

readfile(.....&ol)

}

両方の読み取りファイルがファイルの先頭から読み取られることに気づきました...なぜですか?オーバーラップ/非同期のない通常の読み取りファイルでは、2番目の読み取りファイルは最初の読み取りファイルが終了したところから始まります。

4

1 に答える 1

1

ファイルでオーバーラップ I/O を使用する場合は、OVERLAPPEDオブジェクトへのポインターを渡します。この場合はol.

構造体には 2 つのOVERLAPPED変数OffsetOffsetHigh. これら 2 つの変数は 64 ビット整数に結合さOffsetれ、下位 DWORD とOffsetHigh上位 DWORD であり、I/O 操作を実行するためのオフセットとして使用されます。

したがって、たとえば、ReadFileファイルの 8 バイト目から a を開始する場合は、Offset変数を 8 に設定し、変数を 0 に設定してから、 toOffsetHighに渡します。OVERLAPPEDReadFile

于 2011-04-11T12:58:38.437 に答える