2013-04-18 68 views
0

只使用信號(非實時)來實現這種情況的方式是什麼? :使用信號同步

存在N個孩子的(進程,由fork()創建的),1個父,並且同步必須是這樣的:

  1. 父等待任何子信號。
  2. 每個孩子發信號給家長,然後阻塞,直到從父接收 信號
  3. 父發送信號到孩子,其中信號,他注意到

我不知道該怎麼辦,因爲有隻有2個用戶自定義信號SIGUSR1,SIGUSR2,但我有N個孩子的,所以很多孩子只能使用一種類型的信號,恐怕它

任何想法?..

回答

0

你不需要使用那些用戶defi ned信號你可以發送任何信號給任何孩子..或父母你所要做的只是使用signal()sigaction()系統功能...並從該信號的ISR發送信號給特定的孩子

0

如果你真想只有信號做同步,(這是不是一個好主意)
可以使用sigqueue,發件人,並sigaction的作爲接收器,
它允許你添加int或指針到另一個進程。
所以接收者可以通過附加信息來識別發送者。