コード例 #1
0
char *gnrc_netif_addr_to_str(char *out, size_t out_len, const uint8_t *addr,
                             size_t addr_len)
{
    size_t i;

    if (out_len < (3 * addr_len)) { /* 2 for every byte, 1 for ':' or '\0' */
        return NULL;
    }

    out[0] = '\0';

    for (i = 0; i < addr_len; i++) {
        out[(3 * i)] = _half_byte_to_char(addr[i] >> 4);
        out[(3 * i) + 1] = _half_byte_to_char(addr[i] & 0xf);

        if (i != (addr_len - 1)) {
            out[(3 * i) + 2] = ':';
        }
        else {
            out[(3 * i) + 2] = '\0';
        }
    }

    return out;
}
コード例 #2
0
ファイル: gnrc_netif.c プロジェクト: astralien3000/RIOT
char *gnrc_netif_addr_to_str(const uint8_t *addr, size_t addr_len, char *out)
{
    char *res = out;

    assert((out != NULL) && ((addr != NULL) || (addr_len == 0U)));
    out[0] = '\0';
    for (size_t i = 0; i < addr_len; i++) {
        *(out++) = _half_byte_to_char(*(addr) >> 4);
        *(out++) = _half_byte_to_char(*(addr++) & 0xf);
        *(out++) = (i == (addr_len - 1)) ? '\0' : ':';
    }
    return res;
}