背景:我用HANDLE m_hTSFile=CreateFile(m_strFileName, GENERIC_WRITE |GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, 0)创建一个文件,之后用WriteFile写文件,假设文件空间只有100MB,当写到100MB后我用SetFilePointer(m_hTSFile, 0, NULL, FILE_BEGIN)把文件指针重新指到文件开头,再用WriteFile来写文件。现在问题来了:当我用WriteFile进行第一趟写的时候,write一个数据(大小为16KB)基本不花时间,可当文件写满100MB之后我把文件指针重新指到文件开头继续写,此时write一个数据(大小同样为16KB)却要花几十个milliseconds,这是为什么?30分奉上等着您!
HANDLE hFile, // handle to file
LPCVOID lpBuffer, // data buffer
DWORD nNumberOfBytesToWrite, // number of bytes to write
LPDWORD lpNumberOfBytesWritten, // number of bytes written
LPOVERLAPPED lpOverlapped // overlapped buffer
);
最后一个参数