亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filesystem.cpp

?? 文件系統
?? CPP
字號:
/*****************************************************************
/*	
/*****************************************************************
/*-------------------------------------------------------------
/*三種模式
/*	1.	FILE_FLAG_NOBUFFER
/*	2.  FILE_FLAG_SEQUENTIAL_SCAN
/*	3.  FILE_FLAG_BUFFERING|FILE_FLAG_OVERLAPPED
/*------------------------------------------------------------
/*五種操作
/*	1.	charactor	+1
/*	2.	charactor	-1
/*	3.	charactor	-32
/*	4.	charactor	+32
/*	5.	charactor	*1
/*---------------------------------------------------------------
*/
#include<iostream.h>
#include<windows.h>
//三種模式
void filter_nobuffer(char* source,char* sink,void (*func)(char* addr));
void filter_sequen(char* source,char* sink,void (*func)(char* addr));
void filter_overlp(char* source,char* sink,void (*func)(char* addr));
//五種不同功能的操作	
void f1(char* addr);
void f2(char* addr);
void f3(char* addr);
void f4(char* addr);
void f5(char* addr);

#define BUFFER_SIZE 1024	//定義緩沖區的大小,這里設為1024字節
char*	buffer;				//這里的緩沖區被定義成char型

void main()
{
	//分配緩沖區
	buffer = new char[BUFFER_SIZE];
	//記錄執行filter函數的開始時間
	DWORD tick;

	//用于三種模式各自的平均時間
	DWORD nobuffer_average_time = 0;
	DWORD sequen_average_time = 0;
	DWORD overlp_average_time = 0;
	//采用無緩存模式調用filter函數10次
	cout<<"*無文件高速緩存模式正在運行......"<<endl;

	DWORD nobuffer_start_time = GetTickCount();
	
	tick = nobuffer_start_time;
	filter_nobuffer("source.txt","nobuffer_1.txt",f1);
	cout<<"nobuffer 0-1:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_1.txt","nobuffer_2.txt",f2);
	cout<<"nobuffer 1-2:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_2.txt","nobuffer_3.txt",f3);
	cout<<"nobuffer 2-3:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_3.txt","nobuffer_4.txt",f4);
	cout<<"nobuffer 3-4:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_4.txt","nobuffer_5.txt",f5);
	cout<<"nobuffer 4-5:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_5.txt","nobuffer_6.txt",f1);
	cout<<"nobuffer 5-6:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_6.txt","nobuffer_7.txt",f2);
	cout<<"nobuffer 6-7:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_7.txt","nobuffer_8.txt",f3);
	cout<<"nobuffer 7-8:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_8.txt","nobuffer_9.txt",f4);
	cout<<"nobuffer 8-9:"<<GetTickCount()-tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_nobuffer("nobuffer_9.txt","nobuffer_10.txt",f5);
	DWORD nobuffer_end_time = GetTickCount();
	cout<<"nobuffer 9-10:"<<nobuffer_end_time - tick<<" ms."<<endl;

	//采用高速緩存模式調用filter函數10次
	cout<<"*使用文件高速緩存模式正在運行......"<<endl;

	DWORD sequen_start_time = GetTickCount();

	tick = sequen_start_time;
	filter_sequen("source.txt","sequen_1.txt",f1);
	cout<<"sequen 0-1:"<<GetTickCount() - tick <<" ms. "<<endl;

	tick = GetTickCount();
	filter_sequen("sequen_1.txt","sequen_2.txt",f2);
	cout<<"sequen 1-2:"<<GetTickCount() - tick <<" ms. "<<endl;	

	tick = GetTickCount();
	filter_sequen("sequen_2.txt","sequen_3.txt",f3);
	cout<<"sequen 2-3:"<<GetTickCount() - tick <<" ms. "<<endl;	

	tick = GetTickCount();
	filter_sequen("sequen_3.txt","sequen_4.txt",f4);
	cout<<"sequen 3-4:"<<GetTickCount() - tick <<" ms. "<<endl;	

	tick = GetTickCount();
	filter_sequen("sequen_4.txt","sequen_5.txt",f5);
	cout<<"sequen 4-5:"<<GetTickCount() - tick <<" ms. "<<endl;	

	tick = GetTickCount();
	filter_sequen("sequen_5.txt","sequen_6.txt",f1);
	cout<<"sequen 5-6:"<<GetTickCount() - tick <<" ms. "<<endl;	

	tick = GetTickCount();
	filter_sequen("sequen_6.txt","sequen_7.txt",f2);
	cout<<"sequen 6-7:"<<GetTickCount() - tick <<" ms. "<<endl;	


	tick = GetTickCount();
	filter_sequen("sequen_7.txt","sequen_8.txt",f3);
	cout<<"sequen 7-8:"<<GetTickCount() - tick <<" ms. "<<endl;	

	tick = GetTickCount();
	filter_sequen("sequen_8.txt","sequen_9.txt",f4);
	cout<<"sequen 8-9:"<<GetTickCount() - tick <<" ms. "<<endl;	

	tick = GetTickCount();
	filter_sequen("sequen_9.txt","sequen_10.txt",f5);
	DWORD sequen_end_time = GetTickCount();
	cout<<"sequen 9-10:"<<sequen_end_time - tick <<" ms. "<<endl;	

	//采用異步模式調用filter函數10次
	cout<<"異步傳輸模式正在運行......"<<endl;

	DWORD overlp_start_time = GetTickCount();

	tick = overlp_start_time;
	filter_overlp("source.txt","overlp_1.txt",f1);
	cout<<"overlp 0-1:"<<GetTickCount() - tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_overlp("overlp_1.txt","overlp_2.txt",f2);
	cout<<"overlp 1-2:"<<GetTickCount() - tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_overlp("overlp_2.txt","overlp_3.txt",f3);
	cout<<"overlp 2-3:"<<GetTickCount() - tick<<" ms."<<endl;
		 
	tick = GetTickCount();
	filter_overlp("overlp_3.txt","overlp_4.txt",f4);
	cout<<"overlp 3-4:"<<GetTickCount() - tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_overlp("overlp_4.txt","overlp_5.txt",f5);
	cout<<"overlp 4-5:"<<GetTickCount() - tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_overlp("overlp_5.txt","overlp_6.txt",f1);
	cout<<"overlp 5-6:"<<GetTickCount() - tick<<" ms."<<endl;
		 
	tick = GetTickCount();
	filter_overlp("overlp_6.txt","overlp_7.txt",f2);
	cout<<"overlp 6-7:"<<GetTickCount() - tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_overlp("overlp_7.txt","overlp_8.txt",f3);
	cout<<"overlp 7-8:"<<GetTickCount() - tick<<" ms."<<endl;

	tick = GetTickCount();
	filter_overlp("overlp_8.txt","overlp_9.txt",f4);
	cout<<"overlp 8-9:"<<GetTickCount() - tick<<" ms."<<endl;
		 
	tick = GetTickCount();
	filter_overlp("overlp_9.txt","overlp_10.txt",f5);
	DWORD overlp_end_time = GetTickCount();
	cout<<"overlp 9-10:"<<overlp_end_time - tick<<" ms."<<endl;

	//輸出三種模式下的平均時間以做對比
	cout<<"*三種模式的平均用時如下:"<<endl;
	cout<<".無模式高速緩存模式平均用時:"<<(nobuffer_end_time - nobuffer_start_time)/10 <<" ms."<<endl;
	cout<<".使用文件高速緩存模式平均用時:"<<(sequen_end_time - sequen_start_time)/10 <<" ms."<<endl;
	cout<<".異步傳輸模式平均用時:"<<(overlp_end_time - overlp_start_time)/10 <<" ms."<<endl<<endl;

	return;
}

