2016-11-10 3 views
1

Всякий раз, когда я читаю о процессах детей в C, порожденных fork(), родитель ждет, пока дети закончат. Тем не менее, я столкнулся с другой проблемой: Я хочу, чтобы порождали двух детей, а затем заставили их ждать, пока родитель не даст им работу.Ожидание дочерних процессов

f.example: В клиенте:

fork() two children

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

Как я могу добиться этого? Я не прошу большого фрагмента кода, просто руководство и, возможно, некоторый код для объяснения.

+1

Труба родителя может разговаривать с ребенком по трубе (2) –

+1

Им нужен способ связи с родителем. Это называется Inter-Process Communication (IPC). В UNIX для прямого раздвоенного chuld это обычно труба. –

+1

Попросите ребенка прочитать сообщение из старой доброй трубы или очереди сообщений, и это будет спать до тех пор, пока сообщение не станет доступным. – PSkocik

ответ

0

Что вы хотите - это межпроцессное общение (МПК) между родительским и дочерним процессом. Это очень распространено.

Если вы хотите связаться с дочерним процессом, вам необходимо использовать . Unix/C использует трубы через pipe(2).