Advertisement
Guest User

Untitled

a guest
Nov 28th, 2015
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. int fs_create(char *name){
  2.  
  3. if(mb.magic != FS_MAGIC){
  4. printf("disc not mounted\n");
  5. return -1;
  6. }
  7.  
  8. super_block b;
  9. dir_entry tempEntry;
  10.  
  11. // fazer um ciclo que percorre dir[] e que para na primeira casa livre
  12. int i;
  13. for(i=0; i<N_DIR_ENTRIES; i++){
  14.  
  15. tempEntry = dir[i];
  16.  
  17. // verificar se o ficheiro já existe no array dir
  18. if(strcmp(tempEntry.main.name, name)==0){
  19.  
  20. // verificar se ha uma entrada livre
  21. if(tempEntry.main.used==FREE){
  22.  
  23. tempEntry.main.used = OCCUPIED;
  24. tempEntry.main.next = 0xFFFF;
  25. tempEntry.main.name = name;
  26. tempEntry.main.size = 0;
  27.  
  28. // garantir que os addresses estao limpos
  29. int j;
  30. for(j=0; j<=3; j++){
  31. dir[i].main.addresses[j] = -1;
  32. }
  33. disk_write(0, (char*) &mb);
  34. disk_write(1, (char*) dir);
  35. return 0;
  36. }
  37. else return -1; // caso o disco esteja cheio
  38. }
  39. else return -1; // caso o ficheiro ja exista
  40. }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement