Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 2
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- int main()
- {
- int childpid;
- //int status=1;
- //int zakonczono;
- printf("startuje proces macierzysty pid %d\n",getpid());
- if ((childpid = fork()) == -1)
- {
- perror("nie moge forknac");
- exit(1);
- }
- else
- if (childpid ==0 )
- {
- printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
- }
- else
- {
- printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
- }
- return 0;
- }
- //
- 70107@st14-lab312:~/lab2$ ./zadanie1
- startuje proces macierzysty pid 3044
- Proces macierzysty o pidzie 3044 i dziecku 3045
- Proces potomny o pidzie 3045 z rodzica 3044
- /////////////////////////////////////////////////////////////////////////////////
- 3.0
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- int main()
- {
- int childpid;
- //int status=1;
- //int zakonczono;
- printf("startuje proces macierzysty pid %d\n",getpid());
- if ((childpid = fork()) == -1)
- {
- perror("nie moge forknac");
- exit(1);
- }
- else
- if (childpid ==0 )
- {
- sleep(10);
- printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
- }
- else
- {
- printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
- }
- return 0; }
- 3.1
- //////////////////////////////////////////////////////////////////////////////
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- int main()
- {
- int childpid;
- //int status=1;
- //int zakonczono;
- printf("startuje proces macierzysty pid %d\n",getpid());
- if ((childpid = fork()) == -1)
- {
- perror("nie moge forknac");
- exit(1);
- }
- else
- if (childpid ==0 )
- {
- printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
- }
- else
- {
- sleep(10);
- printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
- }
- return 0;
- }
- //////////////////////////////////////
- 4
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <sys/wait.h>
- int main()
- {
- int childpid;
- int status=1;
- //int zakonczono;
- printf("startuje proces macierzysty pid %d\n",getpid());
- if ((childpid = fork()) == -1)
- {
- perror("nie moge forknac");
- exit(2);
- }
- else
- if (childpid ==0 )
- {
- sleep(2);
- printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
- exit(2);
- }
- else
- {
- wait(&status);
- printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
- printf("Status wyjscia %d\n",status);
- printf("Poprawny status wyjscia %d\n",WEXITSTATUS(status));
- }
- return 0;
- }
- /////////////////////////////////////
- 5
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <sys/wait.h>
- int main()
- {
- int childpid;
- //int status=1;
- //int zakonczono;
- printf("startuje proces macierzysty pid %d\n",getpid());
- int i;
- for (i=0;i<5;i++){
- if ((childpid = fork()) == -1)
- {
- perror("nie moge forknac");
- exit(2);
- }
- else
- if (childpid ==0 )
- {
- printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
- sleep(5);
- exit(2);
- }
- }
- int j=0;
- for (j=0;j<5;j++){
- wait(NULL);
- }
- return 0;
- }
- ////////////////////
- 6.
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <sys/wait.h>
- int main()
- {
- int childpid;
- //int status=1;
- //int zakonczono;
- printf("startuje proces macierzysty pid %d\n",getpid());
- int i;
- for (i=0;i<5;i++){
- if ((childpid = fork()) == -1)
- {
- perror("nie moge forknac");
- exit(2);
- }
- else
- if (childpid ==0 )
- {
- printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
- if (i==4)
- sleep(5);
- }
- else
- {
- wait(NULL);
- exit(5);
- }
- }
- return 0;
- }
- ///////////////////
- 7.
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <signal.h>
- #include <sys/wait.h>
- void oblsluga_zakonczenia_dziecka(int nr_sig)
- {
- printf("Rodzic już się dowiedział o zakończeniu procesu %d\n",wait(NULL));
- }
- int main()
- {
- signal(SIGCHLD,oblsluga_zakonczenia_dziecka);
- int childpid;
- //int status=1;
- //int zakonczono;
- printf("startuje proces macierzysty pid %d\n",getpid());
- if ((childpid = fork()) == -1)
- {
- perror("nie moge forknac");
- exit(1);
- }
- else
- if (childpid ==0 )
- {
- printf("Proces potomny o pidzie %d z rodzica %d\n",getpid(),getppid());
- }
- else
- {
- sleep(10);
- printf("Proces macierzysty o pidzie %d i dziecku %d\n",getpid(),childpid);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement