Funzione di allarme Perl

Descrizione

Questa funzione imposta l '"allarme", facendo in modo che il processo corrente riceva un segnale SIGALRM in EXPR secondi. Se EXPR viene omesso, viene utilizzato il valore di $ _.

Il ritardo effettivo non è preciso, poiché sistemi diversi implementano la funzionalità di allarme in modo diverso. Il tempo effettivo può essere fino a un secondo in più o in meno rispetto al valore richiesto. È possibile impostare solo una sveglia alla volta. Se un timer è già in esecuzione e si effettua una nuova chiamata alla funzione di allarme, il timer della sveglia viene ripristinato al nuovo valore. Un timer in esecuzione può essere ripristinato senza impostare un nuovo timer specificando un valore di 0.

Sintassi

Di seguito è riportata la semplice sintassi per questa funzione:

alarm EXPR

alarm

Valore di ritorno

Questa funzione restituisce un valore intero, ad es. numero di secondi rimanenti per il timer precedente.

Esempio

Di seguito è riportato il codice di esempio che mostra il suo utilizzo di base:

#!/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
}