Hi guys, Actually I want to get STDERR ouput to have more details about systems call errors, and write the result to a log file...
I spent a couple of hours writing (well... Finding how to write ! :) the "sample code", but I have the feeling that all that stuff is overkill... Is there something more simple ? Thanks for your time ! ************ SAMPLE CODE ************ #-------------------------------------------------------------------- # The following code is for reading STDERR output # from a filehandle called GET_STDERR # Opening a pipe to get STDERR output. pipe(GET_STDERR, FROM_STDERR) or die "pipe $!"; # setting GET_STDERR non blocking : # we don't want to wait for data if nothing's ready my $flags = fcntl(GET_STDERR, F_GETFL, 0 ) or die "can't get flags"; fcntl(GET_STDERR, F_SETFL, $flags | O_NONBLOCK) || die "can't set flags"; # setting autoflush to all STDERR related filehandles select((select(STDERR) , $|=1)[0]); select((select(GET_STDERR) , $|=1)[0]); select((select(FROM_STDERR) , $|=1)[0]); # redirect STDERR to pipe input open(STDERR, ">&FROM_STDERR") || die "Can't dup stderr"; # buffer for reading pipe output my @err = (); #... bla bla bla ... my $cmd = "$ZIP_CMD $filename"; if ( system($cmd) != 0 ){ chomp(@err = <GET_STDERR>); log_("0310E-Can't zip file Cmd=[$cmd]; stderr=[".join("; ",@err)."]"); } #... bla bla bla ... #-------------------------------------------------------------------- jp. --------------------------------------- Jean-Pierre Sylvanie Microcell Telecom - IT Dev (o_ Assurance des Revenus & Fraudes //\ Revenue Assurance & Fraud v_/ (514) 937-0102 (ext: 6062) [EMAIL PROTECTED] --------------------------------------- -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]