當我使用輪詢功能並將數量設置爲1000以上時,它根本不會睡覺。任何可能的想法。 opengroup沒有提到任何限制,我也沒有接近耗盡我的記憶空間。但是當我檢查指針時,整數是負數。任何想法可能是什麼?C:輪詢功能限制
C:輪詢功能限制
回答
我的猜測是你的文件描述符的限制設置爲1024.你可以通過在bash中運行ulimit -n
(unix)。對於窗戶請參閱http://support.microsoft.com/kb/111855。如果您運行的是Linux,你可以增加通過修改/etc/limits.conf(或/etc/security/limits.conf文件或類似)這樣的限制:
* soft nofile 10240
* hard nofile 10240
注意,更改後的限制,你將有註銷並重新登錄以獲取新值。
我一直在想這個限制。現在有這個數字的最大值嗎?什麼是依賴關係爲什麼它被默認設置得如此之低? – Jay 2011-04-10 05:05:32
@Jay,您可以爲'nofile' rlimits設置的最大值可以通過'/ proc/sys/fs/file-max'進行控制;請參閱'proc(5)'條目。 – sarnold 2011-04-10 05:12:56
您可以通過許多不同的方式獲得最大值。帶有RLIMIT_NOFILE的getdtablesize()和getrlimit()... 1024開放式fds對於典型的應用程序來說是很多的。對於服務器,您通常知道自己在做什麼,並將此值增加到符合您需要的任何值。 – Gonzalo 2011-04-10 05:16:44
如果poll()
返回負數,則應使用perror("poll");
來顯示原因。
如果原因是 「無效的參數」,也可能是這個原因(從the Linux poll()
man page):
EINVAL
的NFDs的值超過
RLIMIT_NOFILE
值。
順便說一句,在POSIX規範列表這是一個錯誤太:
民調()函數將失敗,如果: ...
[EINVAL]
的nfds
參數大於{OPEN_MAX}
- 1. 輪詢功能,ajax
- 2. 智能輪詢功能
- 3. JavaScript功能限制
- 4. 功能的C++時間限制
- 5. 排序和限制腳輪查詢
- 6. 用緩衝使用輪詢功能流
- 7. 限制功能上的功能相等
- 8. 限制功能spesifict時間
- 9. Laravel DD功能限制
- 10. 限制和動畫功能
- 11. 功能類型限制
- 12. 限制編輯功能
- 13. 限制功能父DIV
- 14. codigniter限制功能不能與$這個 - > DB->查詢($ SQL)
- 15. MySQL查詢性能限制?
- 16. USB輪詢機制
- 17. 限制MS Word內容控制功能
- 18. 瞭解輪廓功能
- 19. HTML中的滾輪功能
- 20. QuickFIX:日誌輪換功能
- 21. 通過jQuery/CDI進行長期輪詢:Bean功能需要睡眠()功能
- 22. 強制功能用C
- 23. 限制ASP.NET框架功能中的C#代碼
- 24. C#中動態調用的限制功能
- 25. 輪詢怎麼能比interupt
- 26. 不能實現長輪詢
- 27. Watir-Webdriver限制功能問題
- 28. 局部功能的使用限制
- 29. 哈斯克爾錄音功能限制
- 30. SQL Server 2008中仿效限制功能
「poll」的返回值是什麼?如果它是-1,「errno」的價值是什麼? – 2011-04-10 04:52:07
perror(「poll」); = poll:無效的參數 – Jay 2011-04-10 05:01:47
正在尋找從errno.h使用哪些函數,但我無法弄清楚。 – Jay 2011-04-10 05:02:32