linux 检查设备wifi连接的状态

typedef enum {
    NO_AP,
    HAVE_AP_NO_STA,
    HAVE_AP_HAVE_STA,
}wifi_t;

int getwifi_status(void)
{
#define WIFI_FLAG_STR "sta's macaddr:"
    char buf[64] = {0};
    int n = 0;
	FILE *m_pStream = NULL;

    if (NULL == m_pStream) {
        m_pStream = fopen("/proc/net/rtl8812au/wlan0/all_sta_info", "r");
        return NO_AP;
    }
    if (fseek(m_pStream, 0, SEEK_SET) < 0) {
        if (m_pStream) {
            fclose(m_pStream);
            m_pStream = NULL;
        }
        return NO_AP;
    }
    while (NULL != (fgets(buf, 64, m_pStream))) {
        if (!strncmp(buf, WIFI_FLAG_STR, strlen(WIFI_FLAG_STR))) {
            n++;
        }
    }
    /*
    	count = 0,1,no device
    	count = 2,found wifi,no conect
    	count >=3,sta num = (count-2)
    */
    if (n <= 1) {
        return NO_AP;
    }
    if (2 == n) {
        return HAVE_AP_NO_STA;
    }
    return HAVE_AP_HAVE_STA;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值