推 phterry:有用推 08/24 16:52
※ 引述《panda22 (panda)》之銘言:
: 請問在user level中有沒有辦法 得知乙太網路
: 網路線是否有插上網路卡
: 當然前提是假設驅動程式有提供這樣資訊給核心
: 感謝
static int get_link_status(char *interface)
{
struct ethtool_value edata;
int skfd;
struct ifreq ifr;
if (( skfd = socket( AF_INET, SOCK_DGRAM, 0 ) ) < 0 ) {
perror("get_link_status error:\n");
return -1;
}
edata.cmd = ETHTOOL_GLINK;
strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)-1);
ifr.ifr_data = (char *) &edata;
if (ioctl(skfd, SIOCETHTOOL, &ifr) == -1) {
debug("ETHTOOL_GLINK failed: %s\n", strerror(errno));
close(skfd);
return -1;
}
close(skfd);
return edata.data;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.237.154