Ich habe die folgende Funktion:C: ether_aton funktioniert nicht
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;
}
eine MAC-Adresse (auf die durch HWaddr) Da möchte ich, dass in meiner dst_mac
Variable durch ether_aton
konvertieren. Allerdings ist das Array innerhalb der Ergebnisstruktur ether_address
leer oder so scheint es. Zum Beispiel gibt mir das printf unten ein leeres Zeichen. Was ist los mit dir?
Drucken Sie die Oktetts als Hexadezimalziffer oder Dezimalziffern aus, um zu sehen, was die Werte sind. hängen Sie nicht davon ab, dass das Oktett ein druckbares Zeichen ist. –
Entfernen Sie die erste Codezeile. Es ist potentiell gefährlich. – Olaf
Hallo Richard Chambers, ich habe die Ergebnisse als Dezimalzahlen ausgedruckt: Ich bekomme 0, 22, 62, 95, 2 und 31 in dem Array der Größe 6. Wie kann ich diese Zahlen interpretieren? –