#include
#include
#include
#include
#define CMD "cat /proc/diskstats| grep '\b[sh]d[a-z]\b'| awk '{print $4" "$6" "$8" "$10}'"
int main()
{
FILE *file=popen(CMD, "r");
char buff[255];
if(fgets(buff, 255, file)!=NULL)
printf("buff is %s\n", buff);
else
printf("fgets failed.\n");
pclose(file);
return 0;
}
单独执行这个shell命令是没问题的,但是popen调用之后就获取不到内容了,看了popen函数以“r”执行的结果是重定向到标准输出了,那么fgets时就应该是从标准输出里获取数据才对,获取不到是什么原因呢?