1

ポーリング機能を使用して数量を1000以上に設定すると、まったくスリープしません。これが何であるかについてのアイデア。opengroupは制限について何も言っておらず、私はメモリスペースを使い果たしそうにありません。しかし、ポインタをチェックすると、整数は負です。これが何であるかについてのアイデアはありますか?

4

2 に答える 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 に答える