【玩轉開源】Linux C 檢測網口熱插拔
阿新 • • 發佈:2018-12-11
int NetDetect(char *net_name, int *statue) { int ret = 0; int skfd = 0; struct ifreq ifr; skfd = socket(AF_INET, SOCK_DGRAM, 0); //建議socket通訊,AF_INET協議族,SOCK_DGRAM表示UDP協議,0表示使用預設套接字,即這裡的UDP if(skfd < 0){ printf("open socket error\n"); return skfd; } strcpy(ifr.ifr_name, net_name); //要檢測網絡卡的名稱if((ret = ioctl(skfd, SIOCGIFFLAGS, &ifr)) < 0){ //呼叫核心介面,獲取網絡卡資訊 printf("ethernet interface is not valid\n"); close(skfd); return ret; } close(skfd); if(ifr.ifr_flags & IFF_RUNNING){ //判斷網絡卡狀態 *statue = 1; }else{ *statue = 0; } return ret; }
最近事情比較多,有一段時間沒有更新部落格了,這次簡單粗暴,直接上程式碼,這個函式是用來檢測網絡卡狀態的,當然也可以判斷網線是否被拔出咯。
接下來會分享第五篇BananaPi R2如何和4G模組搭配實現,行動通訊功能。