1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #include <iostream>
#include <string>
#include <windows.h>
using namespace std;
void WINAPI FileIOCompletionRoutine(DWORD dwErrorCode,DWORD dwNbBytesTransferred,LPOVERLAPPED lpOverlapped) {
cout << dwErrorCode << " ";
if (dwErrorCode != 0) {
exit(-2);
}
}
int main()
{
//HANDLE hFile = CreateFile(TEXT("C:\\TEMP\\test.txt"),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
HANDLE hFile = CreateFile(TEXT("C:\\TEMP\\test.txt"),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
if (hFile == INVALID_HANDLE_VALUE) {
cerr << "handle invalide" << endl;
return -1;
}
string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i=0 ; i<1000000 ; i++)
{
int n = rand()%26;
char tab[1] = {alphabet[n]};
/*DWORD writedBytes;
if (!WriteFile(hFile, tab ,sizeof(char),&writedBytes,NULL))
{
cerr << "erreur d'�criture" << endl;
exit(-1);
}*/
OVERLAPPED* ov = new OVERLAPPED;
WriteFileEx(hFile, tab ,sizeof(char),ov,FileIOCompletionRoutine);
}
//WaitForSingleObject(hFile,INFINITE);
CloseHandle(hFile);
return 0;
} |
Partager