C 實現客戶端阿里雲遷移準備工作

2021-08-20 08:31:54 字數 1341 閱讀 7635

最近在做客戶端往阿里雲上遷移,也就是在客戶端上要求實現如下功能,判斷作業系統是32位還是64位,獲取記憶體大小,獲取cpu資訊(格式:型號;核數),檢測阿里雲virtio驅動是否存在。

下面附上各個功能模組的c++**:

1. 判斷作業系統是32位還是64位

bool issystem64()

return biswow64;

}

2. 獲取記憶體大小(單位:mb)要注意的地方是獲取記憶體大小應該使用的api是globalmemorystatu***,因為對於超過4g記憶體的機器,globalmemorystatus api就會返回錯誤的結果。詳見msdn官方說明文件。

而且非常重要的一點:**中memoryinfo.dwlengh = sizeof(memoryinfo)這句初始化不能少,最開始沒有寫發現獲取到的記憶體大小不對,後來查閱了官方文件的示例程式才發現。

dwordlong getmemoryinfo()

3. 獲取cpu資訊cpu型號的資訊在登錄檔中就可以檢視到,核心數可以通過getsysteminfo 這個api獲取到

**如下:

dword queryregkey(string keyname,string valuename,void *pvalue,int length)

nchars = length;

ret = pregkey->querystringvalue(valuename.c_str(),(char *)pvalue,&nchars);

pregkey->close();

delete pregkey;

return ret;

}string getcpuinfo()

4. 檢測驅動:主要是檢測相應的登錄檔鍵值有沒有被建立,drivers目錄下有沒有相應的sys檔案。

然後傳入相應的引數,判斷balloon,netkvm,vioser,viostor,pvpanic這5個驅動是否正確安裝

**如下:

bool finddriverreg(string target)

bool finddriverfile(string filename)

findclose(hfile);

return flag;

}

阿里雲訊息佇列MQTT監聽客戶端狀態

順便在這裡附上官方文件 當前最新的 rocketmq mqtt 1.環境準備,需要購買阿里雲的mqtt以及rocketmq。2.在阿里雲賬號控制台找到rocketmq,選擇你所購買的region,建立乙個topic,並建立乙個group以備用。3.切換到mqtt,建立乙個group,例如 devic...

阿里雲CentOs7 4安裝git客戶端

1 root使用者任意路徑安裝依賴 安裝編譯git時需要的包 命令 yum install curl devel expat devel gettext devel openssl devel zlib devel gcc perl extutils makemaker 中間過程輸入一次y 安裝完成...

C 實現客戶端公升級流程

對於乙個客戶端軟體,公升級程式是很常見的,當客戶端有新增需求或者bug修復時,後台發布公升級版本,前端進行版本比較並進行公升級,以實現客戶端迭代更新的效果,因此學會如何設計乙個簡單的客戶端公升級流程是我們必須要掌握的能力。公升級程式也是乙個win32介面程式,因為需要顯示更新進度,以及與使用者之間的...