タグ

FD_SETSIZEに関するchorinskyのブックマーク (2)

  • LighttpdのFD_SETSIZE - フタなしカンヅメ

    Lighttpdを利用していて、エラーログに以下のようなエラーメッセージが表示されるようになりました。 2009-08-31 14:05:37: (server.c.1337) [note] sockets enabled again 2009-08-31 14:07:16: (server.c.1383) [note] sockets disabled, connection limit reached調べてみるとFD_SETSIZEを変更してビルドし直せばいいらしい。ちなみにFD_SETSIZEとは、ファイルディスクリプタのデフォルトサイズで、ファイルを入出力したりソケットを開いたりすると増えていって、この設定したサイズを上回るとエラーになるようです。 以下のようにビルドし直して、様子を見てみることにしました。 $ CFLAGS="-DFD_SETSIZE=4096" ./config

    LighttpdのFD_SETSIZE - フタなしカンヅメ
  • Big Sky :: select(2)の第一引数にディスクリプタの最大値を渡すのは間違い?

    追記 POSIX では明確にソケットの最大値とはうたってはいないものの、Linux の実装を見ても最大値と扱う方が良い様です。また Winsock では select(2) の第一引数は無視されるようです。 C言語でソケットを使うプログラミングを行う際、ソケットディスクリプタがシグナル状態かを調べる方法としてselect(2)があります。 使い方は int r; fd_set rfds; FD_ZERO(&rfds); FD_SET(sock, &rfds); r = select(1, &rfds, NULL, NULL, NULL); といった感じ。ここでselect(2)の第一引数に渡している値は、ディスクリプタ集合rfdsの内、いくつ検証するかを指す値。つまりrfdsに対してFD_ZERO/FD_CLRしてからFD_SETした回数となります。 ちなみに戻り値は、ディスクリプタ集合の

    Big Sky :: select(2)の第一引数にディスクリプタの最大値を渡すのは間違い?
  • 1