C ++:_popen无限循环(Windows)

时间:2016-09-24 23:30:35

标签: c++ infinite-loop ping popen

我尝试编写应用程序以使用_popen无限地检查对服务器的ping,但是当我运行应用程序一段时间后,函数(_popen)开始返回NULL,直到我重新启动它。为什么会这样?我该怎么办呢?

FILE *fin = _popen("ping 104.160.131.1", "r");
        while (fin == NULL) {
            std::cout << "If this takes too long restart application";
            fin = _popen("ping 104.160.131.1", "r");
            system("cls");
        }

1 个答案:

答案 0 :(得分:2)

显示的代码泄漏了文件描述符,因为您没有相应的_pclose()调用,这最终会导致您正在描述的行为。

setTimeout