嵌入式 hi3518平台检测网线是否插上

[html] view plain copy

 
 

  1.   

[html] view plain copy

 
 

  1. /********************************** (C) COPYRIGHT *******************************  
  2. * File Name          : linkstatus_check.c  
  3. * Author             : skdkjzz  
  4. * Date               : 2014/08/07  
  5. * Description        : 网线是否插上  
  6. *********************************************************************************/  
  7.   
  8.   
  9. #include <sys/types.h>    
  10. #include <string.h>    
  11. #include <stdlib.h>    
  12. #include <sys/types.h>    
  13. #include <sys/ioctl.h>    
  14. #include <sys/stat.h>    
  15. #include <stdio.h>    
  16. #include <string.h>    
  17. #include <errno.h>    
  18. #include <net/if.h>    
  19. #include <sys/utsname.h>    
  20. #include <limits.h>    
  21. #include <ctype.h>       
  22. #include <sys/socket.h>    
  23. #include <netinet/in.h>    
  24. #include <arpa/inet.h>       
  25. #include <linux/sockios.h>    
  26.     
  27. #define ETHTOOL_GLINK   0x0000000a   /* Get link status (ethtool_value) */    
  28. struct ethtool_value {    
  29.                       unsigned int   cmd;    
  30.                       unsigned int   data;     
  31.                      };      
  32.     
  33. int get_netlink_status(const char *if_name);    
  34.      
  35.   
  36.   
  37. /****************************************************************   
  38.    return value:    
  39.    -1 -- error , details can check errno    
  40.    1  -- interface link up    
  41.    0  -- interface link down.    
  42. ****************************************************************/  
  43. int get_netlink_status(const char *if_name)    
  44. {    
  45.     int skfd;    
  46.     struct ifreq ifr;    
  47.     struct ethtool_value edata;    
  48.     edata.cmd = ETHTOOL_GLINK;    
  49.     edata.data = 0;    
  50.     memset(&ifr, 0, sizeof(ifr));    
  51.     strncpy(ifr.ifr_name, if_name, sizeof(ifr.ifr_name) - 1);    
  52.     ifr.ifr_data = (char *)&edata;    
  53.     if ((skfd = socket(AF_INET, SOCK_DGRAM, 0)) == 0)    
  54.         return -1;    
  55.     if (ioctl(skfd, SIOCETHTOOL, &ifr) == -1)    
  56.     {    
  57.        close(skfd);         
  58.        return -1;    
  59.     }    
  60.     close(skfd);    
  61.     return edata.data;    
  62. }    
  63.   
  64.   
  65. int main()    
  66. {    
  67.     char net_buf[10]="eth0";   
  68.     printf("Net link status: %s\n", get_netlink_status(net_buf) == 1 ? "up" : "down");    
  69.     return 0;    
  70. }    
  71.    
  72.   
  73.   
  74.    </span>  
时间: 2024-09-08 17:56:59

嵌入式 hi3518平台检测网线是否插上的相关文章

嵌入式 hi3518平台以太网网络模块设计包括重连机制和网线检测机制

[html] view plain copy     <span style="font-family:Courier New;">   #include <sys/types.h>     #include <string.h>     #include <stdlib.h>     #include <sys/ioctl.h>     #include <sys/stat.h>     #include <

嵌入式 hi3518平台uboot引导nfs文件系统

首先贴出来我的bootargs的设置(注没有换行符!!!): setenv bootargs noinitrd mem=64M root=/dev/nfs init=/linuxrc rw nfsroot=10.10.2.59:/opt/rootfs/ ip=10.10.1.156:10.10.2.59:10.10.1.1:255.255.255.0:skdkjzz:eth0:off console=ttyAMA0,115200   Linux编译生成zImage,但是uboot不能识别,ubo

嵌入式 hi3518平台指定网卡测试是否通外网

版权声明:本文为博主原创文章,未经博主允许不得转载. [html] view plain copy        [html] view plain copy     /********************************** (C) COPYRIGHT *******************************     * File Name          : netstatus_check.c     * Author             : skdkjzz     

嵌入式 hi3518平台多路码流添加osd

[html] view plain copy     <span style="font-family:Courier New;">      /******************************************************************************   function : overlay process   1) create some overlay regions   2) display overlay regi

校园网-插上学校的网线,访问不了内网,可以登录外网

问题描述 插上学校的网线,访问不了内网,可以登录外网 我插上学校的网线,使用学校的校园网登录客户端,可以访问外网,但是登录不了内网 真是头疼,外网断了才能进入内网! 解决方案 内网需要身份认证,校园网设置了身份认证 解决方案二: 有验证吧,像我学校是上内网就要用自己到学号 解决方案三: 内网应该需要身份的验证吧 解决方案四: 估计是访问内网的IP包被交换机禁掉了吧

Wince MFC OLE DB SQLCE数据库访问技术(一):嵌入式目标平台安装sqlCE

首先到微软官方下载sqlCE 3.0 下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=e9aa3f8d-363d-49f3-ae89-64e1d149e09b   先在PC机上安装sdk.   当然由于需要将CAB包安装到嵌入式目标跑平台,Microsoft ActiveSync也需要安装,Microsoft ActiveSync微软官方也可以下载到最新版本是 V4.2的.   然后找

插上电源电脑就自动开机的解决方法

  插电即开机,插上电源电脑自动开机怎么回事,如何解决呢? 有些朋友有关机后断开电源板电源的习惯,可是却常常被一个问题困扰,就是电源板一通电,计算机就自动开机了,Power键形同虚设.解决:有些主板在BIOS设置的"Power Management Setup"中,有一个选项 "Pwron After PW-Fail",它的默认设置为"ON",将它设置为"OFF",下一次再通电时就不会自动开机了.如果没有这个选项,可以把电源管

电脑在插上电源后自动开机

  有时候电脑就像有了自己的意识一样,一插上电源就自己启动了,经常会吓人一跳.电脑主机一插上电源就会自动开机,是因为主板BIOS中设置了来电自启. 不同的BIOS,设置方法不一样,下面列举几种: 进入Power Management Setup(电源管理设定)→Power Again(再来电状态),此项决定了开机时意外断电之后,电力供应恢复时系统电源的状态.设定值有: Power Off(保持系统处于关机状态) Power On(保持系统处于开机状态) Last State(恢复到系统断电前的状

哈尔滨市平房区云计算助力 为创城插上智慧的翅膀

随着创建文明城市工作的不断深入,哈尔滨市平房区智慧城市建设的成果,不断地为创城所用,创城插上了智慧的翅膀,在文明的天空里,展现出动人的魅力.目前,平房区出资建设主要街路的高清监控摄像头152个,新建13处48个交通卡口.12个高空鹰眼超远距摄像机,完成97处人脸识别卡口56处补点补位摄像头安装工作,在城管管理.交通疏导.安全防范等方面均发挥了重要作用--6月6日,"美丽哈尔滨·全国文明城市行"媒体团走进位于平房区的中国云谷数字化城管指挥中心. "三网合一",城市管理