2009-11-04 6 views
1

Я хочу знать, могу ли я использовать функцию poll() в цепочке разработки MinGW. У меня CodeBlocks + MinGW. Большое спасибо.Функция poll() c на окнах

+3

Что вы пробовали? Он существует, когда вы его называете? Работает ли он, когда вы его используете? Почему бы вам просто не попробовать? У вас есть доказательства того, что он не работает? –

+0

Ну, я слышал, что это только POSIX, я хочу знать, успешно ли он использовал его на MinGW, но я этого не пробовал. – ademir

+0

Наверное, я должен сказать это здесь как ответ, но этот вопрос слишком стар. Таким образом, вы не можете использовать; MinGW даже не знает, что это за функция. Но вот забавная вещь, что в файле winsock2.h из MinGW определена структура 'pollfd', даже понятия не имею. Вероятно, это была чья-то надежда, жестоко погребенная под тысячными символами исходного кода. И, наверное, я один из тех, кто надеется. –

ответ

1

Последнее, что я слышал, poll() либо не поддерживался, либо предоставлял ограниченную функциональность по mingw. Но вы можете поставить свой собственный базовый poll(), который использует select() внутренне.

+0

Нет! Win32 'select()' почти ничего не делают с функцией 'poll()'. Он не может прослушивать последовательный порт, ни именованный канал. –

0

Windows, также предоставляет WSAPoll() функцию, но производительность хуже, чем select() из MSDN блоге он был реализован только для улучшения переносимости:

http://blogs.msdn.com/b/wndp/archive/2006/10/26/wsapoll.aspx

+0

'WSAPoll()' не работает для именованных каналов, как я только что нашел в вашем собственном ответе. Я подозреваю, что это не работает для последовательных портов. –

+0

Также стоит отметить, что 'WSAPoll()' не сообщает о неудачных соединениях. Рекомендации Microsoft автору cURL заключались в том, чтобы не использовать его, и его API-интерфейс был бы неактуальным в статье Windows 8 - https://curl.haxx.se/mail/lib-2012-10/0038.html – Anon