一口Linux

电子技术应用专栏作家——一口Linux。一起学习嵌入式、Linux、网络、驱动、arm知识

简简单单教你如何用C语言列举当前所有网口!

0
阅读(1771)

一、获取本机所有可用网卡名

原理:

在 Linux 系统中,/proc 目录是一个位于内存中的伪文件系统。

/proc目录是内核提供给我们的查询中心,通过查询该目录下的文件内容,可以获取到有关系统硬件及当前运行进程的信息,如 CPU 信息、负载信息、系统内存信息、磁盘 IO 信息等。

其中文件:/proc/net/dev ,该文件是内核维护,所有可用的网口均会同步到该文件中。

/proc/net/dev

image.png

所以我们要列举出所有可用的网口名称,可以通过查看改文件来实现,

代码原理讲解

  • list_interface_valid()

该函数用于列举所有可用的网口

  • interface_name_cut (char *buf, char **name) 该函数用于将从文件/proc/net/dev中国读取的每一行字符串信息,提取出网口名信息,如lo、eth0

代码实现原理如下:

image.png

  • 函数strrchr()

该函数返回一个指针,指向字符串s中最后一个出现的字符c位置。

image.png

二、核心代码如下:

image.png

image.png


完整代码获取,公众号后台回复:eth

原文链接:https://mp.weixin.qq.com/s/OOFtTue844caJdBYjakDcw


微信图片_20220701092006.jpg

电子技术应用专栏作家  一口Linux