fopen中重试的最优控制

时间:2016-05-20 15:31:04

标签: c algorithm 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 谢谢

1 个答案:

答案 0 :(得分:0)

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

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
}