1999年06月16日

Cの落し穴(UNIX限定だが)。forkしたら必ずwaitせよ。多少なりともまともなサーバプログラム書き始めたのだが、waitしないとあんなことになるとは知らんかった。なお、複数子プロセスを起動する場合は、子プロセスの終了をSIGCHILDで冷やせばOK。って冷えてるのはchilledか。

なお、select中にsignal受けとりwaitすると待ちをすっとばして、次の行に行ってしまうらしい。この場合引数が引数の readfdsが変化しないので、一見入力があったように見えてしまう。ちゃんとselectの戻り値をチェックする必要がアリである。

この2点で結構ハマった。今さらながらだがportsのソースは勉強になる。