IPXFWSTOPSIG(3F) Last changed: 1-6-98
IPXFWSTOPSIG - Returns part of the lower bits of signal number that
terminates child process
INTEGER FUNCTION IPXFWSTOPSIG(istat)
INTEGER istat
UNICOS, UNICOS/mk, and IRIX systems
The IPXFWSTOPSIG integer function returns part of the lower bits of
the signal number that caused the child process to stop. The
PXFWIFSTOPPED logical function returns TRUE to indicate that the child
process has stopped. IPXFWSTOPSIG should only be used if
PXFWIFSTOPPED 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, i, j
integer iwstopsig, IPXFWSTOPSIG
logical lwifstopped, PXFWIFSTOPPED
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
j = 0
do i=1,100000
j = j + i
enddo
call PXFGETPID(ichldid,ierror)
if (ierror .ne. 0) then
print *, 'PXFGETPID FAILED, ierror=', ierror
print *, 'ichldid=', ichldid
else
print *, 'PXFGETPID PASSED'
endif
call PXFCONST("SIGSTOP",isig,ierror)
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
stop "CHILD"
else
call PXFCONST("WUNTRACED",iopts,ierror)
if (ierror .ne. 0) then
print *, 'PXFCONST FAILED, ierror=', ierror
print *, 'iopts=', iopts
else
print *, 'PXFCONST PASSED'
endif
CALL PXFWAITPID(ipid,istat,iopts,iretpid,ierror)
if (ierror .eq. 0) then
print *,'PASSED: PXFWAIT test'
lwifstopped = PXFWIFSTOPPED(istat)
if (lwifstopped .eqv. .TRUE.) then
iwstopsig = IPXFWSTOPSIG(istat)
if (iwstopsig .ne. 0) then
print *,'PXFWIFSTOPPED test PASSED'
print *,'IPXFWSTOPSIG test PASSED'
call PXFCONST("SIGCONT",isig,ierror)
if (ierror .ne. 0) then
print *,'PXFCONST FAILED,ierror=',ierror
print *,'isig=', isig
else
print *, 'PXFCONST PASSED'
endif
! continue the child process
call PXFKILL(ipid,isig,ierror)
else
print *,'PXFWIFSTOPPED test PASSED'
print *,'IPXFWSTOPSIG test FAILED'
print *,'PXFWIFSTOPPED returned TRUE'
print *,'IPXFWSTOPSIG(istat) = ',iwstopsig
print *,'istat = ', ipid
print *,'PXFWAIT istat = ', istat
print *,'iretpid= ', iretpid
endif
else
print *,'PXFWIFSTOPPED returned FALSE'
print *,'istat = ', ipid
print *,'PXFWAIT istat = ', istat
print *,'iretpid= ', iretpid
print *,'IPXFWSTOPSIG cannot be called.'
endif
else
print *,'FAILED: PXFWAIT call with error = ',ierror
print *,'istat = ', ipid
print *,'istat = ', istat
print *,'iretpid = ', iretpid
endif
endif
endif
print *,'test complete'
end
PXFWAIT(3F), PXFWIFSTOPPED(3F)
Application Programmer's Library Reference Manual, publication SR2165,
for the printed version of this man page.
[ Back ]
|