fopen 中重试的最佳控制

Optimal control of retries in fopen

我在尝试用 C 语言打开文件时使用了重试,我想知道这种方式是否是一个合适的实现方式,它对我来说似乎有点不整洁。

while(openRetry<=3){
    fp = fopen(lgConfig.lgFlHndl.fileName, "rb");
    if(fp==NULL){
        if(openRetry<3){
            openRetry++;
        }
        else{
            if (LogFile_Reconstruct(&lgConfig)){
                ret=1;
                break;
            }
            else{
                ret=0;
            }
        }
    }
    else{
         ret=1;
         break;
    }
}   

我将不胜感激任何改进或对更整洁算法的一些参考

我使用 Visual Studio 2010 作为 IDE 谢谢

一些更简洁的代码,至少在我看来是这样。但这只是为了说明我的想法。

ret = 0;
while (openretry <= 3) {
    fp = fopen(lgConfig.lgFlHndl.fileName, "rb");

    if (fp) {
        ret = 1;
        break;
    }

    openRetry++;
    if(openRetry == 4) {
        ret = LogFile_Reconstruct(&lgConfig));      
        break;
    }

    sleep/yield(some millsecs); //Should have some delaying mechanism
}