基于C语言libvirt API简单小程序

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

时间: 2024-10-10 14:19:46

基于C语言libvirt API简单小程序的相关文章

单片机 学习笔记(二)——简单小程序

今天收获了单片机的几个简单小程序:     延时程序: void Delay(unsigned int xx) //输入 xx :ms { while(xx--) { Delay1ms(); } } void Delay1ms() //@11.0592MHz 1ms { unsigned char i, j; _nop_(); _nop_(); _nop_(); i = 11; j = 190; do { while (--j); } while (--i); } 流水灯程序: #include

IOS 霓虹灯简单小程序

在RootViewController.m文件中 - (void)viewDidLoad//视图加载方法 - (void)viewDidLoad { //设置红色 UIView *viewRed = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 120, 30)]; viewRed.backgroundColor = [UIColor redColor]; [self.view addSubview:viewRed]; //设置橙色 UIVi

3、简单小程序练习

简单小程序的实现: 九九乘法表: 1 for i in range(1,10): 2 for j in range(1,i+1): 3 print('%d*%d=%d'%(j,i,j*i),end='\t') 4 print() 定义一个登录函数 def login(username,password): if (username=='alex' and password=='123'): print('用户名密码正确,登录成功') else: print('请输入正确的用户名和密码') use

封装简单的API——微信小程序

前几天自己琢磨微信小程序的基本开发,里边用到的技术包括WebAPI,也就是方法的封装. 当然也可以用ASP.NET MVC WCF来写接口.更简单应该就是 WinForm 简单易部署. 这里用的是 2017版本的 Core 2.0 WebAPI [Route("api/select")] //定义路由 public class SelectController:Controller { /// <summary> /// 查询所有信息 /// </summary>

基于WPF的八皇后简单应用程序

写过不少次关于八皇后问题的代码了,不过都是基于标准的控制台层面上的输入输出.这次决定采用WPF来实现一个带有界面的八皇后的小程序 在开始写代码之前,首先回顾一下八皇后问题: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 简单来说,八皇后问题就是一个递归回溯法的典型案例,相较于传统的穷举方法,采用递归回溯的方法

初学Java:整理的几个简单小程序以及初学心得

整理这几天里写的几个小程序,都是循环练习//设N是一个四位数,它的9倍恰好是其反序数//(例如:1234的反序数是4321),求N值package Azhi;public class Job_5 {public static void main(String[] args) { for(int n=1000;n<=9999;n++){ int ge=n%10; int shi=n%100/10; int bai=n%1000/100; int qian=n/1000; int temp=ge*1

关于Hibernate的一个简单小程序

本人根据视频学习了一下三大框架中比较简单的一个Hibernate,并简单完成了一个运用Hibernate的小程序 Hibernate是一个简化web程序Dao层的一个框架,应用他,可以完全脱离sql语句 第一步:创建一个java项目,没有必要创建一个web项目,因为Hibernate本身是针对后台对数据库的操作的 第二步:导入jar包:可以在根目录下创建一个lib文件夹用来存放导入的jar包,当然要先下载Hibernate的资源包并解压,打开之后首先将根目录的两个jar包导入,截图如下 然后打开

用一个简单小程序谈import和from...import的区别

今天在自己写代码的过程中,设计到随机种子数量(参数),因为一个文件中可能用到这个参数不止一次甚至是不止一个文件会用到这个参数.对于训练一个数据集来说,如果当你的性能跑的差不多的话,肯定会改这个参数,那如果你在函数中给这个参数直接赋了值,后期改的时候牵动会很大,所以这个时候就要想着在另一个文件中单独定义这个参数,在其他文件中来调用.这个时候就涉及到了在一个文件中导入另一个文件中包含的某些功能比如类和函数. 自己特意写了简单的程序帮理解:先说明我是在test1文件中定义两个函数sum1()和sum2

C语言实现自动关机的小程序,整人专用

捉弄人的有趣小程序,适合新手练手.点开后电脑将在某一时间段后自动关机,输入如同"我是猪"一类的话语,即可结束,,,否则关机任务则会一直处于倒计时状态.. #include<stdio.h>     //标准输入输出库函数 #include<stdlib.h>    //可以输入system用以键入DOS管理窗口界面下的cmd中的命令 #include<string.h>    //字符串,数组定义的库函数 int main() { char a[10