无法打开文件/ sys / class / net / eth0 / carrier

时间:2017-04-27 13:25:17

标签: c++ fopen

我有以下函数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;
}

1 个答案:

答案 0 :(得分:0)

请参考以下链接,它可能会对您有所帮助     http://wikistack.com/how-to-check-if-ethernet-cable-is-connected-linux

在此链接中,他们试图以不同的方式打开文件。也许你可以试试。