gpt4 book ai didi

perl - 如何为 qx(command) 实现超时?

转载 作者:行者123 更新时间:2023-12-05 08:44:46 27 4
gpt4 key购买 nike

我如何在这段代码中实现超时:如果“hwinfo --usb”-command 在一定时间后没有返回任何内容,(停止命令并)执行返回或死于子 _usb_device。

#!/usr/bin/env perl
use warnings;
use strict;


sub _usb_device {
my @array;
{
local $/ = "";
@array = qx( hwinfo --usb );
}
...
...
}

最佳答案

超时通常由 alarms 完成.


sub _usb_device
{
# Scope array
my @array;

# Try shell command
eval
{
local $SIG{ALRM} = sub { die "timeout\n" };
local $/ = "";
alarm 10;
@array = qx( hwinfo --usb );
alarm 0;
};

# Catch and rethrow non timout errors
die $@ if $@ && $@ ne "timeout\n";

# Done
return @array;
}

关于perl - 如何为 qx(command) 实现超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com