KDK_SYSTEM_GET_HOSTVIRTTYPE(3)

NAME
kdk_system_get_hostVirtType - 获取操作系统宿主机的虚拟机类型

SYNOPSIS
#include <libkysysinfo.h>

extern char* kdk_system_get_hostVirtType();

Link with -lkysysinfo.

Detailed Description
The main function of the interface is to obtain the virtual machine type of the operating system host.

RETURN VALUE
On success, returns the virtual machine type of type char*; The content is [none, qemu, kvm, zvm, vmware, hyper-v, orcale virtualbox, xen, bochs, uml, parallels, bhyve, qnx, arcn, openvz, lxc, lxc-libvirt, systemd-nspawn, docker, podman, rkt, wsl]， where none indicates running in a physical environment; Other strings represent specific virtual environment types; The returned string needs to be released by free

On error, return NULL.

EXAMPLES
    #include <libkysysinfo.h>
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        char *res = kdk_system_get_architecture();
        printf("架构：%s, res);
        free(res);
        res = kdk_system_get_systemName();
        printf("系统名称：%s, res);
        free(res);
        res = kdk_system_get_version(0);
        printf("系统简略版本：%s, res);
        free(res);
        res = kdk_system_get_version(1);
        printf("系统详细版本：%s, res);
        free(res);
        res = kdk_system_get_kernelVersion();
        printf("内核版本：%s, res);
        free(res);
        res = kdk_system_get_serialNumber();
        printf("序列号：%s, res);
        free(res);
        int p;
        int d;
        int act = kdk_system_get_activationStatus(&p,&d);
        printf("--------------);
        printf("激活状态码：%d,act);
        printf("激活状态：%s, act == 1 ? "已激活" : act == 0 ? "未激活" : "已过期");
        res = kdk_system_get_eUser();
        printf("当前用户：%s, res);
        // free(res);
        res = kdk_system_get_eUser_login_time();
        printf("登录时间：%s, res);
        res = kdk_system_get_projectName();
        printf("项目编号名：%s, res);
        free(res);
        int zyj = kdk_system_is_zyj();
        printf("专用机：%s, zyj == 0 ? "非专用机":"专用机");
        res = kdk_system_get_hostVirtType();
        printf("虚拟机类型：%s, res);
        free(res);
        res = kdk_system_get_hostCloudPlatform();
        printf("云平台类型：%s, res);
        free(res);
        version_t test = kdk_system_get_version_detaile( );
        printf("test.os_version = %s,test.os_version);
        printf("test.update_version = %s,test.update_version);
        char** name = kdk_system_get_resolving_power();
        // printf("name = %s, name);
        size_t count = 0;
        while (name[count])
        {
            printf("No. %d	 %s, count + 1, name[count]);
            count ++;
        }
        kdk_resolving_freeall(name);
        char *ver = kdk_system_get_systemCategory();
        printf("系统硬件版本类别 = %s, ver);
        free(ver);
        // ver = kdk_system_get_cloudPlatformType();
        // printf("云平台类型 = %s, ver);
        // free(ver);
        char **ud_time = kdk_system_get_startup_time();
        count = 0;
        while (ud_time[count])
        {
            printf("开机时间 = %s, ud_time[count]);
            count++;
        }
        kdk_resolving_freeall(ud_time);

        ud_time = kdk_system_get_shutdown_time();
        count = 0;
        while (ud_time[count])
        {
            printf("关机时间 = %s, ud_time[count]);
            count++;
        }
        kdk_resolving_freeall(ud_time);
        res = kdk_get_host_vendor();
        printf("整机制造商 = %s, res);
        free(res);
        res = kdk_get_host_product();
        printf("整机型号 = %s, res);
        free(res);
        res = kdk_get_host_serial();
        printf("整机序列号 = %s, res);
        free(res);
        res = kdk_system_get_buildTime();
        printf("构建时间：%s, res);
        free(res);
        res = kdk_system_get_hostName();
        printf("主机名：%s, res);
        free(res);
        printf("系统位数：%d, kdk_system_get_word());
        struct KPci *pci = kdk_hw_get_pci_info();
        struct KPci *tmp = pci;
        while (tmp)
        {
            printf("slot path : %s, tmp->slot_path);
            printf("	class name :%s, tmp->class_name);
            printf("	product name :%s, tmp->product_name);
            printf("	rev :%02x, tmp->rev);
            printf("	subsystem name :%s, tmp->ss_name);
            printf("	driver user :%s, tmp->driver_use);
            printf("	modules :");
            for(int i = 0; i < tmp->module_count; i++)
            {
                printf("	%s", tmp->modules[i]);
            }
            printf(");
            tmp = tmp->next;
        }
        kdk_hw_free_pci_info(pci);
        res = kdk_system_get_appScene();
        printf("应用场景：%s, res);
        free(res);

        return 0;
    }

CONFORMING TO
These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: kdk_system_get_systemName(), kdk_system_get_architecture(), kdk_system_get_activationStatus(), kdk_system_get_version(), kdk_system_get_serialNumber(), kdk_system_get_kernelVersion(), kdk_system_get_eUser(), kdk_system_get_eUser_login_time(), kdk_system_get_projectName(), kdk_system_get_projectSubName(), kdk_system_get_productFeatures(), kdk_system_get_hostCloudPlatform(), kdk_system_is_zyj(), kdk_system_get_version_detaile(), kdk_system_get_resolving_power(), kdk_system_get_systemCategory(), kdk_system_get_startup_time(), kdk_system_get_shutdown_time(), kdk_get_host_vendor(), kdk_get_host_product(), kdk_get_host_serial(), kdk_system_get_hostName(), kdk_system_get_word(), kdk_system_get_buildTime(), kdk_resolving_freeall(), kdk_hw_get_pci_info(), kdk_hw_free_pci_info(), and kdk_system_get_appScene().

SEE ALSO
kdk_system_get_systemName(3), kdk_system_get_architecture(3), kdk_system_get_version(3), kdk_system_get_activationStatus(3), kdk_system_get_serialNumber(3), kdk_system_get_kernelVersion(3), kdk_system_get_eUser(3), kdk_system_get_eUser_login_time(3), kdk_system_get_projectName(3), kdk_system_get_projectSubName(3), kdk_system_get_productFeatures(3), kdk_system_get_hostCloudPlatform(3), kdk_system_is_zyj(3), kdk_system_get_version_detaile(3), kdk_system_get_resolving_power(3), kdk_system_get_systemCategory(3), kdk_system_get_startup_time(3), kdk_system_get_shutdown_time(3), kdk_get_host_vendor(3), kdk_get_host_product(3), kdk_get_host_serial(3), kdk_system_get_hostName(3), kdk_system_get_word(3), kdk_system_get_buildTime(3), kdk_resolving_freeall(3), kdk_hw_get_pci_info(3), kdk_hw_free_pci_info(3), and kdk_system_get_appScene(3).