Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <sys/wait.h>
  5.  
  6.  
  7.  
  8. struct lista_linii
  9. {
  10.     unsigned int size;
  11.     char * ptr;
  12. };
  13.  
  14. int main()
  15. {
  16.     int pid1,pid2,pid3;//zapisane id procesow potomnych
  17.     printf("Proces macierzysty:%d\n",getpid());
  18.    
  19.  
  20.  
  21.     switch(pid1=fork())//powolanie procesu 1 procesu potomnego
  22.     {
  23.         case 0: //tutaj znajduje sie cala funkcjonalnosc procesu pierwszego
  24.             printf("P1:%d:%d\n",getpid(),getppid());
  25.            
  26.             struct lista_linii *l = malloc(sizeof(struct lista_linii));
  27.             int check_if_end='\0';
  28.             int i=1;   
  29.             printf("Wpisz tyle linii ile uwazasz (zeby zakonczyc wpisz kropke '.')\n:");
  30.             for(i;(check_if_end=getchar())!='.';i++) //wczytywanie kolejnych linii
  31.             {
  32.                 int c=EOF;//inicjalizacja zmiennej do przechowywania znaku input
  33.                 printf("\nJESTEM TU\n");   
  34.  
  35.                 unsigned int current_size=1;
  36.        
  37.                 l[i-1].ptr=malloc(1);  
  38.  
  39.                 l[i-1].ptr[0]=check_if_end;
  40.                 while((c=getchar())!='\n' && c!= EOF)
  41.                 {
  42.                     current_size++;
  43.                     l[i-1].ptr=realloc(l[i-1].ptr,current_size);
  44.                     l[i-1].ptr[current_size-1]=c;
  45.                 }
  46.                 l[i-1].ptr=realloc(l[i-1].ptr,current_size+1);
  47.                 l[i-1].ptr[current_size]='\0';
  48.                
  49.  
  50.                 printf("CURR S: %d\n",current_size);
  51.                 l[i-1].size=current_size;
  52.                
  53.                 printf("\nWpisales\n:%s\n\to dlugosci:%d\n",l[i-1].ptr,l[i-1].size);
  54.             }
  55.             printf("Dlugosc linii nr3: %d\n",l[2].size);
  56.             for(int j=0;j<i-1;j++)
  57.             {
  58.                 printf("Dlugosc linii: %d\n",l[j].size);
  59.                 printf("\t%s\n",l[j].ptr);
  60.             }
  61.             printf("%d\n",i);
  62.             exit(0);
  63.             break;
  64.         case -1:
  65.             break;
  66.         default:
  67.             wait(NULL);
  68.             break;
  69.     }
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement