• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie fork i 32 procesy potomne

0 głosów
1,760 wizyt
pytanie zadane 5 grudnia 2018 w C i C++ przez profesorek96 Szeryf (91,420 p.)

Witam was.

Mam za zadanie wykonać program który jeden proces wytwarza 32 procesy potomne. Czy takie kod jest ok:

#include <stdio.h>
#include <unistd.h>

int main()
{
    fork();
    fork();
    fork();
    fork();
    fork();
    sleep(20);
    return 0;
}

Drugie pytnaie to mam napisać program w którym program macierzysty wytwarza 1 prces potomny, ten potomny wytwarza kolejny potomny, tak aby wszystkich potomnych bylo 16.

#include <stdio.h>
#include <unistd.h>

int main()
{
    int i=0;
    for(i=0;i<5;i++)
    {
        if(fork()==0)
        {
            sleep(30);
            return 0;
        }
    }
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 5 grudnia 2018 przez j23 Mędrzec (195,220 p.)
wybrane 8 grudnia 2018 przez profesorek96
 
Najlepsza

Jeśli 16, to nie tak jakoś:

int main()
{
	for(int i = 0; i < 16; ++i)
	{
		pid_t pid = fork();
		if(pid != 0)
		{
			waitpid(pid, NULL, 0);
			return 0;
		}
	}

	sleep(5);
	return 0;
}

?

 

Te 32 to tak:

int main()
{
	for(int i = 0; i < 32; ++i)
	{
		if(fork() == 0)
		{
			sleep(5);
			return 0;
		}
	}

	for(int i = 0; i < 32; ++i)
	{
		waitpid(-1, NULL, 0);
	}

	return 0;
}

 

komentarz 6 grudnia 2018 przez profesorek96 Szeryf (91,420 p.)
Czemu akurat pętla ? Przecież chyba fork jest rekurencyjny ?
komentarz 6 grudnia 2018 przez j23 Mędrzec (195,220 p.)

Dlatego że w treści zadania masz "jeden proces wytwarza 32 procesy potomne".

komentarz 6 grudnia 2018 przez profesorek96 Szeryf (91,420 p.)
No a w moim programie to jak jest nie 1 proces wytwarza 32 potomne ?
komentarz 7 grudnia 2018 przez j23 Mędrzec (195,220 p.)
Według mnie tam proces główny tworzy pięć procesów potomnych, które tworzą inne procesy potomne.

Podobne pytania

0 głosów
1 odpowiedź 1,336 wizyt
pytanie zadane 11 stycznia 2019 w C i C++ przez poldeeek Mądrala (5,980 p.)
0 głosów
1 odpowiedź 1,065 wizyt
pytanie zadane 30 listopada 2018 w C i C++ przez periedynek Obywatel (1,320 p.)
0 głosów
1 odpowiedź 2,025 wizyt
pytanie zadane 11 listopada 2018 w C i C++ przez matiibal Użytkownik (620 p.)

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...