2016-11-10 3 views
1

Immer wenn ich über Kinder Prozesse in C gelesen von gabel() gelaicht, wartet das Elternteil auf die Kinder zu beenden. Ich stehe jedoch vor einem anderen Problem: Ich möchte zwei Kinder spawnen und sie dann warten lassen, bis die Eltern ihnen Arbeit geben.Warten Kinder Prozesse

f.example: Im Client:

fork() two children

in parent, connect to a server 
server returns some work to do 
parents hands work over to children 

Wie kann ich das erreichen? Ich frage nicht nach einem großen Teil des Codes, nur ein wenig Anleitung und vielleicht etwas Code zu erklären.

+1

Eine Pipe im Elternteil kann über Pipe mit Kind kommunizieren (2) –

+1

Sie brauchen eine Möglichkeit, mit dem Elternteil zu kommunizieren. Dies wird als Interprozesskommunikation (IPC) bezeichnet. Unter UNIX ist dies für eine direkt gegabelte Chuld normalerweise eine Pipe. –

+1

Lassen Sie das Kind eine Nachricht aus einer guten alten Pipe oder einer Nachrichtenwarteschlange lesen, und es wird in den Ruhezustand versetzt, bis eine Nachricht verfügbar wird. – PSkocik

Antwort

0

Was Sie wollen, ist Inter-Process Communication (IPC) zwischen einem übergeordneten und einem untergeordneten Prozess. Dies ist sehr häufig.

Wenn Sie mit einem untergeordneten Prozess kommunizieren möchten, müssen Sie eine verwenden. Unix/C verwendet Rohre über pipe(2).

Verwandte Themen