next up previous contents
suivant: Exécuter un code risqué monter: Truc et astuces précédent: Calculer le jour d'une   Table des matières

Régler un timeout sur un appel system

Utiliser la fonction alarm() et annuler son effet si l'opération réussit :

#!/usr/local/bin/perl

use strict;
use FileHandle;

my $file = "file";

eval{
        local $SIG{ALRM} = sub { die "alarm\n" };
        alarm(5);
        if(my $fd = FileHandle -> new($file,"w"))
        {
        	alarm(0);
        	print $fd "Bonjour\n";
        	$fd -> close() or warn $!;
        }
};

exit 1;

Plus de documentation dans la documentation de Perl :

Et dans les pages de man à propos de la commande système alarm() :



Stephane TOUGARD 2002-09-07