Descrição
Esta função define o "alarme", fazendo com que o processo atual receba um sinal SIGALRM em segundos EXPR. Se EXPR for omitido, o valor de $ _ será usado em seu lugar.
O atraso de tempo real não é preciso, pois sistemas diferentes implementam a funcionalidade de alarme de maneira diferente. O tempo real pode ser até um segundo a mais ou a menos que o valor solicitado. Você só pode definir um despertador por vez. Se um cronômetro já estiver em execução e você fizer uma nova chamada para a função de alarme, o cronômetro será redefinido para o novo valor. Um cronômetro em execução pode ser zerado sem definir um novo cronômetro especificando um valor de 0.
Sintaxe
A seguir está a sintaxe simples para esta função -
alarm EXPR
alarm
Valor de retorno
Esta função retorna um valor inteiro, ou seja. número de segundos restantes para o temporizador anterior.
Exemplo
A seguir está o código de exemplo que mostra seu uso básico -
#!/usr/bin/perl
eval {
local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
alarm $timeout;
$nread = sysread SOCKET, $buffer, $size;
alarm 0;
};
if ([email protected]) {
die unless [email protected] eq "alarm\n"; # propagate unexpected errors
# timed out
} else {
# didn't
}