KDK_SYSTEM...NELVERSION(3)
💅 KDK_SYSTEM...NELVERSION(3) — the girlies' guide to kdk_system_get_kernelVersion
okay so bestie, welcome to section 3 of the manual, aka the library functions corner, and today's main character is literally named KDK_SYSTEM...NELVERSION. she's a little mysterious (that truncated name? iykyk), but her whole thing is: tell you what kernel version you're running. that's it. that's the job. and she does it flawlessly. 💖
✨ NAME ✨
kdk_system_get_kernelVersion — 获取内核版本号, which is giving "get the kernel version number" energy 🧚
✨ SYNOPSIS ✨
#include <libkysysinfo.h>
extern char* kdk_system_get_kernelVersion();
and you gotta Link with -lkysysinfo, no cap, or the linker will simply not know her 😭
✨ DETAILED DESCRIPTION ✨
okay so the vibe here? The main function of the interface is to obtain kernel version number. that's literally the whole thing. she pulls up the kernel version. periodt. 👑
✨ RETURN VALUE ✨
- On success, returns kernel version number of type
char*— and heads up queen, The returned string needs to be released byfree. she's not gonna clean up after herself, that's YOUR job 🫶 - On error, return
NULL.
not me reminding you again: free that string. memory leaks are not cute. 💀
✨ EXAMPLES ✨
here's the full flex — a whole main() showing off basically every function in the family. take notes bestie 📝
#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;
}
bestie i know, i know — yes, that's exactly how it's written in the original and yes, we are keeping it character for character. not my business to fix it, my business is to deliver it to you faithfully 💅✨
✨ CONFORMING TO ✨
These functions are as per the withdrawn POSIX.1e draft specification. (withdrawn! we love a vintage moment 🎀)
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_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 🫶
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_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 the whole page bestie!! 🌈✨ it came to you straight from the Linux Programmer's Manual, dated Tue Sep 19 2023 — so if you're reading this, shoutout to that exact Tuesday, she ate. now go free() your strings and be the main character of your own build 💜👑🎀
📦 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