一、文件的异步写入
#include <Windows.h>
#include <stdio.h>
int main() {
HANDLE hFile = CreateFile(TEXT("test.txt"), GENERIC_WRITE | GENERIC_READ, 0,
NULL, OPEN_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN | FILE_FLAG_OVERLAPPED, NULL);
if (hFile == INVALID_HANDLE_VALUE) {
printf("无法打开文件。错误码:%d\n", GetLastError());
return 0;
}
OVERLAPPED ol1 = { 0 };
char buffer[] = "Hello World";
DWORD writeCount = 0;
BOOL ret = WriteFile(hFile, buffer, strlen(buffer), &writeCount, &ol1);
if (!ret) {
CloseHandle(hFile);
printf("文件写入失败!\n");
return 0;
}
CloseHandle(hFile);
return 1;
}
二、文件的异步读取
#include <Windows.h>
#include <stdio.h>
int main() {
HANDLE hFile = CreateFile(TEXT("test.txt"), GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN | FILE_FLAG_OVERLAPPED, NULL);
if (hFile == INVALID_HANDLE_VALUE) {
printf("无法打开文件。错误码:%d\n", GetLastError());
return 0;
}
OVERLAPPED ol2 = { 0 };
char readBuffer[255] = { 0 };
DWORD readCount = 0;
ret = ReadFile(hFile, readBuffer, 255, &readCount, &ol2);
if (!ret) {
CloseHandle(hFile);
printf("文件读取失败!\n");
return 0;
}
printf("readBuffer:%s\n", readBuffer);
CloseHandle(hFile);
return 1;
}