www.pudn.com > 传奇3源代码.rar > lock.c


 
#include  
#include "lock.h" 
 
// 彂偒崬傒僼傽僀儖偺曐岇張棟 
// 乮彂偒崬傒偑廔傢傞傑偱丄媽僼傽僀儖傪曐娗偟偰偍偔乯 
 
// 怴偟偄僼傽僀儖偺彂偒崬傒奐巒 
FILE* lock_fopen(const char* filename,int *info) { 
	char newfile[512]; 
	FILE *fp; 
	int  no = 0; 
 
	// 埨慡側僼傽僀儖柤傪摼傞乮庤敳偒乯 
	do { 
		sprintf(newfile,"%s_%04d.tmp",filename,++no); 
	} while((fp = fopen(newfile,"r")) && (fclose(fp), no<9999) ); 
	*info = no; 
	return fopen(newfile,"w"); 
} 
 
// 媽僼傽僀儖傪嶍彍仌怴僼傽僀儖傪儕僱乕儉 
int lock_fclose(FILE *fp,const char* filename,int *info) { 
	int  ret = 0; 
	char newfile[512]; 
	if(fp != NULL) { 
		ret = fclose(fp); 
		sprintf(newfile,"%s_%04d.tmp",filename,*info); 
		remove(filename); 
		// 偙偺僞僀儈儞僌偱棊偪傞偲嵟埆丅 
		rename(newfile,filename); 
		return ret; 
	} else { 
		return 1; 
	} 
}