ポーリング機能を使用して数量を1000以上に設定すると、まったくスリープしません。これが何であるかについてのアイデア。opengroupは制限について何も言っておらず、私はメモリスペースを使い果たしそうにありません。しかし、ポインタをチェックすると、整数は負です。これが何であるかについてのアイデアはありますか?
1237 次
2 に答える
1
poll()
負の数を返す場合はperror("poll");
、理由を示すために使用する必要があります。
理由が「無効な引数」である場合は、次の理由である可能性があります(Linuxのpoll()
マニュアルページから)。
EINVAL
nfds値が値を超えてい ます
RLIMIT_NOFILE
。
ちなみに、POSIX仕様ではこれもエラーとしてリストされています。
[EINVAL]
次の場合、poll()関数は失敗します。...nfds
引数がより大きい{OPEN_MAX}
于 2011-04-10T04:55:41.183 に答える
1
私の推測では、ファイル記述子の制限は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
制限を変更した後、新しい値を取得するには、ログアウトしてから再度ログインする必要があることに注意してください。
于 2011-04-10T04:59:13.613 に答える