/*------------------------------------------------------------------*/
//對文件內容進行的5種操作
//f1  +1
//f2  -1
//f3  *1
//f4  >>
//f5  <<
void f1(char* addr)	{*addr = (unsigned char)*addr +1;}
void f2(char* addr) {*addr = (unsigned char)*addr -1;}
void f3(char* addr) {*addr = (unsigned char)*addr *1;}
void f4(char* addr) {*addr = (unsigned char)*addr >>1;}
void f5(char* addr) {*addr = (unsigned char)*addr <<1;}

/*-------------------------------------------------------------*/
//沒有文件高速緩存的filter函數
void filter_nobuffer(char* source,char* sink, void(*func)(char* addr))
{
	HANDLE handle_src,handle_dst;	//定義原文件與目標文件的句柄
	BOOL cycle;						//用來判斷一個緩沖區是否被寫滿
	DWORD NumberOfBytesRead,NumberOfBytesWrite,index;	//讀的字節數、寫的字節數
	//打開原文件
	handle_src = CreateFile(source,GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_FLAG_NO_BUFFERING,NULL);

	//創建目標文件
	handle_dst = CreateFile(sink,GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,NULL,NULL);

	if(handle_src == INVALID_HANDLE_VALUE||handle_dst == INVALID_HANDLE_VALUE)
	{
		cout<<"CreatFile Invocation Error!"<<endl;
		exit(1);
	}
	cycle = TRUE;

	//用來cycle判斷文件什么時候讀完
	while(cycle)
	{
		//從原文件讀數據送入緩沖區
		if(ReadFile(handle_src,buffer,BUFFER_SIZE,&NumberOfBytesRead,NULL) == FALSE)
		{
			cout<<"ReadFile Error!"<<endl;
			exit(1);
		}

		//當讀不滿一個緩沖區時,說明達到文件末尾,結束循環
		if(NumberOfBytesRead < BUFFER_SIZE)
			cycle = FALSE;
		//對文件內容進行的操作
		for(index = 0;index < NumberOfBytesRead;index++)
			func(&buffer[index]);
			
		//將緩沖區中的數據寫入目標文件	
		if(WriteFile(handle_dst,buffer,NumberOfBytesRead,&NumberOfBytesWrite,NULL) == FALSE)
		{
			cout<<"WriteFile Error!"<<endl;
			exit(1);
		}
	}

	//關閉文件句柄
	CloseHandle(handle_src);
	CloseHandle(handle_dst);
}



