KDK_NC_GET_DRIVER(3)

NAME
kdk_nc_get_driver - 获取指定网卡的驱动

SYNOPSIS
#include <libkync.h>

extern char *kdk_nc_get_driver(const char *nc);

Link with -lkyhw.

Detailed Description
The main function of the interface is to obtain the driver for the specified NIC nc

The argument nc is the name of the NIC, such as "eno1".

RETURN VALUE
On success, returns the NIC driver of type char*; The returned string needs to be released by free

On error, return NULL.

EXAMPLES
    #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: %s	Status: %s	Mac: %s	IPv4: %s	IPv6: %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;
    }

CONFORMING TO
These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: kdk_nc_is_up(), kdk_nc_get_upcards(), kdk_nc_get_cardlist(), kdk_nc_get_phymac(), 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_private_ipv4(), and kdk_nc_freeall().

SEE ALSO
kdk_nc_is_up(3), kdk_nc_get_upcards(3), kdk_nc_get_cardlist(3), kdk_nc_get_phymac(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_private_ipv4(3), and kdk_nc_freeall(3).