【发布时间】:2015-03-19 01:49:45
【问题描述】:
我在 CentOS linux 中的 C 代码中有以下代码。此代码在线程中每 5 秒调用一次。如果我禁用 pclose(fp),代码可以正常工作,但我知道我应该这样做。有人可以解释为什么我启用它时它会挂在 pclose(fp) 上吗? 非常感谢。
FILE* fp;
int status;
char path[255];
fp = popen("ping -c 3 -W 3 200.0.0.51", "r");
sleep(3);
int i=0;
while (i < 255) {
path[i] = fgetc(fp);
i++;
}
char* str;
str = strstr(path, "100% packet loss");
if (str!=NULL) {
//pclose(fp); // <--- hangs here if I enable
OS_Reboot();
}
【问题讨论】: