如何将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;
}孙其功陪你学之——如何将shell命令的返回值赋值给应用程序的变量
原文:http://blog.csdn.net/a350203223/article/details/45075169