KDK_SYSTEM_GET_SYSTEMCATEGORY(3)

📦 version 3.0.1.4, in arch rolling, ubuntu resolute, ubuntu stonking

💖 kdk_system_get_systemCategory(3) 💖

okay bestie, welcome to the Library Functions Manual section, and today's main character is kdk_system_get_systemCategory(3). this one's lowkey iconic — it's the little function that tells you what hardware version category your display system is rocking. yes, the whole vibe check of your screen, in one string. periodt. 🦋


✨ NAME ✨

kdk_system_get_systemCategory — 获取显示系统硬件版本类别

(that's "get the display system hardware version category" if your Mandarin is not yet slaying 💅)


✨ SYNOPSIS ✨

#include <libkysysinfo.h>

extern char* kdk_system_get_systemCategory();

Link with -lkysysinfo.

bestie do NOT forget the -lkysysinfo at link time or the linker will simply Not Know Her 😭

✨ Detailed Description ✨

so the whole entire job of this interface? it's to obtain the display system hardware version category. that's it. that's the gig. it's giving "one job, done beautifully." 👑


✨ RETURN VALUE ✨

  • On success — you get back the system hardware version category, and its type is char*. the content is {Tablet, MaxTablet}, "Tablet-平板", "MaxTablet-大屏".
  • if the file or field was never read, the string it returns is none — no drama, just none.
  • the returned string needs to be released by free — fr fr, bestie, if you don't free it that's a leak and leaks are NOT the vibe 🙈
  • On error — it returns NULL.

✨ EXAMPLES ✨

here's the full demo, copied exactly because we do not touch the code, we only hype it up 💜

#include <libkysysinfo.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char *res = kdk_system_get_architecture();
    printf("架构:%s0, res);
    free(res);
    res = kdk_system_get_systemName();
    printf("系统名称:%s0, res);
    free(res);
    res = kdk_system_get_version(0);
    printf("系统简略版本:%s0, res);
    free(res);
    res = kdk_system_get_version(1);
    printf("系统详细版本:%s0, res);
    free(res);
    res = kdk_system_get_kernelVersion();
    printf("内核版本:%s0, res);
    free(res);
    res = kdk_system_get_serialNumber();
    printf("序列号:%s0, res);
    free(res);
    int p;
    int d;
    int act = kdk_system_get_activationStatus(&p,&d);
    printf("--------------0);
    printf("激活状态码:%d0,act);
    printf("激活状态:%s0, act == 1 ? "已激活" : act == 0 ? "未激活" : "已过期");

    res = kdk_system_get_eUser();
    printf("当前用户:%s0, res);
    // free(res);

    res = kdk_system_get_eUser_login_time();
    printf("登录时间:%s0, res);

    res = kdk_system_get_projectName();
    printf("项目编号名:%s0, res);
    free(res);
    int zyj = kdk_system_is_zyj();
    printf("专用机:%s0, zyj == 0 ? "非专用机":"专用机");

    res = kdk_system_get_hostVirtType();
    printf("虚拟机类型:%s0, res);
    free(res);

    res = kdk_system_get_hostCloudPlatform();
    printf("云平台类型:%s0, res);
    free(res);

    version_t test = kdk_system_get_version_detaile( );
    printf("test.os_version = %s0,test.os_version);
    printf("test.update_version = %s0,test.update_version);

    char** name = kdk_system_get_resolving_power();
    // printf("name = %s0, name);
    size_t count = 0;
    while (name[count])
    {
        printf("No. %d %s0, count + 1, name[count]);
        count ++;
    }
    kdk_resolving_freeall(name);

    char *ver = kdk_system_get_systemCategory();
    printf("系统硬件版本类别 = %s0, ver);
    free(ver);

    // ver = kdk_system_get_cloudPlatformType();
    // printf("云平台类型 = %s0, ver);
    // free(ver);

    char **ud_time = kdk_system_get_startup_time();
    count = 0;
    while (ud_time[count])
    {
        printf("开机时间 = %s0, ud_time[count]);
        count++;
    }
    kdk_resolving_freeall(ud_time);

    ud_time = kdk_system_get_shutdown_time();
    count = 0;
    while (ud_time[count])
    {
        printf("关机时间 = %s0, ud_time[count]);
        count++;
    }
    kdk_resolving_freeall(ud_time);

    res = kdk_get_host_vendor();
    printf("整机制造商 = %s0, res);
    free(res);

    res = kdk_get_host_product();
    printf("整机型号 = %s0, res);
    free(res);

    res = kdk_get_host_serial();
    printf("整机序列号 = %s0, res);
    free(res);

    res = kdk_system_get_buildTime();
    printf("构建时间:%s0, res);
    free(res);

    res = kdk_system_get_hostName();
    printf("主机名:%s0, res);
    free(res);

    printf("系统位数:%d0, kdk_system_get_word());

    struct KPci *pci = kdk_hw_get_pci_info();
    struct KPci *tmp = pci;
    while (tmp)
    {
        printf("slot path : %s0, tmp->slot_path);
        printf("class name :%s0, tmp->class_name);
        printf("product name :%s0, tmp->product_name);
        printf("rev :%02x0, tmp->rev);
        printf("subsystem name :%s0, tmp->ss_name);
        printf("driver user :%s0, tmp->driver_use);
        printf("modules :");
        for(int i = 0; i < tmp->module_count; i++)
        {
            printf("%s", tmp->modules[i]);
        }
        printf("0);
        tmp = tmp->next;
    }
    kdk_hw_free_pci_info(pci);

    res = kdk_system_get_appScene();
    printf("应用场景:%s0, res);
    free(res);

    return 0;
}
see how our girl kdk_system_get_systemCategory() shows up mid-example, gets free'd right after? yeah. that's the assignment. ✨

✨ CONFORMING TO ✨

these functions are as per the withdrawn POSIX.1e draft specification. and 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_hostVirtType()
  • kdk_system_get_hostCloudPlatform()
  • kdk_system_is_zyj()
  • kdk_system_get_version_detaile()
  • kdk_system_get_resolving_power()
  • 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()
  • kdk_system_get_appScene()

✨ SEE ALSO ✨

the whole friend group, all in one place 🫶


and that's the whole page, bestie!! 💖🌸 this one came straight out of the Linux Programmer's Manual, dated Tue Sep 19 2023, and the manual page it lives on is KDK_SYSTEM...TEMCATEGORY(3). go forth, call it, free the string, and slay ✨👑🎀

📦 where this page comes from