5部 関数リファレンス

fork

2011年9月20日
fork

子プロセスを作り出します。親プロセスには、チャイルドプロセスのpidを、チャイルドプロセスに 0 を返しますが、forkに失敗したときには、未定義値を返します。

フラッシュされていないバッファは、どちらのプロセスに対しても、フラッシュされていないままとなっています。これは、出力がダブルのを避けるためには、$|を設定するか、IO::Handleモジュールのファイルハンドルメソッドautoflushを呼ぶ必要があるかもしれないということです。

チャイルドプロセスの終了を待たずに、forkを繰り返せば、ゾンビをため込むことになります。

$SIG{'CHLD'} = sub { wait };

プロセスについては用語集「プロセス」を参照してください。

ダブルfork

forkの返却値のエラーチェックは省いています。

unless ($pid = fork) {
unless (fork) {
exec "what you really wanna do";
die "no exec";
# ... または ...
some_perl_code_here;
exit 0;
}
exit 0;
}
waitpid($pid,0); 

Comment

コメントを残す

メールアドレスが公開されることはありません。

関連記事

リズムファクトリーはホームページの制作会社です。
ホームページ制作に関するご要望・ご相談はこちらからどうぞ。

株式会社リズムファクトリーでは現在、下記の職種について人材募集を行っております。
求人をクリックすると「求人情報サイトFind Job!」の求人詳細画面が開きますので、こちらからご応募下さい。

提供 : Webな人の求人情報サイト Find Job!