Потенциальный сбой, вызванный системным вызовом 'select' в chilkat lib, в случае сокета fd больше 1024 - PullRequest
0 голосов
/ 23 апреля 2019

мы используем chilkat lib на linux x64 для извлечения некоторых веб-ресурсов из интернета. Заметил, что функции chilkat lib, называемые «select», для мониторинга событий сокетов, от gdb до моей программы, ниже функций, называемых «select»:

ChilkatSocket :: waitWriteableMsHB (без знака int, bool, bool, SocketParams &, LogBase &) () ChilkatSocket :: waitReadableMsHB (unsigned int, SocketParams &, LogBase &) ()

*1005* *приведет к переполнению FD_SET, когда сокет fd больше, чем FD_SETSIZE (1024 в linux), а затем вызовет сбой программы?нужно ли вместо этого использовать современный syscall 'poll' или 'epoll'?

спасибо

1 Ответ

0 голосов
/ 24 апреля 2019

Chilkat может использовать системный вызов select, если значение fd меньше FD_SETSIZE. Если набор fd равен 1024 или больше, он всегда будет использовать опрос. Не беспокойтесь о переполнении FD_SET, потому что Chilkat решит использовать «опрос» во всех случаях, когда это имеет значение.

...