Kilka forków, i przejście pomiędzy nimi

0

Witam, mam pewien problem... szukalem w internecie na ten temat jednak niestety nie udalo mi sie znalezc... czy ktos ma moze jakis przyklad albo moglby mi pomoc z takim przykladem...
Poiedzmy ze chce miec 3 forki. Podproces jednego forka cos tam wyswietla i jak skonczy to wywolywany jest parent proces w ktorym jest przejscie do 2 forka i tak dalej. Bede wdzieczny za pomoc :)

0
anataunmeo napisał(a)

Witam, mam pewien problem... szukalem w internecie na ten temat jednak niestety nie udalo mi sie znalezc... czy ktos ma moze jakis przyklad albo moglby mi pomoc z takim przykladem...
Poiedzmy ze chce miec 3 forki. Podproces jednego forka cos tam wyswietla i jak skonczy to wywolywany jest parent proces w ktorym jest przejscie do 2 forka i tak dalej. Bede wdzieczny za pomoc :)

Wystarczy, że stworzysz sobie pipe przed forkiem. po forku zamkniesz pisanie w rodzicu - i spróbujesz czytać - tutaj Ci się zablokuje. Teraz jak dziecko zamknie pipa do pisania to rodzic się odblokuje, najprawdopodobniej pipe do pisania sam się zamknie gdy dziecko zginie.

Możesz też użyć też wait+pętli while (jako że jest to czekanie aktywne należy czekać z użyciem sleep).

Za każdym razem sprawdzasz, czy zwrócony PID zakończonego dziecka to nie jest ten utworzony w ostatnim forku.

Możesz też użyć pipa do zwykłego powiadamiania rodzica, żeby przeszedł do następnego forka - naprawdę sposobów jest cała masa.

0

IPC - sygnały, muteksy, semafory, pamięć dzielona, gniazda itp

0

a ma ktos moze jakis przyklad ? bo nie wiem do konca jak umiescic pipe przed forkiem....

0

proponuje zrobić to po prostu tak

  • fork w procesie macierzystym, następnie w procesie macierzystym robisz wait()
  • proces potomny cośtam sobie robi, zamyka się
  • proces macierzysty odbiera waitem() informacje i odpala nowego forka
    i tak w kółko.

1 użytkowników online, w tym zalogowanych: 0, gości: 1