开门见山。
libvirt的工作机制神马的我也解释不清楚。我就基本上了解到底该怎么用……
但是基于libvirt的工作流程,我就要一一为自己总结了!
第一、想要使用libvirt的API来进行虚拟机生命周期的管理,首先需要得到你的应用程序要主机的一个URI连接!注意不是URL……别混淆了……URI,叫做“统一资源标识符”。这里引用一下开发文档的句子“在libvirt中,一个这样的连接是系统中所有对象的和行为的基础” “所有实体(应用程序)如果想要与libvirt进行交互,都须要首先取得一个连接到你感兴趣的主机(目标主机)上的libvirt的连接”。
第二、给予第一点,那么,怎样才能获取一个连接呢。很简单!libvirt提供了三种API供我们使用以获取一个连接。我在这里就介绍一个最简单的virConnectPtr virConnectOpen(const char *name)。此函数概要解释如下:1)virConnectPtr是一个结构体,它代表的是我们的virConnectOpen()函数获取的libvirt连接对象。
此程序的使用范例如下:根据我自己的实验环境所得……请诸位各取所需……不胜感激
……
#include<libvirt/libvirt.h>
.......
int main(int argc , char *argv[])
{
virConnectPtr zzhConn;
zzhConn = virConnectOpen("Xen:///");
......
virConnectClose(zzhConn);
......
return 0 ;
}
程序解释如下:include命令当然引入到是包含这些API具体实现的头文件拉。
其次, virConnectPtr zzhConn;为申明一个libvirt的连接对象,不然用什么来保存我们的这个连接对象呢是吧?
再次,当然就是调用相关函数获取对应的连接对象咯!
注意:“Xen:///”是表示的“Xen的本地的连接”其他VMM软件有不同的表示方法,不一一列出。在此的:“Xen:///”就是我们说所的“URI”了。PS,另外两个函数,也必不可少次URI。
最后,当然是关闭连接了啊。这和我们C中记得释放资源是一个良好的习惯是一样的。
至于这个函数,大家记住就行了……没啥特别的……跟那个free()角色差不多的……