这两天兄弟在调试asterisk时发现了个问题,请大家帮我分析分析,找找原因: 我用了有名管道(FIFO),poll()监视有名管道的读描述符,当我向有名管道的写描述符写数据后,poll()会返回。但是它不是每次都能返回,有时根本就不返回。我不知道什么原因,请大家给我找找原因。
好像和其他平台的poll用法不同,man手册如下,有用过的兄弟给个例子? struct pollist { struct pollfd fds[3]; struct pollmsg msgs[2]; } list; The structure can then be initialized as follows: list.fds[0].fd = file_descriptorA; list.fds[0].events = requested_events; list.msgs[0].msgid = message_id; list.msgs[0].events = requested_events; The rest of the elements in thefdsandmsgsarray...
使用poll函数轮询1024以上的连接无法正常运行,1024以下都正常。出错的描述为Invalid argument 使用ulimit -n 使 open file 达到了2048,还是不行,是我的配置存在问题还是poll函数本身最大处理的连接数就这么多呀?请指教,谢谢 内核版本是 2.4.21-27,这个版本不打补丁能支持epoll么?打哪个补丁?谢谢
#include
linux 好像没有 /dev/poll , 是不是内核要打个什么补丁来着? 有遇到过的吗?交流一下。 底层规定使用/dev/poll/或者select,不是epoll OS: Red Hat Enterprise Linux AS release 3 (Taroon) Kernel 2.4.21-4.ELsmp on an i686:(
我在开发一个proxy的时候碰到了一个奇怪的问题: proxy的监听端口上执行poll时总是返回errno=EINTR,但是用ethereal在本机抓包可以看到这个端口上已经收到了对方发的包,poll中的fd对应的socket也已经绑定正确的端口。 大侠们能不能给点思路,可能是什么原因导致收到包时poll无效?