当前位置: 技术问答>linux和unix
awk 输出值给变量请教!
来源: 互联网 发布时间:2016-12-27
本文导语: 各位好: 想在函数中检测IO口高低电平,实现如下: system("'gpio -c 95 |sed -n '2p' | awk '{print $5}'") 若直接在shell里输入:'gpio -c 95 |sed -n '2p' | awk '{print $5} 则返回值为 1或者 0,即引脚电平的高或者低 目前想用 system(...
各位好:
想在函数中检测IO口高低电平,实现如下:
system("'gpio -c 95 |sed -n '2p' | awk '{print $5}'")
若直接在shell里输入:'gpio -c 95 |sed -n '2p' | awk '{print $5}
则返回值为 1或者 0,即引脚电平的高或者低
目前想用 system("'gpio -c 95 |sed -n '2p' | awk '{print $5}'")
实现返回引脚电平高低的功能,也就是 awk读出的数直接赋值给变量 int pin_level;
该如何实现呢?
PS:不能直接用 “等号”赋值,因为system里是 shell命令
超级新手,谢谢大侠!
|
int main(int argc, char *argv[])
{
char buf[128];
FILE *pp;
if( (pp = popen("gpio -c 95 |sed -n '2p' | awk '{print $5}'", "r")) == NULL )
{
printf("popen() error!n");
exit(1);
}
while(fgets(buf, sizeof buf, pp))
{
printf("%s", buf);
}
pclose(pp);
return 0;
}
|
貌似要用管道
|
用popen()