函数FlushFileBuffers用于刷新指定文件的缓冲区,确保数据被写入文件中。其原型如下:
BOOL FlushFileBuffers( HANDLE hFile );
参数hFile为文件的句柄,通过CreateFile函数获取。函数返回值为BOOL类型,表示操作成功与否。
函数PurgeComm用于清除指定串口的输入和输出缓冲区。其原型如下:
BOOL PurgeComm( HANDLE hFile, DWORD dwFlags );
参数hFile为串口的句柄,通过CreateFile函数获取。参数dwFlags为清除标志,可以是以下值的组合:
- PURGE_TXABORT:终止串口发送操作,并清除输出缓冲区。
- PURGE_RXABORT:终止串口接收操作,并清除输入缓冲区。
- PURGE_TXCLEAR:清除串口输出缓冲区。
- PURGE_RXCLEAR:清除串口输入缓冲区。
函数返回值为BOOL类型,表示操作成功与否。
使用示例:
// 以写入方式打开文件 HANDLE hFile = CreateFile( “test.txt”, // 文件路径 GENERIC_WRITE, // 访问权限 0, // 共享模式 NULL, // 安全属性 OPEN_ALWAYS, // 打开方式 FILE_ATTRIBUTE_NORMAL, // 文件属性 NULL // 模板文件句柄 ); if (hFile != INVALID_HANDLE_VALUE) { // 写入数据到文件 DWORD dwBytesWritten; char data[] = “Hello, World!”; WriteFile(hFile, data, sizeof(data), &dwBytesWritten, NULL);
// 刷新文件缓冲区 FlushFileBuffers(hFile); // 关闭文件 CloseHandle(hFile);
}
// 打开串口 HANDLE hComm = CreateFile( “COM1”, // 串口名称 GENERIC_READ | GENERIC_WRITE,// 访问权限 0, // 共享模式 NULL, // 安全属性 OPEN_EXISTING, // 打开方式 0, // 文件属性 NULL // 模板文件句柄 ); if (hComm != INVALID_HANDLE_VALUE) { // 清除串口输入和输出缓冲区 PurgeComm(hComm, PURGE_RXCLEAR | PURGE_TXCLEAR);
// 关闭串口 CloseHandle(hComm);
}