ipxfwstopsig(3F)

IPXFWSTOPSIG - Returns part of the lower bits of signal number that terminates child process

Showing IRIX 6.5.30 (default release). Last changed in IRIX 6.5.19.

NAME
     IPXFWSTOPSIG - Returns part of the lower bits of signal number that
     terminates child process

SYNOPSIS
     INTEGER FUNCTION IPXFWSTOPSIG(istat)
     INTEGER istat

DESCRIPTION
     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.

     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 F77
     compiler.

     All arguments must be of default kind unless documented otherwise. On
     IRIX systems, the default kind is KIND=4.

NOTES
     The PXF_DEFINITIONS module can be used by Fortran 90 users to enable
     caller-callee interface checking.

EXAMPLES
          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

SEE ALSO
     PXFWAIT(3F), PXFWIFSTOPPED(3F)