gpt4 book ai didi

c - 在c中用iwconfig解析ssid

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:12 26 4
gpt4 key购买 nike

我正在为 DWM (ubuntu linux) 构建一个栏,显示 wifi 详细信息,例如 ssid。

那是我的代码:

#include <stdio.h>
#include <stdlib.h>


int main( int argc, char *argv[] )
{

FILE *fp;
int status;
char path[1035];

/* Open the command for reading. */
fp = popen("iwconfig", "r");
if (fp == NULL) {
printf("Failed to run command\n" );
exit;
}
char s[500];

/* Read the output a line at a time - output it. */
while (fgets(path, sizeof(path)-1, fp) != NULL) {
sprintf(s,"%s%s",s, path);
}
//printf("%s",s);
/* close */
pclose(fp);


char delimiter[1] = "s";
char *ptr;

ptr = strtok(s, delimiter);

printf("SSID: %s\n", ptr);


return 0;
}

我遇到了溢出错误,不知道该怎么办。我不认为,这也是获取 ssid 的好方法...:/有什么建议吗?

最佳答案

我宁愿使用来自内核(例如 netdevice(7))的直接信息,也不愿调用子进程。

也许这个 header 可以提供帮助:http://lxr.free-electrons.com/source/include/linux/wireless.h

编辑:如果你仍然想使用popen,你不只是添加一个| grep Essid: ?

$ /sbin/ifconfig 2>/dev/null | grep ESSID | cut -d: -f2
"pink-panter"

关于c - 在c中用iwconfig解析ssid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com