/ / Utwórz generator procesów - c

Utwórz generator procesów - c

Mam proces (nameprocess.c), które tworzą pewne rzeczy.

Muszę stworzyć kolejny proces (nameprocess-generator.c), które nadal generują ten proces nameprocess.c aż do nadejścia odliczania 0 lub jakiś czas przybył 0.

Czy muszę użyć execv lub fork?

Odpowiedzi:

1 dla odpowiedzi № 1

Używasz obu. Za pomocą execv() samo w sobie po prostu zastąpi bieganie przetwarzać z innym.

Najpierw używasz fork(). Tworzy to klon działającego procesu. ty teraz mają dwa procesy z tym samym kodem. Jak im powiedzieć? niezależnie? Według wartości zwracanej. Oryginalny proces ("nadrzędny") otrzymuje zwracana wartość nowego identyfikatora procesu (pid), a nowy ("dziecko") otrzymuje wartość zwracaną 0.

Tak więc oryginalny proces ciągle robi cokolwiek, podczas gdy nowy wywołuje jeden z execv funkcje do zastąpienia się innym procesem.

Możesz zobaczyć przykładowy kod, który używa fork() w starej odpowiedzi, tutaj.