C : poll 功能限制

发布于 2024-10-31 16:01:56 字数 117 浏览 1 评论 0原文

当我使用 poll 函数并将数量设置为 1000 以上时,它根本不休眠。关于这可能是什么的任何想法。 opengroup 没有提到限制,而且我还没有耗尽我的内存空间。但是当我检查指针时,整数是负数。你知道这可能是什么吗?

When I use the poll function and set the quantity above 1000 it does not sleep at all. Any ideas of what this could be. opengroup says nothing about a limit and I am no where near exhausting my memory space. But when I check the pointer the integer is negative. Any ideas of what this could be?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

故人如初 2024-11-07 16:01:56

我的猜测是您的文件描述符限制设置为 1024。您可以通过在 bash (unix) 中运行 ulimit -n 来查看这一点。对于 Windows,请参阅 http://support.microsoft.com/kb/111855。如果您运行的是 Linux,则可以通过修改 /etc/limits.conf (或 /etc/security/limits.conf 或类似文件)来增加该限制,例如:

*               soft    nofile  10240
*               hard    nofile  10240

请注意,更改限制后,您将必须注销并重新登录使其具有新的值。

My guess is that your limit for file descriptors is set to 1024. You can see this by running ulimit -n in bash (unix). For windows see http://support.microsoft.com/kb/111855. If you are running linux, you can increase that limit by modifying /etc/limits.conf (or /etc/security/limits.conf or similar) like:

*               soft    nofile  10240
*               hard    nofile  10240

Note that after changing the limits you will have to log out and log back in for it to have the new values.

薄荷港 2024-11-07 16:01:56

如果 poll() 返回负数,则应使用 perror("poll"); 来显示原因。

如果原因是“无效参数”,则可能是由于这个原因(来自 Linux poll() 手册页):

EINVAL

nfds 值超过
RLIMIT_NOFILE 值。

顺便说一句,POSIX 规范也将其列为错误:

如果出现以下情况,poll() 函数将失败:
... [EINVAL]
nfds 参数大于 {OPEN_MAX}

If poll() returns a negative number, you should use perror("poll"); to show the reason.

If the reason is "Invalid Argument", it could be for this reason (from the Linux poll() man page):

EINVAL

The nfds value exceeds the
RLIMIT_NOFILE value.

By the way, the POSIX spec lists this as an error too:

The poll() function shall fail if:
... [EINVAL]
The nfds argument is greater than {OPEN_MAX}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文