为什么wlan0接口可以从xterm中看到而不是从运行程序中看到?

时间:2017-03-08 12:37:51

标签: linux linux-kernel linux-device-driver embedded-linux

我在嵌入式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并且没有帮助。所以,它似乎不是一个安全问题......?

有什么想法吗?

0 个答案:

没有答案