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

本文通过一个具体的Perl脚本示例介绍了如何使用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!

 





     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/367589,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值