IPXFWTERMSIG(3F) Last changed: 1-6-98
IPXFWTERMSIG - Returns lower bit of signal that terminates a child
process
INTEGER FUNCTION IPXFWTERMSIG(istat)
INTEGER istat
UNICOS, UNICOS/mk, and IRIX systems
The IPXFWTERMSIG integer function returns the lower bits of the signal
number that caused the child process to terminate. The PXFWIFSIGNALED
logical function returns TRUE when the child process has terminated
because of a signal. IPXFWTERMSIG should be used only when
PXFWIFSIGNALED returns TRUE.
The following argument is used for this routine:
istat An input integer variable with the PXFWAIT or PXFWAITPID
output status argument.
On IRIX systems, this routine is in libfortran.so which is linked by
default when compiling programs with the MIPSpro 7 Fortran 90 compiler
or when compiling programs with the -craylibs option to the MIPSpro
7.2 F77 compiler.
When using the CF90 compiler or MIPSpro 7 Fortran 90 compiler on
UNICOS, UNICOS/mk, or IRIX systems, all arguments must be of default
kind unless documented otherwise. On UNICOS and UNICOS/mk, default
kind is KIND=8 for integer, real, complex, and logical arguments; on
IRIX systems, the default kind is KIND=4.
program pxftest
integer istat, iretpid, ipid, ierror, ichldid
integer iwtermsig, IPXFWTERMSIG
logical lwifsignaled, PXFWIFSIGNALED
CALL PXFFORK(ipid,ierror)
if (ierror .ne. 0) then
print *,'FAILED: PXFFORK call failed with error = ',ierror
else
print *,'PASSED: PXFFORK call'
if (ipid .eq. 0) then
call PXFGETPID(ichldid,ierror)
if(ierror .ne. 0) then
print *, 'PXFGETPID FAILED, ierror=', ierror
print *,'ichldid=',ichldid
else
print *, 'PXFGETPID PASSED'
endif
call PXFCONST("SIGKILL",isig,ierror)
if(ierror .ne. 0) then
print *, 'PXFCONST FAILED, ierror=', ierror
print *,'isig=',isig
else
print *, 'PXFCONST PASSED'
endif
call PXFKILL(ichldid,isig,ierror)
if(ierror .ne. 0) then
print *, 'PXFKILL FAILED, ierror=', ierror
print *,'ichldid=',ichldid
print *,'isig=',isig
else
print *, 'PXFKILL PASSED'
endif
else
CALL PXFWAIT(istat,iretpid,ierror)
if (ierror .eq. 0) then
print *,'PASSED: PXFWAIT test'
lwifsignaled = PXFWIFSIGNALED(istat)
if (lwifsignaled .eqv. .TRUE.) then ! exit normally
iwtermsig = IPXFWTERMSIG(istat)
if (iwtermsig .ne. 0) then ! exit(0) returned
print *,'PXFWIFSIGNALED test PASSED'
print *,'IPXFWTERMSIG test PASSED'
else
print *,'PXFWIFSIGNALED test PASSED'
print *,'IPXFWTERMSIG test FAILED'
print *,'PXFWIFSIGNALED returned FALSE'
print *,'IPXFWTERMSIG(istat) = ',iwtermsig
print *,'istat = ',istat
endif
else
print *,'PXFWIFSIGNALED test FAILED'
print *,'PXFWIFSIGNALED returned FALSE'
print *,'PXFWAIT istat = ', istat
print *,'IPXFWEXITSTATUS cannot be called.'
endif
else
print *,'FAILED: PXFWAIT call ierror = ',ierror
print *,'istat = ', istat
print *,'iretpid = ', iretpid
endif
endif
endif
print *,'test complete'
end
PXFWAIT(3F), PXFWIFSIGNALED(3F)
Application Programmer's Library Reference Manual, publication SR2165,
for the printed version of this man page.
[ Back ]
|