#! / USR / бен / Perl использовать IPC :: SysV дш (IPC_PRIVATE IPC_CREAT S_IRWXU); использовать IPC :: Msg; мой $ очереди = IPC :: msg-> новый (IPC_PRIVATE, S_IRWXU | IPC_CREAT); $ MsgType = 6; $ msgdata = "привет мир!"; мой $ PID = вилка (); если (не определен $ PID) { печати «ресурсы не доступны . \ п»; } ELSIF ($ PID == 0) { печать "Я ребенок \ п."; сон 3; печать «Я ребенок 1,1 \ п.»; $ queue-> SND ($ MsgType, $ msgdata); печать «Я ребенок 1,2 \ п.»; сон 2; печать «Я ребенок 2. \ п»; Выход (0); } Еще { печать «Я являюсь родителем 1. \ п»; $ Тип = $ queue-> RCV ($ ЬиЕ, 256); печать "тип => $ типа \ п."; $ DS = $ queue-> стат; печать $ БУФ; печать $ ца; печать "конец PID => $ PID \ п."; $ Рез = $ queue-> удалить; печать "REMOVE Рез => $ разреш \ п."; если {($ определены разрешение!) распечатать "привет => $! \ п."; } Waitpid ($ PID, 0); }
Процесс по уходу за детьми, чтобы отправить сообщение, родительский процесс для получения сообщений. Какие queue-> RCV заблокирован.