Descripción
Esta función establece la "alarma", lo que hace que el proceso actual reciba una señal SIGALRM en EXPR segundos. Si se omite EXPR, se usa el valor de $ _ en su lugar.
El retardo de tiempo real no es preciso, ya que diferentes sistemas implementan la funcionalidad de alarma de manera diferente. El tiempo real puede ser hasta un segundo más o menos que el valor solicitado. Solo puede configurar un temporizador de alarma a la vez. Si ya se está ejecutando un temporizador y realiza una nueva llamada a la función de alarma, el temporizador de alarma se restablece al nuevo valor. Un temporizador en ejecución se puede restablecer sin configurar un nuevo temporizador especificando un valor de 0.
Sintaxis
A continuación se muestra la sintaxis simple para esta función:
alarm EXPR
alarm
Valor devuelto
Esta función devuelve un valor entero, es decir. número de segundos restantes para el temporizador anterior.
Ejemplo
A continuación se muestra el código de ejemplo que muestra su 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
}