c - 使用 iwinfo 库没有扫描结果

标签 c openwrt wifi

我是 OpenWrt 新手。我正在使用 iwinfo lib 来扫描 wifi。它工作正常,直到我在代码中多次扫描。起初我认为这是因为我使用这个库做错了,所以我尝试修改iwinfo库中的cli程序并使其扫描两次。这是 cli 代码的主要功能,它只会运行一次。 print_scanlist函数的实现与cli程序中相同。

int main() {
  const struct iwinfo_ops *iw = iwinfo_backend("wlan0");
  print_scanlist(iw, "wlan0");
  print_scanlist(iw, "wlan0");
  iwinfo_finish();
  return 0;
}

起初我认为这是因为硬件不允许在短时间内扫描。但如果我第二次运行该程序,它仍然适用于第一个功能。现在我不知道为什么会发生这种情况,有人知道为什么吗?

最佳答案

我几乎确定这些选项之一(甚至可能两个)都会起作用:

int main() {
    const struct iwinfo_ops *iw = iwinfo_backend("wlan0");
    print_scanlist(iw, "wlan0");
    iwinfo_finish();
    print_scanlist(iw, "wlan0");
    iwinfo_finish();
    return 0;
}
<小时/>
int main() {
    print_scanlist(iwinfo_backend("wlan0"), "wlan0");
    iwinfo_finish();
    print_scanlist(iwinfo_backend("wlan0"), "wlan0");
    iwinfo_finish();
    return 0;
}

重要的是要了解 iw 不是某种句柄,它只是指向存储在后端库中的函数列表的指针。该列表是硬编码的,无法在运行时修改。

关于c - 使用 iwinfo 库没有扫描结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43538550/

相关文章:

python - 获取openwrt中的物理接口(interface)列表

c# - 类型 native Wifi.Wlan + WlanReasonCode 无法编码错误

c++ - 是否可以在 Windows C++ 中以编程方式检查我的笔记本电脑是通过 Wi-Fi 连接还是通过 "wired LAN"连接?

wifi - 通过 Wi-Fi 扫描 MFI 产品

c - 使用分而治之的矩阵乘法

c - "Hello World"会打印多少次?

lua - 如何在修改后重新加载/usr/lib/lua/luci/dispatcher.lua而不重新启动板?

embedded-linux - 如何将libselinux添加到openwrt构建系统中?

c - 测试信号量如何工作

c - 文件读\写中的链表