控制內建系統需要了解系統的各項硬體資訊,之前我們設計的時候,習慣使用c函數來搞,後來可能發現程式的移植性收到了一些影響,比如unix核心的一些c函數在linux下面是沒有的:
比如
蘋果達爾文核心的如下東西,linux裡面就沒有:
//kern_return_t kr;
//host_name_port_t myhost;
// kernel_version_t kversion;
// host_basic_info_data_t hinfo;
// mach_msg_type_number_t count;
char *cpu_type_name,*cpu_subtype_name;
// vm_size_t page_size;
// myhost = mach_host_self();
// kr = host_kernel_version(myhost, kversion);
// count = HOST_BASIC_INFO_COUNT;
// kr = host_info(myhost, HOST_BASIC_INFO, (host_info_t)&hinfo, &count);
// kr = host_page_size(myhost, &page_size); //
是以換一種思路我們考慮使用,shell指令擷取資訊,完後進行字元處理,這樣即使換了系統,我們代碼裡面換換shell指令就可以了。
使用到的一些結構體跟宏定義:
下面是代碼:
Systeminfo.h
實作:
搭建傳輸的socket平台參考下面博文:
<a target="_blank" href="http://blog.csdn.net/wangyaninglm/article/details/41940287">http://blog.csdn.net/wangyaninglm/article/details/41940287</a>
實作效果:
