KDK_SYSTEM_GET_SERIALNUMBER(3)
💖 KDK_SYSTEM_GET_SERIALNUMBER 💖
okay so bestie, welcome to the Library Functions Manual section, and today's main character is kdk_system_get_serialNumber 💅 this one's literally just here to hand you the 获取操作系统服务序列号 — the operating system service serial number 🎀 that's it, that's the whole job, and she does it flawlessly.
✨ NAME ✨
kdk_system_get_serialNumber — 获取操作系统服务序列号 (get that OS service serial number, periodt)
🌸 SYNOPSIS 🌸
#include <libkysysinfo.h>
extern char* kdk_system_get_serialNumber();
and bestie, don't forget to link with -lkysysinfo or it's giving undefined reference 😭
🦋 DETAILED DESCRIPTION 🦋
so the whole entire point of this interface — its main function, its whole vibe, its entire reason for existing — is to obtain the operating system service serial number. that's it. no side quests. no drama. just the serial number 🔥
👑 RETURN VALUE 👑
- On success, it returns the operating system service serial number, of type
char*. The returned string needs to be released byfree— yes bestie, you gotta free it yourself, this is not a set-it-and-forget-it situation 🙈 - On error, it returns
NULL. check for it, pls, i'm begging 🥺
💜 EXAMPLES 💜
here's the whole demo, copied verbatim because we do NOT mess with the source of truth:
#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;
}
🌈 CONFORMING TO 🌈
ngl bestie, the lore here is a lil chaotic. These functions are as per the withdrawn POSIX.1e draft specification (withdrawn, as in it's not a thing anymore, we just keep it in our hearts 💀).
And then these ones right here are Linux extensions:
kdk_system_get_systemName(), kdk_system_get_architecture(), kdk_system_get_activationStatus(), kdk_system_get_version(), 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_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 🎀
the whole friend group, go say hi 👋 (iykyk):
kdk_system_get_systemName(3), kdk_system_get_architecture(3), kdk_system_get_version(3), kdk_system_get_activationStatus(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_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).
and that's a wrap, bestie 🫶 this page came to you straight out of the Linux Programmer's Manual, dated Tue Sep 19 2023. stan the manual, free your strings, drink water, and go get that serial number 💅✨
📦 where this page comes from
- arch rolling: libkysdk-system 3.0.1.4-1 · LGPL-3.0-or-later AND LGPL-2.1-only OR LGPL-3.0-only AND LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR LGPL-3.0-only WITH Qt-LGPL-exception-1.1 AND MIT
- ubuntu resolute: libkysdk-system-dev 3.0.1.2-0ubuntu1 · LGPL-3.0-only
- ubuntu stonking: libkysdk-system-dev 3.0.1.3-0ubuntu1 · LGPL-3.0-or-later
- 💖 girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms