2012-08-10 18 views
1

我讀過幾個地方,你可以使用民意調查(2)與posix隊列,但沒有在互聯網上找到一個簡單的例子。所以,我認爲它應該是這樣的這是如何使用poll(2)的posix隊列?

mq_send(socket->mFd, (const char*)data->getBuffer(), data->getLen(), 0); 
//and then in an other porcess here is my poll 
::poll(m_descriptors, ii, msecWaitTime); 

但這並不工作,我希望一個POLLIN或POLLRDNORM也許POLLRDBAND或任何抵達,但它不。我很確定我的描述符存在於PollFd數組中。我做錯了什麼,或者這是正確的,問題是我的代碼中的其他地方? (我在OpenSuse,這是一個Linux,所以我猜這應該工作)。

+1

您可以在某些操作系統上Linux操作系統。但是請顯示您的所有代碼,因爲目前的兩行代碼並沒有告訴我們任何重要的東西。顯示在m_descriptors中設置消息隊列描述符的位置,顯示類型以及如何計算ii'等等。 – nos 2012-08-10 15:24:44

+0

嗨,沒問題,代碼很大並且分類,但是如果錯誤是我設置了m_descriptors和ii不正確,那麼我會進一步研究它。我只需要知道,這個例子是否是完全正確的並且應該工作,或者這不是應該如何調查這些隊列。 – user1132655 2012-08-10 15:32:10

回答

1

好的,NOS是對的。這個例子是非常正確的,它確實可以在我的OpenSuse上工作,忘記填寫這個fd的事件掩碼是我的錯誤。

相關問題