C: ether_aton 不起作用

C: ether_aton does not work

我有以下功能:

int parse_mac(const char *hwaddr, uint8_t *dst_mac)
{
    (void)hwaddr; (void)dst_mac;

    //TODO: Parse the MAC address (string) pointed to by hwaddr and store
    //the result in dst. Return 0 on success and -1 on error.

    struct ether_addr* ether_address = ether_aton(hwaddr);
    if(ether_address==NULL){
        return -1;
    }
    int i;
    for(i=0;i<6;i++){
        //*(dst_mac+i) = (*ether_address).ether_addr_octet[i];
    }
    printf("%c\n",(*ether_address).ether_addr_octet[0]);

    return 0;
}

给定一个 MAC 地址(由 hwaddr 指向),我想通过 ether_aton 将其转换为我的 dst_mac 变量。但是, ether_address 结果结构中的数组看起来是空的。例如,底部的 printf 给了我一个空字符。怎么了?

基本上,ether_aton 将您的 MAC 地址(由冒号分隔的十六进制字符)转换为数字。在我的代码中,我试图打印 %c,而我应该打印 %d。