Advertisement
Guest User

Esercizio1

a guest
Dec 8th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.97 KB | None | 0 0
  1. /*
  2. Presa in input la sigla della provincia da parametro
  3. ricerca del numero di comuni che ha quella provincia e stampare a video con il padre
  4. FILE: comuni;sigla;numero
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10. #include <unistd.h>
  11. #include <sys/wait.h>
  12.  
  13. int main(int argc, char *argv[]){
  14.     int p1, comuni, numComuni, fpid;
  15.     char comuneTmp[20], siglaTmp[2], tmp, sigla[2];
  16.  
  17.     strcpy(sigla, argv[1]);
  18.     printf("%s\n", argv[1]);
  19.     p1 = fork();
  20.     if(p1 == 0){
  21.         FILE *cercaProvincia;
  22.         cercaProvincia = fopen("comuni.csv", "r");
  23.         if(cercaProvincia == NULL){
  24.             printf("Errore nella lettura del file\n");
  25.         }else{
  26.             fscanf(cercaProvincia, "%[^;]s", comuneTmp);
  27.             fscanf(cercaProvincia, "%c", &tmp);
  28.             fscanf(cercaProvincia, "%[^;]s", siglaTmp);
  29.             fscanf(cercaProvincia, "%c", &tmp);
  30.             fscanf(cercaProvincia, "%d", &numComuni);
  31.             //fscanf(cercaProvincia, " %c", &tmp);
  32.             //DEBUG:printf("%s", comuneTmp);
  33.             while(!feof(cercaProvincia)){
  34.                 //printf("\n%s\n%s", siglaTmp, sigla);
  35.                 printf("%s\n%s", sigla, siglaTmp);
  36.  
  37.                 printf("\n%d", numComuni);
  38.                 if(strcmp(siglaTmp, argv[1]) == 0){
  39.                     printf("%d", numComuni);
  40.                     printf("ciaoooo\n");
  41.                     exit(numComuni);
  42.                     break;
  43.                 }
  44.                 fscanf(cercaProvincia, "%[^;]s", comuneTmp);
  45.                 fscanf(cercaProvincia, "%c", &tmp);
  46.                 fscanf(cercaProvincia, "%[^;]s", siglaTmp);
  47.                 fscanf(cercaProvincia, "%c", &tmp);
  48.                 fscanf(cercaProvincia, "%d", &numComuni);
  49.        //         fscanf(cercaProvincia, " %c", &tmp);
  50.             }
  51.             fclose(cercaProvincia);
  52.         }
  53.     }else{      //padre
  54.         waitpid(p1, &comuni, 0);
  55.         printf("%s ha %d comuni", sigla, comuni/255);
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement