孙其功陪你学之——怎么将shell命令的返回值赋值给应用程序的变量

孙其功陪你学之——如何将shell命令的返回值赋值给应用程序的变量

如何将shell命令的返回值赋值给应用程序的变量。

博主最近做了个路由器的项目,需要得到路由器现在网络状态和参数,使用UCI get 获得,

但是使用了system(“UCI get ****”),之后,获得的参数直接在终端打印输出了,应用程序中无法获得

返回的参数。以下是我的解决方案。

#include <stdlib.h>

#include <stdio.h>
#include <string.h>
char buf[512];
char* uciget(char option[])
{
FILE   *stream; 
memset( buf, '\0', sizeof(buf) );
    stream = popen( option, "r" ); 
    fread( buf, sizeof(char), sizeof(buf), stream);
buf[strlen(buf)-1]= '\0';
    pclose(stream);
return buf;
}
int main(void) 


printf("%s\n",uciget("uci get network.wan.proto"));
printf("%s\n",uciget("uci get wireless.@wifi-iface[0].ssid"));
  return 1;
 }