.TH "KDK_NC_FREEALL" 3 "Tue Sep 05 2023" "Linux Programmer's Manual" \" .SH NAME kdk_nc_freeall - 用于回收字符串列表 .SH SYNOPSIS .nf .B #include .sp .BI "extern inline void kdk_nc_freeall(char **"ptr ");" .sp Link with \fI\-lkyhw\fP. .SH "Detailed Description" The main function of the interface is to recycle a list of strings of type char **. .PP The argument .I ptr is a list of strings of type char **. .SH "RETURN VALUE" No return value .SH EXAMPLES .EX #include "libkync.h" #include #include int main() { char **cards = kdk_nc_get_cardlist(); size_t index = 0; printf("所有网卡:\en"); 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] = "\0", product[256] = "\0"; kdk_nc_get_vendor_and_product(cards[index], vendor, product); printf("Card %zd: %s\tStatus: %s\tMac: %s\tIPv4: %s\tIPv6: %s\t Vendor: %s\t Product: %s\t Type: %s\t driver: %s\en", 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\t", list4[i++]); } printf("\en"); char **list6 = kdk_nc_get_ipv6(cards[index]); printf("AllIpV6: "); i = 0; while (list6 && list6[i]) { printf("%s\t", list6[i++]); } printf("\en"); 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("工作网卡:\en"); while (upcards[index]) { printf("Card %zd: %s\en", index + 1, upcards[index]); index++; } kdk_nc_freeall(upcards); return 0; } .SH "CONFORMING TO" These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: .BR kdk_nc_is_up (), .BR kdk_nc_get_upcards (), .BR kdk_nc_get_cardlist (), .BR kdk_nc_get_private_ipv4 (), .BR kdk_nc_get_ipv4 (), .BR kdk_nc_get_private_ipv6 (), .BR kdk_nc_get_ipv6 (), .BR kdk_nc_is_wireless (), .BR kdk_nc_get_vendor_and_product (), .BR kdk_nc_get_phymac (), and .BR kdk_nc_get_driver (). .SH "SEE ALSO" .BR kdk_nc_is_up (3), .BR kdk_nc_get_upcards (3), .BR kdk_nc_get_cardlist (3), .BR kdk_nc_get_private_ipv4 (3), .BR kdk_nc_get_ipv4 (3), .BR kdk_nc_get_private_ipv6 (3), .BR kdk_nc_get_ipv6 (3), .BR kdk_nc_is_wireless (3), .BR kdk_nc_get_vendor_and_product (3), .BR kdk_nc_get_phymac (3), and .BR kdk_nc_get_driver (3).