我对C有疑问,但我的编程技巧并不好,因为我还在学习/学习。
让我首先解释一下我的问题,出于纯粹的好奇心和懒惰,我想在C中创建一些程序,可以在我的本地网络上自动ping一些IP范围,并告诉我IP是什么。
好的,到目前为止没有问题我设法写了几行,但我被困在部分我需要从命令提示符读取一些行。执行此行后,cmd开始ping它提供的地址。
system("ping 192.168.000.000")
所以在完成此行后,我可以从cmd读取信息并使用它与其他ping信息进行比较吗?
或者我还有其他方法可以开始寻找解决这个问题的方法吗?
答案 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
,它允许您从文件中读取命令的结果。