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