Perl 编程/关键字/fork
外观
fork创建一个fork(2)调用以在相同点启动相同程序,将子进程 PID 返回给其父进程,0给子进程,或undef,如果它不成功。文件描述符有时与它们的锁共享,而其他所有内容都被复制。大多数支持fork()的系统以极高的效率实现了它。
Perl 尝试在派生子进程之前刷新所有打开的输出文件,但这可能不受某些平台支持。为了安全起见,您可能需要设置$| ($AUTOFLUSH(以英语)或调用autoflush()方法IO::Handle在所有打开的句柄上,以避免重复输出。
要fork而不等待子进程会创建僵尸进程。在某些平台(如 Windows)上,fork()系统调用不可用,Perl 可以构建成在 Perl 解释器中模拟它。
fork
$pid = fork();
if ($pid == 0) {
print "I am the child of my parent\n";
exit 0;
}
print "I am the parent process and have the child with the ID $pid\n";
exit 0;
返回
I am the parent process and have the child with the ID -6852 I am the child of my parent