windows核心程式設計第17章 乙個檔案 0個快取

2022-07-23 08:36:07 字數 1222 閱讀 5350

看windows核心程式設計17章複習記憶體對映方面的知識,看到了一系列的乙個檔案0個快取,乙個檔案乙個快取等的簡單說明,自己按照

自己的本意寫了個計數和記錄他們之間讀寫或者對映資料的時間差別的工程。

// 記憶體對映處理大檔案.cpp : 定義控制台應用程式的入口點。

#include

#include

#include

#include

#include

using namespace std;

// 得到系統分配粒度

system_info sysinfo;

getsysteminfo(&sysinfo);

dword aligngrainsize = sysinfo.dwallocationgranularity;//可以分配虛擬記憶體的起始位址的粒度。

// 得到檔案尺寸

dword dwfilesizehigh;

__int64 filesize = getfilesize(hfile, &dwfilesizehigh);//返回到低位元組 高位元組為空則大檔案會出錯,也不一定

filesize |= (((__int64)dwfilesizehigh) << 32);//或還是自己

// 關閉檔案物件

closehandle(hfile);

// 偏移位址

__int64 qwfileoffset = 0;

// 塊大小

dword dwblockbytes = 0;

dwblockbytes = (dword)filesize;

if (qwfileoffset >= 0)

int j = 0;

for (dword i = 0; i < dwblockbytes; i++)

/*char*v1 = strstr(lpbmapaddress, "nihao");

//if (v1 != null)*/}

printf("%d", j);

// 撤銷檔案映像

unmapviewoffile(lpbmapaddress);

end = gettickcount();

printf("time=%d\n", end - start);

}// 關閉檔案對映物件控制代碼

closehandle(hfilemap);

getchar();

sleep(6000);

}

Windows核心程式設計 第1章讀書筆記

第一章.錯誤處理 1.dword getlasterror 2.為每個錯誤 分配乙個32位編號 3.函式呼叫失敗之後,應該馬上呼叫,避免返回值被修改 4.在vc vs中,可以在watch視窗新增 err,hr 一行來實時現實錯誤。除錯過程中,該項相當於在每次呼叫api函式之後呼叫getlasterr...

第17章 套接字程式設計

1.使用tcp從伺服器獲取資料 end.2.乙個簡單的tcp伺服器 socket server.erl module socket server export start nano server 0,loop 1,nano client eval 1 start nano server gen tc...

《windows核心程式設計》 18章 堆

堆的優缺點 優點 讓我們專心解決手頭問題,不必理會分配粒度和頁邊界這類事情。缺點 分配和釋放記憶體塊的速度比其他方式慢,而且也無法對物理儲存器的調撥和撤銷進行直接控制。什麼是堆 堆就是一塊預訂的位址空間區域。剛開始,區域大部分頁面都沒以調撥物理儲存器。隨前我們不斷的從堆中分配記憶體,堆管理器會給堆調...