最近設備端和app對接時app需要獲取當前設備連接的熱點名稱,於是我寫了一個小程序,用到了popen和iwconfig,當然大家還可以從iw庫裏面獲取,希望對大家有所幫助!
代碼如下:
#include <stdio.h>
#include <string.h>
int CheckWireLessConnectState(char *pSsid)
{
FILE* fp;
char buf[512] = {0};
char command[300] = "iwconfig wlan0";
int ret = -1;
char str[100];
memset(str, '\0', sizeof(str));
if((fp = popen(command, "r")) != NULL)
{
if(fgets(buf, 128, fp) != NULL)
{
char * q = strstr(buf, "ESSID:");
if (q == NULL)
{
pclose(fp);
return -1;
}
ret = 0;
sscanf(q, "ESSID:\"%[^\"]\"", str);
}
pclose(fp);
}
memcpy(pSsid, str, strlen(str));
return ret;
}
int main()
{
char ssid[100];
memset(ssid, '\0', sizeof(ssid));
CheckWireLessConnectState(ssid);
printf("ssid=%s\n", ssid);
return 0;
}