Как создать несколько дочерних процессов(скажем 3) от одного родительского, так чтобы все они могли принимать от него сообщения и передавать ему ответы?? Заранее Спасибо
>>Ну типа некие параметры для дочерних процесов
Ну я ваащето ламер, так шо предлагаю ламерский вариант:
када делаешь fork(), получаешь PID потомка. Когда надо передать дочернему процессу параметры, то пишешь эти параметры в какой нить файлик и посылаешь конкретному потомку какой нить сигналец типа SIGUSR1
А в дочернем пишешь обработчик этого сигнала, чтобы он этот самый
файлик и перечитывал.
>>а от дочернего до родительского-сигнал что потомок закончил работу
закончил работу - это умер ???? Или просто выполнил какие-то действия?
В первом случае - потомок сам посылает сигнал SIGCHLD родителю.
Если просто один раз передать от родительского дочернему при старте - пользуй переменные окружения, если нужен полный IPC, тогда реализуй его ( см., напр., man perlipc - разные варианты разрисованы в деталях и красках)
опять промазал !!
всё больше не пишу в форум на работе :))
правильно так
switch (pid=fork()) {
case -1://error
break;
case 0://child action
break;
default://parent action
}
Сделай такую штуку в процедурине, вызови ее 3 раза, и будут тебе 3 дочки со
своими пайпами. Хошь дуплексности - протягиваешь 2 пайпа, один будет от дочки
к папе, второй - наоборот.