Win32 API の ReadFile 関数について 2 つの質問がありました。まず第一に、それを考えると
BOOL WINAPI ReadFile(
_In_ HANDLE hFile,
_Out_ LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_opt_ LPDWORD lpNumberOfBytesRead,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
3 番目と 4 番目のパラメーターは DWORD 型で、オーバーフローなしで最大 1^32 を保持できます。ReadFile は、一度に 1^32 バイト未満のデータを持つファイルしか読み取れないということですか? そうであれば、1^32 より大きいファイルを読みたいので、ReadFile を次のようなループに入れます。
char buffer[1<<32];
while(!EOF){
ReadFIle(filename,buffer,1^32,bytesout,NULL);
SomeFunctionToExtractDataFromBuffer(buffer)
}
ループが反復ごとにバッファを上書きする傾向があると仮定すると、この設計が機能するために、ReadFile はファイル内で以前の読み取りが行われた場所を記憶する必要がありますか? または、これを達成する他の方法があります。どうもありがとう