文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>run command

run command

时间:2010-11-16  来源:mpapply

sub run_task {
        no strict 'subs';
        my $cmd = shift;
        my $cpid;
        my $output;
        my $timeout = $TIMEOUT || 60;
        eval {
                local $SIG{ALRM} = sub { die "Caught alarm signal\n" };
                alarm($timeout);
                $cpid = open(CMD,"$cmd 2>&1 |");
                local $/;
                $output = <CMD>;
                alarm(0);
        };
        if ($@) {
                kill TERM, $cpid if ($cpid);
                return undef;
        }
    elsif (close(CMD)) {
        return $output ? $output : 1;
    }
        else {
        if ($output =~m/\w+/) {
                        return $output;
                }
                #return 0;

        }
}


如果这个传入的$cmd是一个类似“find -type f" 这种类型的输出是一个间断性的一个过程的话,
前面的 $output 不会得到所有的输出。所以应该用以下的代码:
 while(<CMD>){
    $output.=$_;
  }

因为用了  :local $/;  所以上面的问题不会发生

相关阅读 更多 +
排行榜 更多 +
地狱摩托游戏最新版下载

地狱摩托游戏最新版下载

赛车竞速 下载
小猫快来钓鱼游戏下载

小猫快来钓鱼游戏下载

休闲益智 下载
殴打氪金大佬昊天手游下载

殴打氪金大佬昊天手游下载

休闲益智 下载