Legend:
- Unmodified
- Added
- Removed
-
btree/src/btree.c
r71 r72 66 66 * btree* btree_open( int fd, int root_offset ); 67 67 */ 68 btree* btree_open( char* btree_file ){68 btree* btree_open( char* btree_file, int offset ){ 69 69 70 70 btree* new = (btree*) malloc(sizeof(btree)); … … 77 77 } 78 78 79 new->root = lseek( new->fd, 0, SEEK_END ); 80 if( new->root >= BLOCK_SIZE ){ 81 /* root node is positioned in offset (SEEK_END-BLOCK_SIZE) */ 82 new->root -= (BLOCK_SIZE); 83 new->depth = get_depth( new ); 84 } 85 else { 86 /* empty tree */ 79 if( offset < 0 ){ 87 80 new->root = -1; 88 81 new->depth = 0; 82 } 83 else{ 84 new->root = lseek( new->fd, offset, SEEK_SET ); 85 new->depth = get_depth( new ); 89 86 } 90 87 … … 371 368 int i; 372 369 373 tree = btree_open( "test.idx" ); 370 FILE* fp; 371 int offset; 372 373 fp = fopen( "root", "r+" ); 374 fseek( fp, 0, SEEK_SET ); 375 fread( &offset, 4, 1, fp ); 376 377 tree = btree_open( "test.idx", offset ); 374 378 tree->compare = &compare; 375 379 if( tree == NULL ){ … … 381 385 btree_print( tree ); 382 386 383 for( i = 70 ; i < 80 ; i++ ){387 for( i = 100 ; i < 120 ; i++ ){ 384 388 sprintf( buf, "%d", i ); 385 389 btree_insert( tree, buf ); … … 390 394 btree_print( tree ); 391 395 396 fseek( fp, 0, SEEK_SET ); 397 fwrite( &(tree->root), 4, 1, fp ); 392 398 return 0; 393 399 } -
btree/src/btree.h
r71 r72 31 31 } btree; 32 32 33 btree* btree_open( char* btree_file );33 //btree* btree_open( char* btree_file ); 34 34 void btree_insert( btree* tree, char* key );
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)