fj.unixの記事<3988844news.pl@insigna.ie.u-ryukyu.ac.jp>で
        kono@ie.u-ryukyu.ac.jpさんは書きました。
> > # というか、select()をご存じなのになぜこれが出てこ
> > # ないのか不思議。select()を使ってはいけない理由が
> > # 何かあるのでしょうか...。
> 
> ちゃんと使うのは難しいですよ。

むむ、そうかな。

> > 可)、write()は返り値を調べて何バイト書けたかをきち
> > んとチェックする、などの配慮が必要です。
> 
> BSD ならwriteは失敗しないのでその必要はありません。Linux
> では必要です。

4096バイトしか容量のないパイプにそれより大きいデー
タを書こうとしたときは、BSDでも書けたところまでの
バイト数が返ると思ったのですが、違うかな。

> さらにalarm/itimer と select を組み合わせると、read/write/select
> が、それにひっかかると失敗するので、それに対応するコードを
> 書く必要があります。これは結構大変です。あはは。

シグナルがからむとね。pselect()があるならselect()
でなくてそっちを使うという手もありますが。

でもalarm()/itimer()とselect()を組み合わせるってど
んなときだろう。デーモンプロセスで下位のクライアン
ト管理はselect()で行って、上位のスケジューリングに
alarm()/itimer()を使うのかな?

select()を使いたいときって外部のイベントと協調して
動きたいわけなので、内部の都合(タイマーとか)で縛ら
れなくてすむように設計しませんか?
-- 
太田純(Junn Ohta) (株)リコー/新横浜事業所
ohta@sdg.mdd.ricoh.co.jp