KDK_NC_GET_UPCARDS(3)
🌸 KDK_NC_GET_UPCARDS(3) — Library Functions Manual 🌸
okay bestie, pull up a chair because this one is kdk_nc_get_upcards(3), straight out of the Library Functions Manual, and it is genuinely so useful. it's giving "who's actually online right now" but for your network cards. 💅
✨ NAME ✨
kdk_nc_get_upcards — 获取系统中当前处于 link up 状态的网卡列表
(translation for the girlies: it grabs you the list of NICs that are currently chilling in the "link up" state on your system. iconic behaviour, no cap. 🦋)
✨ SYNOPSIS ✨
#include <libkync.h>
extern char** kdk_nc_get_upcards();
Link with -lkyhw.
yes queen, that's -lkyhw — don't forget it or the linker will simply Not. 😭
💖 Detailed Description 💖
so the main function of this interface — the whole entire point of it, the main character energy — is to obtain a list of NICs that are currently in the "link up" state on the system.
that's it. that's the job. she shows up, she tells you which cards are up, she leaves. 🔥
🎀 RETURN VALUE 🎀
- On success — you get back a list of NIC names, and it ends with a
NULLstring, because how else would you know it's over. it's Generated byallocand it needs to be recycled bykdk_nc_freeall. bestie, please free your memory. i am begging. 🙈 - On error — return
NULL. that's it, that's the whole error handling, go check your vibe. 💀
🌈 EXAMPLES 🌈
here's the full glow-up, verbatim, copy it exactly:
#include "libkync.h"
#include <stdio.h>
#include <stdlib.h>
int main()
{
char **cards = kdk_nc_get_cardlist();
size_t index = 0;
printf("所有网卡:\n");
while (cards[index])
{
char *mac = kdk_nc_get_phymac(cards[index]);
char *ipv4 = kdk_nc_get_private_ipv4(cards[index]);
char *ipv6 = kdk_nc_get_private_ipv6(cards[index]);
char *driver = kdk_nc_get_driver(cards[index]);
char vendor[256] = " ", product[256] = " ";
kdk_nc_get_vendor_and_product(cards[index], vendor, product);
printf("Card %zd: %sStatus: %sMac: %sIPv4: %sIPv6: %s Vendor: %s Product: %s Type: %s driver: %s\n",
index + 1, cards[index], kdk_nc_is_up(cards[index]) == 1 ? "Up" : "Down",
mac, ipv4, ipv6, vendor, product,
kdk_nc_is_wireless(cards[index]) ? "wireless" : "ethernet", driver);
char **list4 = kdk_nc_get_ipv4(cards[index]);
int i = 0;
printf("AllIpV4: ");
while (list4 && list4[i])
{
printf("%s", list4[i++]);
}
printf("\n");
char **list6 = kdk_nc_get_ipv6(cards[index]);
printf("AllIpV6: ");
i = 0;
while (list6 && list6[i])
{
printf("%s", list6[i++]);
}
printf("\n");
free(mac);
free(ipv4);
free(ipv6);
free(list4);
free(list6);
free(driver);
index++;
}
kdk_nc_freeall(cards);
char **upcards = kdk_nc_get_upcards();
index = 0;
printf("工作网卡:\n");
while (upcards[index])
{
printf("Card %zd: %s\n", index + 1, upcards[index]);
index++;
}
kdk_nc_freeall(upcards);
return 0;
}
see how she does it? kdk_nc_get_cardlist() for all the cards, then kdk_nc_get_upcards() at the end for just the 工作网卡 — the working ones. then kdk_nc_freeall(upcards) because we are responsible queens. 👑
💜 CONFORMING TO 💜
These functions are as per the withdrawn POSIX.1e draft specification. (withdrawn!! she's vintage!! 🎀)
The following functions are Linux extensions:
kdk_nc_is_up()kdk_nc_get_cardlist()kdk_nc_get_phymac()kdk_nc_get_private_ipv4()kdk_nc_get_ipv4()kdk_nc_get_private_ipv6()kdk_nc_get_ipv6()kdk_nc_is_wireless()kdk_nc_get_vendor_and_product()kdk_nc_get_driver()- and
kdk_nc_freeall()
🌟 SEE ALSO 🌟
go read these next, they're all part of the same friend group:
kdk_nc_is_up(3)kdk_nc_get_cardlist(3)kdk_nc_get_phymac(3)kdk_nc_get_private_ipv4(3)kdk_nc_get_ipv4(3)kdk_nc_get_private_ipv6(3)kdk_nc_get_ipv6(3)kdk_nc_is_wireless(3)kdk_nc_get_vendor_and_product(3)kdk_nc_get_driver(3)- and
kdk_nc_freeall(3)
and that's the whole page, bestie!! 🫶 this one's from the Linux Programmer's Manual, dated Fri Aug 25 2023, and it lives at KDK_NC_GET_UPCARDS(3). go get those upcards, and remember: free your memory. periodt. 💖✨🌸
📦 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