logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Proc::WaitStat - Interpret and act on wait() status values

Author

Roderick Schertler <roderick@argon.org>

Description

This module contains functions for interpreting and acting on wait status values. Nothing is exported by default. waitstatwait-status Returns a string representation of wait() status value wait-status. Values returned are like "0" and "64" and "killed (SIGHUP)". This function is prototyped to take a single scalar argument. waitstat_reusewait-status Turn wait-status into a value which can be passed to exit, converted in the same manner the shell uses. If wait-status indicates a normal exit, return the exit value. If wait-status instead indicates death by signal, return 128 plus the signal number. This function is prototyped to take a single scalar argument. waitstat_diewait-statusprogram-namedie() if wait-status is non-zero (mentioning program-name as the source of the error). This function is prototyped to take two scalar arguments. close_diefilehandlename Close filehandle, if that fails die() with an appropriate message which refers to name. This handles failed closings of both programs and files properly. This function is prototyped to take a filehandle (actually, a glob ref) and a scalar.

Examples

close SENDMAIL; exit if $? == 0; log "sendmail failure: ", waitstat $?; exit EX_TEMPFAIL; $pid == waitpid $pid, 0 or croak "Failed to reap $pid: $!"; exit waitstat_reuse $?; $output = `some-program -with args`; waitstat_die $?, 'some-program'; print "Output from some-process:\n", $output; open PROGRAM, '| post-processor' or die "Can't fork: $!"; while (<IN>) { print PROGRAM pre_process $_ or die "Error writing to post-processor: $!"; } # This handles both flush failures at close time and a non-zero exit # from the subprocess. close_die PROGRAM, 'post-processor';

Name

Proc::WaitStat - Interpret and act on wait() status values

See Also

perl(1), IPC::Signal(3pm). perl v5.36.0 2022-11-27 WaitStat(3pm)

Synopsis

$description = waitstat $?; exit waitstat_reuse $?; waitstat_die $?, 'program-name'; close_die COMMAND, 'program-name';

See Also