/*-------------------------------------------------------------*/

void filter_sequen(char* source,char* sink, void(*func)(char* addr))
{
	HANDLE handle_src,handle_dst;	//定義原文件與目標文件的句柄
	BOOL cycle;						//用來判斷一個緩沖區是否被寫滿
	DWORD NumberOfBytesRead,NumberOfBytesWrite,index;	//讀的字節數、寫的字節數
	//打開原文件
	handle_src = CreateFile(source,GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,NULL);

	//創建目標文件
	handle_dst = CreateFile(sink,GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_FLAG_SEQUENTIAL_SCAN,NULL);

	if(handle_src == INVALID_HANDLE_VALUE||handle_dst == INVALID_HANDLE_VALUE)
	{
		cout<<"CreatFile Invocation Error!"<<endl;
		exit(1);
	}
	cycle = TRUE;

	//用來cycle判斷文件什么時候讀完
	while(cycle)
	{
		//從原文件讀數據送入緩沖區
		if(ReadFile(handle_src,buffer,BUFFER_SIZE,&NumberOfBytesRead,NULL) == FALSE)
		{
			cout<<"ReadFile Error!"<<endl;
			exit(1);
		}

		//當讀不滿一個緩沖區時,說明達到文件末尾,結束循環
		if(NumberOfBytesRead < BUFFER_SIZE)
			cycle = FALSE;
		//對文件內容進行的操作
		for(index = 0;index < NumberOfBytesRead;index++)
			func(&buffer[index]);
			
		//將緩沖區中的數據寫入目標文件	
		if(WriteFile(handle_dst,buffer,NumberOfBytesRead,&NumberOfBytesWrite,NULL) == FALSE)
		{
			cout<<"WriteFile Error!"<<endl;
			exit(1);
		}
	}

	//關閉文件句柄
	CloseHandle(handle_src);
	CloseHandle(handle_dst);
}


/*-------------------------------------------------------------*/

