我在嵌入式Linux buildroot操作系统上运行并安装了一个自定义WiFi驱动程序,该驱动程序以"无线扩展模式启动"。我可以使用以下命令从xterm窗口(无论我是以root身份还是以普通用户身份运行)中看到该驱动程序:
cat /proc/net/dev
cat /proc/net/wireless
ifconfig -a
通过ifconfig -a:
打印时,wlan0界面如下所示wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.185.103 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::24b:5bfc:8a9e:b148 prefixlen 64 scopeid 0x20<link>
ether 00:23:a7:40:22:f1 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 40 overruns 0 carrier 0 collisions 0
但是,当我从我的应用程序运行时,我可以看到我的系统上的所有接口除了wlan0。当我的应用程序查看时,wlan0被完全过滤掉了。我已经从我的应用程序中的代码中尝试了这些东西:
system("cat /proc/net/dev");
system("cat /proc/net/wireless");
system("ifconfig -a");
FILE* fopen("/proc/net/dev", "r"); fgets(...
我以root身份和普通用户身份运行我的应用程序并看到相同的结果。我已经将我的程序的所有权更改为root:root并将其安装为root用s bit并且没有帮助。所以,它似乎不是一个安全问题......?
有什么想法吗?