Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int fs_create(char *name){
- if(mb.magic != FS_MAGIC){
- printf("disc not mounted\n");
- return -1;
- }
- super_block b;
- dir_entry tempEntry;
- // fazer um ciclo que percorre dir[] e que para na primeira casa livre
- int i;
- for(i=0; i<N_DIR_ENTRIES; i++){
- tempEntry = dir[i];
- // verificar se o ficheiro já existe no array dir
- if(strcmp(tempEntry.main.name, name)==0){
- // verificar se ha uma entrada livre
- if(tempEntry.main.used==FREE){
- tempEntry.main.used = OCCUPIED;
- tempEntry.main.next = 0xFFFF;
- tempEntry.main.name = name;
- tempEntry.main.size = 0;
- // garantir que os addresses estao limpos
- int j;
- for(j=0; j<=3; j++){
- dir[i].main.addresses[j] = -1;
- }
- disk_write(0, (char*) &mb);
- disk_write(1, (char*) dir);
- return 0;
- }
- else return -1; // caso o disco esteja cheio
- }
- else return -1; // caso o ficheiro ja exista
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement