perl子进程给父进程传数据
pipe(FROM_PARENT,TO_CHILD) or die "pipe: $!"; pipe(FROM_CHILD,TO_PARENT) or die "pipe:$!"; select((select(TO_CHILD),$| = 1))[0]); # 自动刷新 select((select(TO_PARENT),$| = 1))[0]); # 自动刷新 if ($pid = fork) { close FROM_PARENT; close TO_PARENT; print TO_CHILD "Parent Pid $$ is sending thisn"; chomp($line = <FROM_CHILD>); print "Parent Pid $$ just read this: `$line'n"; close FROM_CHILD; close TO_CHILD; waitpid($pid,0); } else { die "cannot fork: $!" unless defined $pid; close FROM_CHILD; close TO_CHILD; chomp($line = <FROM_PARENT>); print "Child Pid $$ just read this: `$line'n"; print TO_PARENT "Child Pid $$ is sending thisn"; close FROM_PARENT; close TO_PARENT; exit; } ? #!/usr/bin/perl [root@test1 fork]# perl test.pl start In parent ?11359?? -- 11360 In parent ?11359?? -- 11361 In parent ?11359?? -- 11362 $VAR1 = { ????????? '11360' => 1,????????? '11362' => 1,????????? '11361' => 1 ??????? }; 11361 exit 11362 exit $VAR1 = { ????????? '11360' => 1 ??????? }; $VAR1 = { ????????? '11360' => 1 ??????? }; $VAR1 = { ????????? '11360' => 1 ??????? }; $VAR1 = { ????????? '11360' => 1 ??????? }; $VAR1 = { ????????? '11360' => 1 ??????? }; 11360 exit $VAR1 = 'In child 11361 return value 0.727502020665298 '; $VAR1 = 'In child 11362 return value 1.97574310994972 '; $VAR1 = 'In child 11360 return value 6.72100603266884 '; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |