fig18_15.pl

来自「PERL语言资料 可以用于PERL程序设计」· PL 代码 · 共 62 行

PL
62
字号
#!/usr/bin/perl
# Fig. 18.15: fig18_15.pl
# Sending signals to child processes using kill.

use warnings;
use strict;
use POSIX qw( :signal_h :errno_h :sys_wait_h );

$SIG{ USR1 } = \&user1;
$SIG{ USR2 } = \&user2;
$| = 1;

sub user1 
{
   $SIG{ USR1 } = \&user1;
   print( "I have received SIGUSR1.\n" );
}

sub user2 
{
   $SIG{ USR2 } = \&user2;
   print( "I have received SIGUSR2.\n" );
}

if ( my $pid = fork ) {
   kill( 'USR1', $pid );
   kill( 'USR2', $pid );
   print( "I have just sent two signals.\n" );
   sleep( 2 );
   print( "Now I am going to send a few more.\n" );
   kill( USR2 => $pid );
   kill( USR1 => $pid );
   print( "Parent done.\n" );
}
elsif ( defined( $pid ) ) {
   sleep( 5 );
   print( "Kid done.\n" );
   exit();
}
else {
   print( "Forking error...\n" );
}

wait();


###########################################################################
#  (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall.     #
#  All Rights Reserved.                                                   #
#                                                                         #
#  DISCLAIMER: The authors and publisher of this book have used their     #
#  best efforts in preparing the book. These efforts include the          #
#  development, research, and testing of the theories and programs        #
#  to determine their effectiveness. The authors and publisher make       #
#  no warranty of any kind, expressed or implied, with regard to these    #
#  programs or to the documentation contained in these books. The authors #
#  and publisher shall not be liable in any event for incidental or       #
#  consequential damages in connection with, or arising out of, the       #
#  furnishing, performance, or use of these programs.                     #
###########################################################################

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?