[英]output Command Shell in if statment
我已经搜索了很多并且阅读了很多代码,但是我不明白为什么不能打印该变量(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);
}
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::string
, std::cout
和其他工具来std::cout
生活,使用C ++编程时不必使用C进行编程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.