KDK_NET_GET_HOSTS(3)
💖 KDK_NET_GET_HOSTS(3) 💖
okay bestie, gather round, because this is a Library Functions Manual page and it's about grabbing your hosts config. yes, that hosts config. let's go 🦋
✨ NAME ✨
kdk_net_get_hosts — 获取hosts配置 (aka: get the hosts config, fr fr)
🌸 SYNOPSIS 🌸
#include <libkynetinfo.h>
extern char* kdk_net_get_hosts();
Link with -lkynetinfo.
🎀 Detailed Description 🎀
The main function of the interface is to obtain the hosts configuration. that's it. that's the whole job. it shows up, it reads your hosts config, it hands it to you. main character energy honestly 💅
👑 RETURN VALUE 👑
- On success — returns the hosts configuration of type
char *. and listen, bestie, the returned string needs to be released byfree. do not forget this. the way that memory just sits there unreleased... 😭 - On error — return
NULL.
🫶 real talk: check for NULL before you do anything with it. every single time.
🌈 EXAMPLES 🌈
here's the whole vibe, copied verbatim because facts are facts and I don't play with code:
#include "libkynetinfo.h"
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char *argv[])
{
prouteMapList list = kdk_net_get_route(), tmp = list;
while (tmp)
{
printf("%s default route %s0, tmp->name, tmp->addr);
tmp = tmp->next;
}
kdk_net_free_route(list);
if (argc < 2)
printf("please input test port num0);
else
printf("port:%s's state %d0, argv[1], kdk_net_get_port_stat(atoi(argv[1])));
pChain chain = kdk_net_get_iptable_rules();
pChain tmpchain = chain;
while(tmpchain)
{
printf("Chain: %spolice: %s0,tmpchain->total,tmpchain->policy);
pChainData tmpData = tmpchain->data;
if(tmpData)
printf("target: %sprot: %sopt: %ssource: %sdestination: %soption: %s0,tmpData->target,tmpData->prot,tmpData->opt,
tmpData->source,tmpData->destination,tmpData->option);
printf("0);
tmpchain = tmpchain->next;
}
kdk_net_free_chain(chain);
int result[65536];
int net = kdk_net_get_multiple_port_stat(0, 1000, result);
if(net == 0)
{
size_t count = 0;
for(;count < 1000 ;count++)
{
printf("%d", result[count]);
}
}
else
printf("Failed With %d", net);
printf("0);
char mask[32] = " ";
kdk_net_get_netmask("enaftgm1i0", mask);
printf("mask = %s0, mask);
char **port = kdk_net_get_proc_port();
size_t index = 0;
while(port[index])
{
printf("No.%ld, port = %s0, index+1, port[index]);
index++;
}
kdk_net_freeall(port);
port = kdk_net_get_up_port();
index = 0;
while(port[index])
{
printf("No.%ld, port = %s0, index+1, port[index]);
index++;
}
kdk_net_freeall(port);
char *hosts = kdk_net_get_hosts();
if (hosts != NULL)
{
printf("hosts = %s0, hosts);
free(hosts);
}
char *domain = kdk_net_get_hosts_domain();
if (domain != NULL)
{
printf("domain = %s0, domain);
free(domain);
}
char **resolv = kdk_net_get_resolv_conf();
index = 0;
while(resolv[index])
{
printf("No.%ld, resolv = %s0, index+1, resolv[index]);
index++;
}
kdk_net_freeall(resolv);
return 0;
}
see the little free(hosts); at the bottom? that's the moment. it's giving responsible memory management. we love to see it 🧚
⭐ CONFORMING TO ⭐
These functions are as per the withdrawn POSIX.1e draft specification. (withdrawn, bestie. it's giving vintage. it's giving collector's item 💀)
The following functions are Linux extensions:
kdk_net_get_multiple_port_stat()kdk_net_get_port_stat()kdk_net_get_route()kdk_net_get_iptable_rules()kdk_net_free_route()kdk_net_free_chain()kdk_net_get_netmask()kdk_net_get_proc_port()kdk_net_get_up_port()kdk_net_get_hosts_domain()kdk_net_get_resolv_conf()kdk_net_freeall()
🔥 SEE ALSO 🔥
go read these next, no cap:
kdk_net_get_multiple_port_stat(3)kdk_net_get_port_stat(3)kdk_net_get_route(3)kdk_net_get_iptable_rules(3)kdk_net_free_route(3)kdk_net_free_chain(3)kdk_net_get_netmask()kdk_net_get_proc_port(3)kdk_net_get_up_port(3)kdk_net_get_hosts_domain(3)kdk_net_get_resolv_conf(3)kdk_net_freeall(3)
and that's the whole page, bestie!! 🎀 this one came out of the Linux Programmer's Manual, dated Thu Sep 14 2023, and you just read KDK_NET_GET_HOSTS(3). stay hydrated, free your strings, and go read the source. mwah 💜✨
📦 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