void filter_overlp(char* source,char* sink, void(*func)(char* addr))
{
	HANDLE handle_src,handle_dst;	//定義原文件與目標文件的句柄
	BOOL cycle;						//用來判斷一個緩沖區是否被寫滿
	DWORD NumberOfBytesRead,NumberOfBytesWrite,index,dwError;	//讀的字節數、寫的字節數
	OVERLAPPED overlapped;			//overlapped 結構
	//打開原文件
	handle_src = CreateFile(source,GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_FLAG_NO_BUFFERING|FILE_FLAG_OVERLAPPED,NULL);

	//創建目標文件
	handle_dst = CreateFile(sink,GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,NULL,NULL);

	if(handle_src == INVALID_HANDLE_VALUE||handle_dst == INVALID_HANDLE_VALUE)
	{
		cout<<"CreatFile Invocation Error!"<<endl;
		exit(1);
	}
	cycle = TRUE;

	//對overlapped結構初始化
	overlapped.hEvent = NULL;
	overlapped.Offset = -BUFFER_SIZE;
	overlapped.OffsetHigh = 0;
	
	//用來cycle判斷文件什么時候讀完
	while(cycle)
	{
		//計算文件的偏移量
		overlapped.Offset = overlapped.Offset + BUFFER_SIZE;


		//從原文件讀數據送入緩沖區
		if(ReadFile(handle_src,buffer,BUFFER_SIZE,&NumberOfBytesRead,&overlapped) == FALSE)
		{
			switch(dwError = GetLastError())
			{
				//讀文件結尾
			case ERROR_HANDLE_EOF:
				cycle = FALSE;
				break;
			case ERROR_IO_PENDING:
				if(GetOverlappedResult(handle_src,&overlapped,&NumberOfBytesRead,TRUE) == FALSE)
				{
					cout<<"GetOverlappedResult Error!"<<endl;
					exit(1);
				}
				break;
			default:
				break;
			}
		}

		//當不滿一個個緩存區時,說明達到文件末尾,結束循環
		if(NumberOfBytesRead < BUFFER_SIZE)
			cycle = FALSE;

		//對文件內容進行的操作
		for(index = 0;index < NumberOfBytesRead;index++)
			func(&buffer[index]);
			
		//將緩沖區中的數據寫入目標文件	
		if(WriteFile(handle_dst,buffer,NumberOfBytesRead,&NumberOfBytesWrite,NULL) == FALSE)
		{
			cout<<"WriteFile Error!"<<endl;
			exit(1);
		}
	}

	//關閉文件句柄
	CloseHandle(handle_src);
	CloseHandle(handle_dst);
}


/************************THE END********************************/












