fork

広告

広告

解説

システムコール fork を行なう関数です。親プロセスにはチャイルドプロセスの pid を、チャイルドプロセスに 0 を返しますが、fork に失敗したときには未定義値を返します。フラッシュされていないバッファはどちらのプロセスに対してもフラッシュされていないままとなっています。これは、出力が重なるのを避けるためには、$| (English では $AUTOFLUSH) を設定するかファイルハンドルメソッド autoflush() を呼ぶ必要があります。チャイルドプロセスの終了を待たずに、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);

広告

Copyright (C) 2003-2006 七鍵 key@do.ai 初版:2003年07月07日 最終更新:2006年08月08日