Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- int znajdz(int * tablica, int ilosc_poziomow) //obvious
- {
- int i = 0;
- while(i<ilosc_poziomow && tablica[i] == -1)
- i++;
- if ( i == ilosc_poziomow)
- return -1;
- return i;
- }
- int main(int argc, char* argv[])
- {
- int argumenty[66]; // wejscie ale nie w charach
- int ilosc_poziomow = argc - 1; //ilosc elementow w tab
- int i;
- int id_procesu;
- int ilosc_klonow;
- int j;
- int matka = 1;
- for(i=1;i<argc;i++)
- {
- argumenty[i-1] = atoi(argv[i]);
- }
- argumenty[argc-1] = -1;
- ilosc_klonow = argumenty[0];
- argumenty[0] = -1;
- //pobieramy, ustawiamy ze pobrany
- i = 0;
- while(i < ilosc_klonow)
- {
- if(ilosc_klonow > 0) //takie zabezpieczenie, bez tego chyba sie cos sypalo
- id_procesu = fork(); //tworzymy nowy proces
- if(id_procesu == 0) //jestem procesem potomnym
- {
- i = 0; //wiec ustawiam i na zero, bo jeszcze nic nie utworzylem
- j = znajdz(argumenty, ilosc_poziomow);
- if(j== -1)
- {
- ilosc_klonow = -1;
- //nie bedzie klonowania, smutek
- }
- else
- {
- ilosc_klonow = argumenty[j];
- argumenty[j] = -1;
- //pobieramy, ustawiamy na pobrane
- }
- matka = 0;
- //nie jestes moja prawdziwa mama
- }
- else
- {
- i++;
- //klonuj dalej
- }
- }
- if(matka == 1)
- {
- sleep(1);
- execlp( "ps", "-u student", "--forest", NULL );
- }
- else
- sleep(5);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement