91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-07
  • 語言: C/C++
  • 標簽: 文件讀寫??

資源簡介

操作系統試驗之第四文件讀寫的三種方式比較

資源截圖

代碼片段和文件信息

#include
#include?“stdafx.h“

#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
DWORD?BufferSize=1024;
char?buf[1024];

CWinApp?theApp;
using?namespace?std;

//函數聲明
void?FileReadWrite_NoBuffer(char*?sourcechar*?destination);//無緩沖方式實現文件讀寫
void?FileReadWrite_FastBuffer(char*?sourcechar*?destination);//高速緩存方式實現文件讀寫
void?FileReadWrite_Asyn(char*?sourcechar*?destination);//異步方式實現文件讀寫

int?_tmain(int?argc?TCHAR*?argv[]?TCHAR*?envp[])
{
int?nRetCode?=?0;
????DWORD?ticktick_s;
DWORD?nobuffer_start_timesequential_start_timeoverlapped_start_time;
DWORD?nobuffer_end_timesequential_end_timeoverlapped_end_time;
DWORD?nobuffer_average_time=0;
DWORD?sequential_average_time=0;
DWORD?overlapped_average_time=0;

printf(“無緩沖方式運行中...\n“);
nobuffer_start_time=GetTickCount();
for?(int?i=0;i<10;i++)
{
tick=GetTickCount();
FileReadWrite_NoBuffer(“source.txt““1_nobuffer.txt“);
printf(“無緩沖方式:?%d?%d?ms\n“iGetTickCount()-tick);
}
nobuffer_end_time=GetTickCount();

printf(“\n高速緩存方式運行中...\n“);
????sequential_start_time=GetTickCount();
for?(i=0;i<10;i++)
{
tick_s=GetTickCount();
FileReadWrite_FastBuffer(“source.txt““2_FastBuffer.txt“);
printf(“高速緩存方式:?%d?%d?ms\n“iGetTickCount()-tick_s);
}
sequential_end_time=GetTickCount();

printf(“\n異步方式運行中...\n“);
overlapped_start_time=GetTickCount();
for?(i=0;i<10;i++)
{
tick=GetTickCount();
FileReadWrite_Asyn(“source.txt““3_Asyn.txt“);
printf(“異步方式:?%d?%d?ms\n“iGetTickCount()-tick);
}
overlapped_end_time=GetTickCount();
printf(“\n“);
printf(“\n最終結果:\n“);
printf(“1.無緩沖方式實現文件讀寫:?%d?ms\n“(nobuffer_end_time-nobuffer_start_time)/10);
printf(“2.高速緩存方式實現文件讀寫:?%d?ms\n“(sequential_end_time-sequential_start_time)/10);
printf(“3.異步方式實現文件讀寫:?%d?ms\n“(overlapped_end_time-overlapped_start_time)/10);

return?nRetCode;
}

//無緩沖方式實現文件讀寫
void?FileReadWrite_NoBuffer(char*?sourcechar*?destination){
HANDLE?handle_srchandle_dst;
DWORD?NumberOfByteReadNumberOfByteWrite;
BOOL?cycle;
char?*buffer;
buffer=buf;
handle_src=CreateFile(sourceGENERIC_READ0NULLOPEN_ALWAYSFILE_FLAG_NO_BUFFERINGNULL);
handle_dst=CreateFile(destinationGENERIC_WRITENULLNULLCREATE_ALWAYSNULLNULL);
if(handle_src==INVALID_HANDLE_VALUE||handle_dst==INVALID_HANDLE_VALUE){
printf(“File?Create?Fail!\n“);
exit(1);
}
cycle=TRUE;
while(cycle){
NumberOfByteRead=BufferSize;
if(!ReadFile(handle_srcbufferNumberOfByteRead&NumberOfByteReadNULL)){
printf(“Read?File?Error!%d\n“GetLastError());
exit(1);
}
if(Numb

評論

共有 條評論