使用无缓冲方式实现文件的读写, 事先准备好一个文本文件。使用c语言编制程序,读取该文件内容,并且将读取的内容写入另一个文本文件。读写文件均使用无缓冲方式。检查新文件内容是否和老文件一致。需要涉及以下函数:CreateFile()、ReadFile()、WriteFile()、CloseHandle()、GetTickCount()
时间: 2024-03-16 16:46:15 浏览: 105
无缓冲方式读写文件
好的,这里是一个使用无缓冲方式实现文件读写的C语言程序示例:
```c
#include <windows.h>
#include <stdio.h>
#define BUFFER_SIZE 1024
int main()
{
HANDLE hFileIn, hFileOut;
DWORD dwBytesRead, dwBytesWritten;
char buffer[BUFFER_SIZE];
DWORD dwStartTime, dwEndTime;
// 打开输入文件
hFileIn = CreateFile("input.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, NULL);
if (hFileIn == INVALID_HANDLE_VALUE)
{
printf("Failed to open input file\n");
return 1;
}
// 打开输出文件
hFileOut = CreateFile("output.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, NULL);
if (hFileOut == INVALID_HANDLE_VALUE)
{
printf("Failed to create output file\n");
CloseHandle(hFileIn);
return 1;
}
// 读取输入文件并写入输出文件
dwStartTime = GetTickCount();
while (ReadFile(hFileIn, buffer, BUFFER_SIZE, &dwBytesRead, NULL) && dwBytesRead > 0)
{
if (!WriteFile(hFileOut, buffer, dwBytesRead, &dwBytesWritten, NULL) || dwBytesWritten != dwBytesRead)
{
printf("Failed to write to output file\n");
CloseHandle(hFileIn);
CloseHandle(hFileOut);
return 1;
}
}
dwEndTime = GetTickCount();
// 关闭文件句柄
CloseHandle(hFileIn);
CloseHandle(hFileOut);
// 输出程序执行时间
printf("Time used: %dms\n", dwEndTime - dwStartTime);
return 0;
}
```
这个程序会打开一个名为"input.txt"的文本文件,读取其中的内容,并将内容写入一个名为"output.txt"的新文件中。文件的读写均采用无缓冲方式,使用了CreateFile()、ReadFile()、WriteFile()、CloseHandle()和GetTickCount()等函数实现。程序执行完毕后,可以检查新文件内容是否和老文件一致。
阅读全文