Changeset 6
- Timestamp:
- 10/28/07 15:42:57 (11 months ago)
- Files:
-
- tarfs/tarfs.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tarfs/tarfs.c
r5 r6 33 33 bool special; // if . or .. 34 34 }; 35 36 inode *create_dir(inode *parent){ 37 inode *me=malloc(sizeof(inode)); 38 inode *up=malloc(sizeof(inode)); 39 me->special=true; 40 me->file_name[0]='.'; 41 me->file_name[1]='\0'; 42 me->subdir=me; 43 me->next=up; 44 45 up->special=true; 46 up->file_name[0]='.'; 47 up->file_name[1]='.'; 48 up->file_name[2]='\0'; 49 up->subdir=parent; 50 up->next=NULL; 51 52 return me; 53 } 35 54 36 55 inode *read_file(FILE *file, inode *file_tree, char *file_path){ … … 88 107 89 108 /* Create a root directory of the tree */ 90 new=file_tree=malloc(sizeof(inode)); 91 file_tree->special=true; 92 file_tree->file_name[0]='.'; 93 file_tree->file_name[1]='\0'; 94 file_tree->subdir=file_tree; 95 file_tree->next=NULL; 109 new=file_tree=create_dir(NULL); 96 110 97 111 while(true){ … … 137 151 break; 138 152 case '5': 139 new->subdir=malloc(sizeof(inode)); 140 new->subdir->special=true; 141 new->subdir->file_name[0]='.'; 142 new->subdir->file_name[1]='\0'; 143 new->subdir->subdir=new->subdir; 144 new->subdir->next=NULL; 153 new->subdir=create_dir(new); 145 154 break; 146 155 default:
