linux c/c++:获取ifconfig wlan0 up输出
linux c/c++: Get ifconfig wlan0 up output
我正在尝试运行命令ifconfig wlan0 up
,并通过以下方式获得该命令的结果:
std::string exec(char* cmd)
{
FILE* pipe = popen(cmd, "r");
if (!pipe) return "ERROR";
char buffer[128];
std::string result = "";
while(!feof(pipe) )
{
if(fgets(buffer, 128, pipe) != NULL)
result += buffer;
}
pclose(pipe);
return result;
}
但是,当使用ifconfig wlan0 up
调用上述函数时,它会返回空结果(尽管命令成功)。
预期结果(从命令提示符运行时):
[ 68.126342] wl12xx: state: 0
[ 68.683715] wl12xx: firmware booted (Rev 6.3.10.0.135)
有什么想法吗?谢谢
ifconfig up
在成功时不产生输出。
您在控制台中看到的消息(wl12xx:固件启动)是来自内核的日志消息,看起来您的系统已配置为将日志复制到控制台。您可能会在/var/log
下的文件中找到相同的消息。
您可以通过将输出重定向到一个文件(例如)来确认消息不是来自ifconfig
ifconfig wlan0 up 2>&1 >/tmp/output