KDK_SYSTEM_GET_PRODUCTFEATURES(3)

NAME
kdk_system_get_productFeatures - 获取操作系统产品标识码

SYNOPSIS
#include <libkysysinfo.h>

extern unsigned int kdk_system_get_productFeatures();

Link with -lkysysinfo.

Detailed Description
The main function of the interface is to obtain the operating system product identifier.

RETURN VALUE
On success, returns the identifier code of type int; such as "0000-信息异常", "0001-仅PC特性", "0010-仅平板特性", "0011-支持平板与PC特性".

On error, return 0.

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_hostVirtType(), 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_hostVirtType(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).