Changeset 72 for btree

Show
Ignore:
Timestamp:
09/14/06 00:15:35 (4 years ago)
Author:
aqua
Message:

ok... it works -_-;;;

Location:
btree/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • btree/src/btree.c

    r71 r72  
    6666 *     btree* btree_open( int fd, int root_offset ); 
    6767 */ 
    68 btree* btree_open( char* btree_file ){ 
     68btree* btree_open( char* btree_file, int offset ){ 
    6969 
    7070        btree* new = (btree*) malloc(sizeof(btree)); 
     
    7777        } 
    7878 
    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 ){ 
    8780                new->root = -1; 
    8881                new->depth = 0; 
     82        } 
     83        else{ 
     84                new->root = lseek( new->fd, offset, SEEK_SET ); 
     85                new->depth = get_depth( new ); 
    8986        } 
    9087 
     
    371368        int i; 
    372369 
    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 ); 
    374378        tree->compare = &compare; 
    375379        if( tree == NULL ){ 
     
    381385        btree_print( tree ); 
    382386 
    383         for( i = 70 ; i < 80 ; i++ ){ 
     387        for( i = 100 ; i < 120 ; i++ ){ 
    384388                sprintf( buf, "%d", i ); 
    385389                btree_insert( tree, buf ); 
     
    390394        btree_print( tree ); 
    391395 
     396        fseek( fp, 0, SEEK_SET ); 
     397        fwrite( &(tree->root), 4, 1, fp ); 
    392398        return 0; 
    393399} 
  • btree/src/btree.h

    r71 r72  
    3131} btree; 
    3232 
    33 btree* btree_open( char* btree_file ); 
     33//btree* btree_open( char* btree_file ); 
    3434void btree_insert( btree* tree, char* key );