所以我尝试使用ether_aton()
which 返回一个struct ether_addr *
.
我试图把它放在我的struct ether_header *eptr
(来自net/ethernet.h)中,它有ether_shost
成员。我试过这个:
struct ether_header *eptr; /* net/ethernet.h */
...
(struct ether_addr*)(eptr->ether_shost) = ether_aton(SRC_ETHER_ADDR);
这给了我"Error: lvalue required as left operand of assignment"
我知道我只是没有正确地投射它,但不知道如何。
编辑:最终得到它。谢谢你们的帮助。
struct ether_addr* eth_addr = ether_aton(SRC_ETHER_ADDR);
int i;
for(i=0; i<6; i++)
eptr->ether_shost[i] = eth_addr->ether_addr_octet[i];
只需单独分配每个八位字节。