尝试在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
}