⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fig18_11.pl

📁 PERL语言资料 可以用于PERL程序设计
💻 PL
字号:
#!/usr/bin/perl
# Fig. 18.11: fig18_11.pl
# Using pipe to communicate with child processes.

use warnings;
use strict;
use IO::Handle;

pipe( CHILDINPUT, PARENTOUTPUT );
pipe( PARENTINPUT, CHILDOUTPUT );

PARENTOUTPUT->autoflush( 1 );
CHILDOUTPUT->autoflush( 1 );
STDOUT->autoflush( 1 );

if ( my $pid = fork() ) {

   for ( 1 .. 10 ) {
      print( PARENTOUTPUT "$_\n" );
      print( "I said $_, " );
      chomp( my $response = <PARENTINPUT> );
      print( "and he said $response!\n" );
   }
   
   close( PARENTOUTPUT ) or 
      die( "Cannot close PARENTOUTPUT: $!" );
   close( PARENTINPUT ) or
      die( "Cannot close PARENTINPUT: $!" );
}
elsif ( defined( $pid ) ) {
   close( PARENTOUTPUT ) or
      die( "Cannot close PARENTOUTPUT: $!" );
   close( PARENTINPUT ) or
      die( "Cannot close PARENTINPUT: $!" );

   while ( <CHILDINPUT> ) {
      chomp();
      print( CHILDOUTPUT $_ * 20, "\n" );
   }

   close( CHILDOUTPUT ) or
      die( "Cannot close CHILDOUTPUT: $!" );
   close( CHILDINPUT ) or
      die( "Cannot close CHILDINPUT: $!" );
   exit();
}
else {
   die( "Fork did not work" );
}

print( "And that is the end of the conversation.\n" );

###########################################################################
#  (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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -