$B!!$5$5$@$G$9!%(B
$B!!%?%$%^%9%l%C%I$N5sF0$rM^@)$9$k%Q%C%A$r:n@.$7$^$7$?!%$b$&!$>.:j$5$s$N$H(B
$B$3$m$K$O$"$k$+$b$7$l$^$;$s$,!$$H$j$"$($:!$$C$F$3$H$G!%(B
$B!!(Bfork $B$N$3$H$r9M$($F$$$J$$$N$G!$$^$@(B fork
$B$,$"$k$H$3$m$@$HF0$-$^$;$s!%(B
$BB?J,!%$=$l$r=|$$$?(B btest $B$OF0$-$^$7$?!%(B
$B!!$I$s$J$b$s$G$7$g$&$+!%$"$H$O!$(Bprocess.c
$B$N$"$?$j$rO.$l$P!$$H;W$C$F$$$^$9!%(B
select $B$H$+(B pipe $B$r;H$C$F%9%/%i%C%A$+$i=q$/$N$,!$<B$O=i$a$F!%(B
$B7P0^!’(B
- timer thread $B$,Dj4|E*$KF0$/$N$,5$$KF~$i$J$$!JEENOE*$J0UL#$H$+!K(B
- $B0JA0!$%;%^%U%)$G!$$=$&$8$c$J$/$9$k%Q%C%A$r=q$$$?(B
- MacOSX $B$@$H$=$l$8$c$&$^$/$$$+$J$$!J5!G=$,B-$j$J$$!K(B
- pipe hack $B$G$J$s$H$+$7$h$&!J(Bsignal handler -> timer thread
$B$X$NDL?.!K(B