1
我寫過一個程序,它從一個文件中讀取文本並將其複製到一個新文件中。使用while循環和ReadFile/Writefile函數,我的程序可以工作......但是我的程序不會停止運行,除非我強制停止它。我在猜測,我沒有正確地關閉手柄,或者我的while循環可能會設置錯誤。一旦我強制停止我的程序,文件被成功地複製到一個新名稱的新位置。win32使用while循環與C中的ReadFile/WriteFile從一個程序寫入新的程序
int n = 0;
while(n=ReadFile(hFileSource, buffer, 23, &dwBytesRead, NULL)){
WriteFile(hFileNew, buffer, dwBytesRead, &dwBytesWritten, NULL);
}
CloseHandle(hFileSource);
CloseHandle(hFileNew);
return 0;
我會選擇將循環改爲do/while並在循環內移動ReadFile()調用,以便它可以對ReadFile()進行錯誤處理並報告任何讀取錯誤並丟棄不完整的目標文件,如果源文件無法正確讀取文件。否則,你必須在循環結束後檢查錯誤,但是你不知道它是否是錯誤的ReadFile()或WriteFile()。 –