我有以下代码获取接口的 MAC 地址:
static struct ifreq get_mac( int socket_desc, char *if_name ) {
struct ifreq if_mac;
memset( &if_mac, 0, sizeof( struct ifreq ) );
strncpy( if_mac.ifr_name, if_name, IFNAMSIZ - 1 );
...
return if_mac;
}
我的 C 经验仅限于我在大学所做的事情。我大致得到了指针,但我知道struct
按值返回大 s 是一个坏主意,因为您可能会用完堆栈空间(stackoverflow!)。如何更改上述代码以返回指向的指针if_mac
?这有点令人困惑,因为有一个struct
和一个“地址”运算符:S。