標籤:圖片 實驗 char .com hyperv blog images open http
libvirt API簡單小程式
1、程式碼如下
#include<stdio.h>#include<libvirt/libvirt.h>int getDomainInfo(int id) {virConnectPtr conn = NULL;virDomainPtr dom = NULL;virDomainInfo info;conn = virConnectOpenReadOnly(NULL);if (conn == NULL) {fprintf(stderr, "Failed to connect to hypervisor\n");return 1;}dom = virDomainLookupByID(conn, id);if (dom == NULL) {fprintf(stderr, "Failed to find Domain %d\n", id);virConnectClose(conn);return 1;}if (virDomainGetInfo(dom, &info) < 0) {fprintf(stderr, "Failed to get information for Domain %d\n", id);virDomainFree(dom);virConnectClose(conn);return 1;}printf("Domain ID: %d\n", id);printf(" vCPUs: %d\n", info.nrVirtCpu);printf(" maxMem: %d KB\n", info.maxMem);printf(" memory: %d KB\n", info.memory);if (dom != NULL){virDomainFree(dom);}if (conn != NULL){virConnectClose(conn);}return 0;}int main(int argc, char **argv){int dom_id = 3;printf("-----Get domain info by ID via libvirt C API -----\n");getDomainInfo(dom_id);return 0;}
2、程式編譯並運行,運行結果1所示
gcc dominfo.c -o dominfo -lvirt./dominfo
-lvirt指定程式連結時的共用庫,在本文實驗環境中依賴的共用庫檔案路徑為/usr/lib/libvirt.so
圖 1
將運行結果和virsh的啟動並執行結果相比較,virsh的結果2所示
圖 2
基於C語言libvirt API簡單小程式