关于理解Perl的fork函数的一个范例

方便理解,Perl的fork函数派生子进程的过程:

 

 
 
  1. #!/usr/bin/perl -w 
  2. # wangxiaoyu#live.com
  3. use strict;  
  4.  
  5. defined(my $pid=fork()or die "Fork process failured:$!\n";  
  6. unless($pid)  
  7. {  
  8.      # This is the child process.  
  9.      system "date";  
  10.      sleep(3);  
  11.      print ("Exit child after 3 seconds wait!\n");  
  12.      exit();  
  13. }  
  14. # This is the parent process.  
  15. waitpid($pid,0);  
  16. system "date";  
  17. print ("exit parent!\n");  

程序执行结果如下:

# perl perl-fork02.pl
Wed Aug  4 22:51:38 HKT 2010
Exit child after 3 seconds wait!
Wed Aug  4 22:51:41 HKT 2010
exit parent!
#
 

如果不在父进程中提供waitpid函数的话,父进程会在成功创建子进程后不等待子进程执行完毕,立即执行其余的代码,这样的话执行的结果如下:

# perl perl-fork02.pl Wed Aug  4 22:50:25 HKT 2010 Wed Aug  4 22:50:25 HKT 2010 exit parent! # Exit child after 3 seconds wait!  

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...