或者哪位大佬寫過獲取網卡名稱的函式,現場要用到VxWorks下檢測網路是否連通的程式。
我是準備用socket和ioctl來獲取網卡運行狀態,但是ioctl的第二個引數是ifreq型別的結構體,需要把網卡名稱賦給 ifr->ifr_name
struct ifreq ifr;
int skfd = socket(AF_INET, SOCK_DGRAM, 0);
strcpy(ifr.ifr_name,adapterName);
if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0)
{
close(skfd);
return -1;
}
if (ifr.ifr_flags & IFF_RUNNING)
{
printf("%s網卡作業正常\n", adapterName);
close(skfd);
return 0;
}
else
{
printf("%s網卡作業例外\n", adapterName);
close(skfd);
return -1;
}
uj5u.com熱心網友回復:
監測網路是否通,直接Ping不就行了。。uj5u.com熱心網友回復:
同意樓上,看連通性要網卡名稱做什么,很多網卡也不需要這些東西。int x=ping("IP",1,0);很好用.0是通了,其它沒通。
uj5u.com熱心網友回復:
muxShow,ifShow看看uj5u.com熱心網友回復:
muxShow,ifShow,ifconfig。這個名稱是驅動里命名的,如果開源,可以進去追一下代碼uj5u.com熱心網友回復:
muxShow ifconfig就可以查看uj5u.com熱心網友回復:
去看一下環境里Ipnet2這個檔案夾里Ipnet_cmd_ifconfig的ipstack_ifconfig_print_info這個函式,使用ipcom_sysctl()這個kernel API來調取所要的引數,注意第一個引數name[6]的配置,可以直接寫死,我當時使用這個函式調取的RX/TX資料量。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/120915.html
標籤:VxWorks開發
