Função de alarme Perl

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
}