OT: Perl: CTRL-C bei system() abfangen.

Hallo zuammen, ich versuche ein CTRL-C in einem Perl Script so abzufangen, dass das bei einem system() keine Auswirkung hat, also ignoriert wird. Aber das funktioniert bei mir nicht. Habe dazu bei "http://perldoc.perl.org/functions/system.html" gelesen: Since SIGINT and SIGQUIT are ignored during the execution of system, if you expect your program to terminate on receipt of these signals you will need to arrange to do so yourself based on the return value. und habe das erst so verstanden, dass ein CTRL-C während eines system() keine Auswirkung hat. Hat es aber doch. Wie schaffe ich es dass CTRL-C auch während eines system() keine Auswirkung hat ? Bei Google habe ich nichts weiter dazu gefunden. So habe ich es versucht: -------------------------------------------- #!/usr/bin/perl sub handler_allow { print "\n Caught signal ",@_,"\n Exit 0\n"; exit(0); } sub handler_ignore { $SIG{'INT'} = \&handler_ignore; print "\n Caught signal ",@_," but ignore it!!\n"; } $SIG{'INT'} = \&handler_allow; : : : print " Ignore now CTRL-C ...\n"; $SIG{'INT'} = \&handler_ignore; system("cp /tmp/bigfile.tar /tmp/bigfile2.tar"); print " Allow now CTRL-C ...\n"; $SIG{'INT'} = \&handler_allow; : : : exit(0); -------------------------------------------- $ /usr/bin/perl -version This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi Danke und Gruss Werner Franke -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (1)
-
Werner Franke