我有以下函数isEthernetCableConnected()
,我在连续循环的线程中调用它。很长一段时间后,我开始得到log"无法打开/ sys / class / net / eth0 / carrier"。怎么可能?如果有可能,请告诉我如何每次打开文件。
ETH_FILE_CARRIER /sys/class/net/eth0/carrier
int isEthernetCableConnected(){
FILE *fp = fopen(ETH_FILE_CARRIER, "r");
int result;
if(fp == NULL) {
CLog::getInstance()->error("utility",__LINE__,__FILE__,"networked::isEthernetConnected, Could not open %s", ETH_FILE_CARRIER);
return 0;
}
fscanf(fp,"%d",&result);
fclose(fp);
return result;
}
答案 0 :(得分:0)
请参考以下链接,它可能会对您有所帮助 http://wikistack.com/how-to-check-if-ethernet-cable-is-connected-linux
在此链接中,他们试图以不同的方式打开文件。也许你可以试试。