函式原型
FILE_FLAG_OVERLAPPED
檔案或設備被打開或創建異步I / O。
當後續的I / O操作完成這個句柄,OVERLAPPED結構中指定的事件 將被設定為有信號狀態。
如果這個標誌被指定,該檔案可用於同時讀取和寫入操作。
如果沒有指定這個標誌,然後被序列化I / O操作,即使調用讀寫函式指定一個OVERLAPPED結構。
功能說明
從檔案指針指向的位置開始將數據讀出到一個檔案中, 且支持同步和異步操作,
如果檔案打開方式沒有指明 FILE_FLAG_OVERLAPPED的話,當程式調用成功時,它將實際讀出檔案的位元組數保存到lpNumberOfBytesRead指明的地址空間中。
FILE_FLAG_OVERLAPPED 允許對檔案進行重疊操作
如果檔案要互動使用的話,當函式調用完畢時要記得調整檔案指針。
從檔案中讀出數據。與fread函式相比,這個函式要明顯靈活的多。該函式能夠操作通信設備、管道、套接字以及郵槽。
參數說明
HANDLE hFile, 需要讀入數據的檔案指針,這個指針指向的檔案必須是GENERIC_READ 訪問屬性的檔案。
LPVOID lpBuffer,接收數據的緩衝區。
DWORD nNumberOfBytesToRead,指定要讀取的位元組數。
LPDWORD lpNumberOfBytesRead,指向一個DWORD類型變數的指針,用來接收讀取的位元組數。如果下一個參數為NULL,那么一定要傳入這個參數。
LPOVERLAPPED lpOverlapped OVERLAPPED結構體指針,如果檔案是以 FILE_FLAG_OVERLAPPED方式打開的話,那么這個指針就不能為NULL。
FILE_FLAG_OVERLAPPED 允許對檔案進行重疊操作
返回值
調用成功,返回非0
調用不成功,返回為0
會設定GetLastError。如啟動的是一次異步讀操作,則函式會返回零值,並將ERROR_IO_PENDING設定成GetLastError的結果。如結果不是零值,但讀入的位元組數小於nNumberOfBytesToRead參數指定的值,表明早已抵達了檔案的結尾。