从命令提示符读取行?

时间:2015-12-17 21:48:33

标签: c

我对C有疑问,但我的编程技巧并不好,因为我还在学习/学习。

让我首先解释一下我的问题,出于纯粹的好奇心和懒惰,我想在C中创建一些程序,可以在我的本地网络上自动ping一些IP范围,并告诉我IP是什么。

好的,到目前为止没有问题我设法写了几行,但我被困在部分我需要从命令提示符读取一些行。执行此行后,cmd开始ping它提供的地址。

system("ping 192.168.000.000")

所以在完成此行后,我可以从cmd读取信息并使用它与其他ping信息进行比较吗?

或者我还有其他方法可以开始寻找解决这个问题的方法吗?

3 个答案:

答案 0 :(得分:6)

您可以使用此方法:

WebID

此方法的优点是您不需要临时文件,您可以在生成时读取输出,大小或时间无限制,这对int main() { FILE *fp = popen("ping 192.168.000.000", "r"); //Read process output via fp and compare with other ping info pclose(fp); return 0; } 非常方便,因为它不会在unix下停止。您可以随时使用ping终止该过程。

答案 1 :(得分:1)

将命令的输出重定向到文本文件,然后读取该文件以获取输出:

int main()
{
    FILE * fp;
    system("ping 192.168.000.000 > output.txt");
    fp = fopen("output.txt", "r");
    //Read text file and do comparison
    fclose(fp);
    return 0;
}

答案 2 :(得分:1)

您可能需要popen,它允许您从文件中读取命令的结果。