?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色电影在线 | 老色鬼精品视频在线观看播放| 日韩高清在线一区| av午夜精品一区二区三区| 欧美乱妇20p| 一区二区三区在线视频观看58| 精一区二区三区| 欧美日本在线一区| 国产精品天干天干在线综合| 日韩高清一级片| 色婷婷综合久久久久中文一区二区 | 91精品国产色综合久久不卡蜜臀| 日韩你懂的电影在线观看| 国产精品国产三级国产aⅴ入口| 蜜臀av性久久久久蜜臀aⅴ四虎| 色婷婷综合久久久久中文 | 欧美日韩在线观看一区二区| 国产偷国产偷精品高清尤物| 蜜臀精品久久久久久蜜臀| 欧美日韩视频在线一区二区 | 亚洲一区二区成人在线观看| 成人动漫一区二区在线| 国产婷婷色一区二区三区| 久久成人免费电影| 91精品国产综合久久小美女| 亚洲乱码中文字幕| 99久久久无码国产精品| 国产精品人人做人人爽人人添| 国产又黄又大久久| 精品国产乱码久久久久久蜜臀 | 亚洲成人在线免费| 在线国产电影不卡| 亚洲成人免费电影| 欧美日韩电影在线| 日日夜夜免费精品| 日韩精品中文字幕一区| 蜜桃精品在线观看| 久久久www免费人成精品| 国产在线精品一区二区不卡了| 久久影院视频免费| 国产91丝袜在线播放| 欧美国产一区在线| 99re视频精品| 亚洲成a人v欧美综合天堂下载 | 在线一区二区三区做爰视频网站| 亚洲人成在线播放网站岛国 | 久久你懂得1024| 国产精品一级黄| 国产精品情趣视频| 91成人免费在线| 奇米一区二区三区av| 久久久精品综合| 91网站最新网址| 午夜精品久久久久久久蜜桃app| 欧美一区2区视频在线观看| 美女视频黄免费的久久| 久久综合久色欧美综合狠狠| 国产盗摄精品一区二区三区在线| 国产精品久久久久久久久免费桃花 | 日本福利一区二区| 亚洲国产成人tv| 日韩欧美亚洲另类制服综合在线 | 欧美不卡在线视频| 国产成人精品三级麻豆| 亚洲精品国产品国语在线app| 欧美亚洲国产一区二区三区va| 日韩成人免费在线| 最近日韩中文字幕| 91精品午夜视频| va亚洲va日韩不卡在线观看| 亚洲国产美女搞黄色| 精品国精品自拍自在线| 99这里都是精品| 精品一区免费av| 一区二区高清视频在线观看| 日韩精品自拍偷拍| 在线精品视频一区二区三四| 精品一区二区三区不卡 | 久久看人人爽人人| 欧美影视一区二区三区| 国产精品一线二线三线| 亚洲成人动漫在线观看| 国产精品久久久久久久久免费相片 | 日韩精品1区2区3区| 日本一区二区免费在线| 777xxx欧美| 色综合天天综合狠狠| 理论电影国产精品| 亚洲韩国一区二区三区| 中文字幕高清一区| 欧美成va人片在线观看| 欧美色综合网站| 99精品国产视频| 国产一区二区电影| 日本伊人色综合网| 亚洲一区二区综合| 国产精品你懂的在线欣赏| 欧美一区二区三区白人| 欧美亚洲另类激情小说| 丁香五精品蜜臀久久久久99网站| 久久精品理论片| 天天亚洲美女在线视频| 亚洲综合在线电影| 专区另类欧美日韩| 欧美国产日韩a欧美在线观看| 日韩区在线观看| 欧美精品亚洲一区二区在线播放| 91香蕉国产在线观看软件| 国产成人亚洲综合色影视| 国产一区亚洲一区| 久久99久久精品欧美| 日韩—二三区免费观看av| 亚洲第四色夜色| 午夜私人影院久久久久| 亚洲男帅同性gay1069| 国产精品麻豆一区二区| 国产精品免费丝袜| 国产精品第13页| 成人欧美一区二区三区视频网页| 久久久久久久久久久99999| 久久免费的精品国产v∧| 欧美mv日韩mv国产网站app| 欧美一卡二卡三卡四卡| 精品日韩av一区二区| 2014亚洲片线观看视频免费| 久久久久久免费| 中文在线一区二区| 1区2区3区精品视频| 亚洲三级在线免费观看| 亚洲一区欧美一区| 日本成人在线不卡视频| 精品无人码麻豆乱码1区2区 | 精品无码三级在线观看视频| 国产精品影视天天线| 成人综合在线网站| 91黄色免费网站| 欧美一区二区三级| 亚洲国产高清不卡| 亚洲免费成人av| 免费在线看一区| 国产成人啪午夜精品网站男同| 国产不卡视频在线观看| 91香蕉国产在线观看软件| 欧美精品v日韩精品v韩国精品v| 日韩一区二区在线看| 国产日韩欧美不卡| 亚洲综合色自拍一区| 91国在线观看| 欧美一区二区三区免费视频| 久久网站最新地址| 亚洲精品久久久蜜桃| 轻轻草成人在线| 波波电影院一区二区三区| 欧美三级日韩三级| 久久午夜老司机| 一区二区三区在线免费观看| 秋霞电影一区二区| 91理论电影在线观看| 亚洲人成影院在线观看| 日本视频在线一区| 成人国产电影网| 欧美一区二区三区在线观看视频 | 国产精品一区二区在线播放| 色偷偷88欧美精品久久久| 日韩免费观看2025年上映的电影 | 天天综合网天天综合色| 成人午夜在线视频| 91精品国产综合久久国产大片| 国产日韩欧美麻豆| 蜜桃av一区二区| 欧美亚洲免费在线一区| 欧美激情在线一区二区| 视频在线观看国产精品| 国产成人av影院| 日韩一区二区三区在线视频| 一区二区三区在线免费视频| 国产经典欧美精品| 欧美一区2区视频在线观看| 一区二区三区四区在线免费观看| 狠狠色丁香久久婷婷综| 欧美顶级少妇做爰| 亚洲精品国产成人久久av盗摄| 国产一区在线观看麻豆| 欧美一级午夜免费电影| 夜夜揉揉日日人人青青一国产精品| 国产乱码精品一区二区三区av| 91精品午夜视频| 丝袜美腿亚洲综合| 欧美日韩一区二区在线视频| 国产精品国产三级国产| 国产suv一区二区三区88区| 欧美v日韩v国产v| 久久精品国产一区二区三| 欧美夫妻性生活| 亚洲国产综合色| 欧美影视一区在线| 亚洲午夜久久久久| 欧美午夜精品理论片a级按摩| 专区另类欧美日韩| 色哟哟日韩精品|