【C程序】popen获取系统命令的输出内容

xiaoxiao2021-02-28  38

#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命令获取到的内容拿到,在代码上下文中使用。
转载请注明原文地址: https://www.6miu.com/read-2624104.html

最新回复(0)