#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main (void)
{
int ssh_cnt = 0;
char cmd[256] = {0};
int status = 0;
FILE* fp = NULL;
scanf ("%d", &status);
// 循环2次,间隔1s
while (ssh_cnt < 2) {
sleep(1);
memset(cmd, 0, sizeof(cmd));
snprintf(cmd, sizeof(cmd), "echo start....");
// fp指针获取了start...这句输出内容
if (NULL != (fp = popen(cmd, "r")))
{
char out_buf[32] = {0};
if (NULL != fgets(out_buf, sizeof(out_buf), fp))
{
int tmp_status = atoi(out_buf);
if (tmp_status != status)
{
memset(cmd, 0, sizeof(cmd));
snprintf(cmd, sizeof(cmd), "echo 'Your print is %d'", status);
system(cmd);
ssh_cnt++;
} else {
break;
}
}
}
}
close(fp);
return 0;
}测试程序,可修改为接口函数,把一些只能通过linux命令获取到的内容拿到,在代码上下文中使用。