Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.12 KB | None | 0 0
  1. int main() {
  2.     //int r = 0;
  3.     //char* campo[2];
  4.     //char* token1;
  5.     //char* token2;
  6.     //char* token3;
  7.     char *input;
  8.     nodo* radice;
  9.     radice = (nodo*)malloc(sizeof(nodo));
  10.     radice->nome = "/";
  11.     radice->contenuto = NULL;
  12.     radice->figlio = NULL;
  13.     radice->fratellodestro = NULL;
  14.     radice->f_d = 0;
  15.     input = (char *)malloc(6000 * sizeof(char));
  16.  
  17.    
  18.     while (1) {
  19.         input = fgets(input, 6000, stdin);
  20.         int length = strlen(input) - 1;
  21.         input[length] = '\0';
  22.        
  23.        
  24.         if (strcmp(input, "exit") == 0) break;
  25.        
  26.  
  27.  
  28.        
  29.         char* leggi1 = leggi(input)[0];
  30.         char* leggi2 = leggi(input)[1];
  31.  
  32.  
  33.         if (strcmp(leggi1, "create") == 0) create(leggi2,radice);
  34.         else if (strcmp(leggi1, "create_dir") == 0) create_dir(leggi2,radice);
  35.         else if (strcmp(leggi1, "read") == 0) read(leggi2,radice);
  36.         else if (strcmp(leggi1, "write") == 0) write(leggi(leggi2)[0], leggi(leggi2)[1], radice);
  37.         else if (strcmp(leggi1, "delete") == 0) delet(leggi2,radice);
  38.         else if (strcmp(leggi1, "delete_r") == 0) delete_r(leggi2,radice);
  39.         else if (strcmp(leggi1, "find") == 0) {
  40.             char** percorsi = (char**)malloc(n_risorse * sizeof(char*));
  41.             for (int i = 0; i < n_risorse;i++) {
  42.                 percorsi[i] = (char*)malloc(16 * sizeof(char));
  43.                 strcpy(percorsi[i], "");
  44.             }
  45.             char* percorso;
  46.             percorso = (char*)malloc(6000 * sizeof(char));
  47.             strcpy(percorso, "/");
  48.             if (radice->figlio != NULL) {
  49.                 find2(leggi2, radice->figlio, percorsi, percorso);  //alla find passo il figlio della radice
  50.                 qsort(percorsi, n_percorsi, sizeof(char*), compara_stringhe); //faccio quicksort dell'array dei percorsi
  51.                 for (int i = n_risorse-n_percorsi-1; i < n_percorsi && strcmp(percorsi[i],"")!=0;i++) {
  52.                     printf("ok %s\n", percorsi[i]);
  53.                     //free(percorsi[i]);
  54.                 }
  55.                 free(percorsi);
  56.                 if (n_percorsi == 0) printf("no\n");
  57.                 n_percorsi = 0; //rimetto a 0 il numero di percorsi trovati per un futuro nuovo utilizzo di find
  58.                 free(percorso);
  59.             }
  60.             else printf("no\n"); //se la radice non ha figli ovviamente non troverà mai nessuna risorsa la find
  61.         }
  62.         else printf("error\n");
  63.  
  64.         free(leggi1);
  65.         free(leggi2);
  66.     }
  67.    
  68.     free(input);
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement