当采用多个WriteFile函数异步地给一个文件写入数据时,会遇到后写的数据对前面已写数据的覆盖问题,即使是采用SetFilePointer这个函数来把文件指针指向文件末尾再追加,也会造成覆盖的问题。
对一个文件已异步方式进行操作时打开文件方式如下:
HANDLE hDevice3 = CreateFile("D://douyun.txt",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ, NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
NULL);
主要是要设置倒数第二个参数的属性 FILE_FLAG_OVERLAPPED
overlap4.hEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
写操作为
WriteFile( hDevice3,
pbuffer2,
len2, &dwWrite2,
&overlap4);