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

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

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

    <span style="font-family:Courier New;"> #include <sys/types.h> #include <st ...

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

    版权声明:本文为博主原创文章,未经博主允许不得转载. /********************************** (C) COPYRIGHT *********************** ...

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

    首先贴出来我的bootargs的设置(注没有换行符!!!): setenv bootargs noinitrd mem=64M root=/dev/nfs init=/linuxrc rw nfsro ...

  4. 嵌入式 hi3518平台获取网络环境中的ip、netmask、broadcast等信息

    <span style="font-family:Courier New;"> /********************************** (C) COPY ...

  5. 嵌入式 hi3518平台获取网关

    </pre><pre code_snippet_id="495447" snippet_file_name="blog_20141024_1_70650 ...

  6. 嵌入式 hi3518平台增加路由代码

    <span style="font-family:Courier New;"> /********************************** (C) COPY ...

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

    <span style="font-family:Courier New;"> /******************************************* ...

  8. QT使用WOL实现远程一键开机(局域网,需要目标电脑的主板支持,并且插上网线,用udpSocket.writeDatagram一句话就可以)

    功能:让关机的电脑一键开机,需要目标电脑的主板支持,并且插上网线: 效果:相当于手动按了一下目标电脑的开关机按钮. 没啥技术含量,简单开说... 1.获取目标机MAC地址 QByteArray sMa ...

  9. Linux下如何通过命令检查网卡是否插上网线

    How To:Linux下如何通过命令检查网卡是否插上网线   主要工具为ethtool来检查,主要关注的字段为"Link detected",注意如下的输出,其中em4实际物理上 ...

随机推荐

  1. python_pycharm介绍1

    1. 常用设置 修改编程风格 File-Setting中,Editor下Colors&Fonts修改即可调整风格. 修改字体大小 pycharm默认字体太小,需调整些,Settings--&g ...

  2. OpenStack学习系列-----第一篇 OpenStack介绍

    刚开始接触OpenStack,被它所承诺的前景,以及现在业界对它的期望吸引(OpenStack被誉为21世纪的Linux开源社区,可以预见其的发展前景是何其广阔.).怎么说呢,我现在也暂时相信,Ope ...

  3. 转载网页博客:ie7bug:div容器下的img与div存在间隙

    1.代码及在浏览器上的显示 ie7: ie8+: Firefox: Chrome: 可以看出ie7上在div容器下添加img,div与img中有间隙,而在ie8+和其他浏览器上均显示正常 网页源代码如 ...

  4. MyBatis学习总结_06_调用存储过程

    一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_ ...

  5. J2ee 巴巴网站制作(一)

    用户模块图:

  6. SparkContext和RDD

    SparkContext.scala实现了一个SparkContext的class和object,SparkContext类似Spark的入口,负责连接Spark集群,创建RDD,累积量和广播量等. ...

  7. android程序获取WIFI的IP地址和MAC地址

    转自:http://my.oschina.net/chenj/blog/68680 近日在鼓捣这玩意,拿出来大家分享一下,代码比较简单,如果有不懂的再问 <Button android:id=& ...

  8. Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

    1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...

  9. Algorithm: cartesian tree

    http://baike.baidu.com/link?url=XUt5fXQ-jtFBM0UdKiGA41_NWFvdFSYwVsy4SVvCRRuEBvNkLfT9TgOtzsXvaOT9nuq_ ...

  10. 数据仓库的自动ETL研究

    但是,在实施数据集成的过程中,由于不同用户提供的数据可能来自不同的途径,其数据内容.数据格式和数据质量千差万别,有时甚至会遇到数据格式不能转换或数据转换格式后丢失信息等棘手问题,严重阻碍了数据在各部门 ...