在if语句中输出命令Shell

时间:2016-08-08 03:26:30

标签: c++

我搜索了很多并阅读了很多代码,但我不明白为什么无法打印变量(cmd输出)以确保它 问题可能是重复的,但我不能评论我看到的任何代码,因为我的声誉低于50 这是我正在尝试的代码,我正在尝试获取cmd的输出并在IF语句中使用它,例如,如果它给出错误,则重新发送命令

#include <stdlib.h>
#include <string>
#include <iostream>
#include <stdio.h>

int main(int argc, char *argv[])
{
 FILE *lsofFile_p = popen("adb reboot", "r");

  if (!lsofFile_p)
  {
    return -1;
  }


  char buffer[1024];
  char *line_p = fgets(buffer, sizeof(buffer), lsofFile_p);
  pclose(lsofFile_p);
  printf("\n\n", *lsofFile_p);
}

编辑过的照片 enter image description here

1 个答案:

答案 0 :(得分:2)

printf("\n\n", *lsofFile_p);

这只打印两个\n。而已。不是更多,而不是更少。这就是为什么你认为它打印“没有”。另请注意,*lsofFile_p是未定义的行为,因为您之前关闭了该行,这会使文件指针无效。

您可能希望打印从lsofFile_p中存储的buffer中读取的行:

//'%s' take the second argument of printf and interprets it as a string
printf("%s\n\n", buffer);

考虑使用std::stringstd::cout和其他工具来简化您的生活,在使用C ++进行编程时,不必使用C编程。 < / p>