#include <stdio.h> #include <stdlib.h> #include <libvirt/libvirt.h> static void printDomain(virConnect *conn, int id) { virDomain *dom; dom = virDomainLookupByID(conn, id); printf("%d\t %s\t %lu\n", virDomainGetID(dom), virDomainGetName(dom), virDomainGetMaxMemory(dom) / 1024); virDomainFree(dom); } static void printDomains(virConnect *conn) { int number_of_domains, id, *ids; number_of_domains = virConnectNumOfDomains(conn); ids = malloc(number_of_domains * sizeof(int)); if (!ids) return; virConnectListDomains(conn, ids, number_of_domains); printf("ID\t Name\t\t Memory\n"); for (id = 0; id < number_of_domains; id++) printDomain(conn, ids[id]); free(ids); } int main() { virConnect *conn; conn = virConnectOpen(NULL); if (!conn) return -1; printDomains(conn); virConnectClose(conn); return 0; }