Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Zad2.
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char** argv)
- {
- pid_t pid_potomka;
- pid_t pidr;
- pid_t pidmoj;
- int DL_NAPISU = 80;
- char komunikat[DL_NAPISU];
- int powtorzen;
- printf("Na razie dziala jeden proces\n");
- pid_potomka = fork();
- pidmoj = getpid();
- pidr = getppid();
- switch (pid_potomka)
- {
- case -1:
- printf("rozwidlenie procesu nie powiodlo sie\n");
- exit(1);
- case 0:
- powtorzen = 5;
- snprintf(komunikat, DL_NAPISU, "Jestem potomkiem, pid potomka: %d, moj pid : %d ", pid_potomka, pidmoj);
- break;
- default:
- powtorzen = 5;
- snprintf(komunikat, DL_NAPISU, "Jestem rodzicem, pid rodzica: %d, moj pid : %d ", pidr, pidmoj);
- break;
- }
- for( ; powtorzen > 0; powtorzen --)
- {
- puts(komunikat);
- sleep(1);
- }
- }
- Zad3.
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char** argv)
- {
- pid_t pid_potomka;
- pid_t pidr;
- pid_t pidmoj;
- int DL_NAPISU = 80;
- char komunikat[DL_NAPISU];
- int powtorzen;
- printf("Na razie dziala jeden proces\n");
- pid_potomka = fork();
- pidmoj = getpid();
- pidr = getppid();
- switch (pid_potomka)
- {
- case -1:
- printf("rozwidlenie procesu nie powiodlo sie\n");
- exit(1);
- case 0:
- powtorzen = 2;
- snprintf(komunikat, DL_NAPISU, "Jestem potomkiem, pid potomka: %d, moj pid : %d ", pid_potomka, pidmoj);
- break;
- default:
- powtorzen = 4;
- snprintf(komunikat, DL_NAPISU, "Jestem rodzicem, pid rodzica: %d, moj pid : %d ", pidr, pidmoj);
- break;
- }
- for( ; powtorzen > 0; powtorzen --)
- {
- puts(komunikat);
- sleep(1);
- }
- switch(pid_potomka)
- {
- case 0:
- system("ps -ef | widelec | grep -v grep "); break;
- printf(" Jestem potomkiem i koncze prace");
- default:
- system("ps -ef | widelec | grep -v grep "); break;
- printf(" Jestem rodzicem i koncze prace");
- }
- }
- Zad 4/5
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/wait.h>
- int main(int argc, char** argv)
- {
- pid_t pid_potomka;
- pid_t pidr;
- pid_t pidmoj;
- int DL_NAPISU = 80;
- char komunikat[DL_NAPISU];
- int powtorzen;
- printf("Na razie dziala jeden proces\n");
- pid_potomka = fork();
- pidmoj = getpid();
- pidr = getppid();
- int status = 0;
- switch (pid_potomka)
- {
- case -1:
- printf("rozwidlenie procesu nie powiodlo sie\n");
- exit(1);
- case 0:
- powtorzen = 7;
- snprintf(komunikat, DL_NAPISU, "Jestem potomkiem, pid potomka: %d, moj pid : %d ", pid_potomka, pidmoj);
- break;
- default:
- powtorzen = 2;
- snprintf(komunikat, DL_NAPISU, "Jestem rodzicem, pid rodzica: %d, moj pid : %d ", pidr, pidmoj);
- break;
- }
- for( ; powtorzen > 0; powtorzen --)
- {
- puts(komunikat);
- sleep(1);
- }
- switch(pid_potomka)
- {
- case 0:
- printf(" Jestem potomkiem i koncze prace");
- default: pid_potomka =0;
- while(pid_potomka == 0){
- pid_potomka = waitpid(-1, &status, WNOHANG);
- sleep(1); }
- // pid_potomka = wait(&status); --- zadanie 4
- printf(" Potomek o pid : %d wlasnie sie skonczyl", pid_potomka);
- printf(" Jestem rodzicem i koncze prace ");
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement