Как получить ifr_hwaddr.sa_data на символ - PullRequest
4 голосов
/ 22 июля 2011

Как это получить:

printf(" %02x:%02x:%02x:%02x:%02x:%02x",
(unsigned char)item->ifr_hwaddr.sa_data[0],
(unsigned char)item->ifr_hwaddr.sa_data[1],
(unsigned char)item->ifr_hwaddr.sa_data[2],
(unsigned char)item->ifr_hwaddr.sa_data[3],
(unsigned char)item->ifr_hwaddr.sa_data[4],
(unsigned char)item->ifr_hwaddr.sa_data[5]);

в это (сохранить в переменной, не печатать его):

char mac[18];

Спасибо

1 Ответ

6 голосов
/ 22 июля 2011

Использование

#include <stdio.h>

int main(int argc, char **argv)
{
    char mac[19]; /* one extra for terminating '\0'; 
                     You may want to make it a little larger
                     still, just to be sure. */

    sprintf(mac, " %02x:%02x:%02x:%02x:%02x:%02x", 
        (unsigned char)item->ifr_hwaddr.sa_data[0],
        (unsigned char)item->ifr_hwaddr.sa_data[1],
        (unsigned char)item->ifr_hwaddr.sa_data[2],
        (unsigned char)item->ifr_hwaddr.sa_data[3],
        (unsigned char)item->ifr_hwaddr.sa_data[4],
        (unsigned char)item->ifr_hwaddr.sa_data[5]);

    printf("%s\n", mac); // string was "printed" to mac array!

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...