|
|
|
@ -13,6 +13,7 @@ int fs_list_get( const char* filename )
|
|
|
|
|
f = fopen(filename,"r");
|
|
|
|
|
if( !f ) {
|
|
|
|
|
printf( "Failed to open %s, initializing at 0\n", filename );
|
|
|
|
|
fs_list_set(filename,0);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
fscanf( f, "%d", &pos );
|
|
|
|
@ -25,11 +26,14 @@ void fs_list_set( const char* path, int value )
|
|
|
|
|
char buffer[512];
|
|
|
|
|
snprintf( buffer,sizeof(buffer), "%s.lock", path );
|
|
|
|
|
int fd = open( buffer, O_CREAT );
|
|
|
|
|
if( !fd ) { return; }
|
|
|
|
|
flock( fd, LOCK_EX );
|
|
|
|
|
|
|
|
|
|
char tmp_filename[512];
|
|
|
|
|
snprintf( tmp_filename, 512, "%s.tmp", path );
|
|
|
|
|
FILE* f = fopen(tmp_filename,"w");
|
|
|
|
|
if( !f ) { return; }
|
|
|
|
|
|
|
|
|
|
fprintf( f, "%d", value );
|
|
|
|
|
fclose(f);
|
|
|
|
|
rename( tmp_filename, path );
|
|
|
|
|