【发布时间】:2012-06-15 20:25:36
【问题描述】:
所以我尝试使用ether_aton(),它返回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];
只需要单独分配每个八位字节。
【问题讨论】:
-
您可能的意思是
eptr = ether_aton(SRC_ETHER_ADDR);将ether_header *分配给u_int8_t ether_shost[ETH_ALEN]没有意义。