Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <sys/wait.h>
- struct lista_linii
- {
- unsigned int size;
- char * ptr;
- };
- int main()
- {
- int pid1,pid2,pid3;//zapisane id procesow potomnych
- printf("Proces macierzysty:%d\n",getpid());
- switch(pid1=fork())//powolanie procesu 1 procesu potomnego
- {
- case 0: //tutaj znajduje sie cala funkcjonalnosc procesu pierwszego
- printf("P1:%d:%d\n",getpid(),getppid());
- struct lista_linii *l = malloc(sizeof(struct lista_linii));
- int check_if_end='\0';
- int i=1;
- printf("Wpisz tyle linii ile uwazasz (zeby zakonczyc wpisz kropke '.')\n:");
- for(i;(check_if_end=getchar())!='.';i++) //wczytywanie kolejnych linii
- {
- int c=EOF;//inicjalizacja zmiennej do przechowywania znaku input
- printf("\nJESTEM TU\n");
- unsigned int current_size=1;
- l[i-1].ptr=malloc(1);
- l[i-1].ptr[0]=check_if_end;
- while((c=getchar())!='\n' && c!= EOF)
- {
- current_size++;
- l[i-1].ptr=realloc(l[i-1].ptr,current_size);
- l[i-1].ptr[current_size-1]=c;
- }
- l[i-1].ptr=realloc(l[i-1].ptr,current_size+1);
- l[i-1].ptr[current_size]='\0';
- printf("CURR S: %d\n",current_size);
- l[i-1].size=current_size;
- printf("\nWpisales\n:%s\n\to dlugosci:%d\n",l[i-1].ptr,l[i-1].size);
- }
- printf("Dlugosc linii nr3: %d\n",l[2].size);
- for(int j=0;j<i-1;j++)
- {
- printf("Dlugosc linii: %d\n",l[j].size);
- printf("\t%s\n",l[j].ptr);
- }
- printf("%d\n",i);
- exit(0);
- break;
- case -1:
- break;
- default:
- wait(NULL);
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement