如何解决检查 popen 的输出
我有一个简单的 C 程序,我试图在其中分析 bash 命令的输出。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *rd;
char buffer[100];
rd=popen("dmesg | grep FTDI","r"); //bash command with pipe opened in reading mode
if (rd == NULL)
{
puts("Unable to open process");
return(1);
}
fread(buffer,1,100,rd); //will read 100 characters
printf("%s\n",buffer);
pclose(rd);
}
现在我成功打印出缓冲区。我的目标是分析输出,并搜索字符串“ERROR”我是 C 新手,我认为有一个函数 strcmp
可以比较输出。有什么推荐吗?
解决方法
你应该使用 strstr() 函数: 该函数有两个参数,字符串(缓冲区)和子字符串('ERROR')。
if(strstr(buffer,"ERROR"))
return true;
else
return false;
该函数在名为“buffer”的字符串中查找字符串“ERROR”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。