pxfwait(3F)

PXFWAIT, PXFWAITPID - Obtains information about a calling process' child process

As shipped in IRIX 6.5.22. Last changed in IRIX 6.5.19.

NAME
     PXFWAIT, PXFWAITPID - Obtains information about a calling process'
     child process

SYNOPSIS
     SUBROUTINE PXFWAIT (istat, iretpid, ierror)
     INTEGER istat, iretpid, ierror

     SUBROUTINE PXFWAITPID (ipid, istat, ioptions, iretpid, ierror)
     INTEGER ipid, istat, ioptions, iretpid, ierror

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

     The PXFWAIT routine uses the wait(2) system call to obtain information
     about one of the calling process's child processes.

     The PXFWAITPID routine uses the waitpid(2) system call to obtain
     information about one of the calling process's child processes.

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

     The following is a list of arguments for this routine:

     ipid      An input integer variable containing the child process ID
               for which information is requested.

               * If ipid is equal to -1, status is requested for any child
                 process; PXFWAITPID is then equivalent to PXFWAIT.

               * If ipid is greater than 0, it specifies the process ID of
                 a single child process for which status is requested.

               * If ipid is equal to 0, status is requested for any child
                 process with a process group ID that is equal to that of
                 the calling process.

               * If ipid is less than -1, status is requested for any child
                 process with a process group ID that is equal to the
                 absolute value of ipid.

     istat     An output integer variable for the status information.

     ioptions  An input integer variable constructed from an inclusive OR
               of zero or more of the following options:

               WNOHANG     The waitpid system call does not suspend
                           execution of the calling process if status is
                           not immediately available for one of the calling
                           processes specified by pid.

               WUNTRACED   If job control is supported, the status of any
                           child processes specified by pid that are
                           stopped, and with a status that has not yet been
                           reported since they stopped, are also reported
                           to the requesting process.

     iretpid   An output integer variable for the child process ID.

     ierror    An output integer variable that contains zero if the routine
               was successful or nonzero if the routine was not successful.

     Any of the following error values may be returned:

     ECHILD    PXFWAIT: If the calling process has no existing unwaited-for
               child processes.
               PXFWAITPID:  The process or process group specified by ipid
               does not exist or is not a child of the calling process.

     EINTR     If receipt of a signal other than the death-of-a-child-
               process signal.

     EINVAL    The value of the ioptions argument is not valid.

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

EXAMPLES
   PXFWAIT example:
          program pxftest
          integer istat, iretpid, ipid, ierror, i, j

          CALL PXFFORK(ipid,ierror)
          if (ierror .ne. 0) then
              print *,'FAILED: PXFFORK call failed with error = ',ierror
          else
              if (ipid .eq. 0) then
                 j = 0
                 do i=1,100000
                    j = j + i
                 enddo
                 stop
              else
                 CALL PXFWAIT(istat,iretpid,ierror)
                 if (ierror .eq. 0) then
                     print *,'PASSED: PXFWAIT normal test'
                 else
                     print *,'FAILED: PXFWAIT call with error = ',ierror
                 endif
              endif
          endif
          end

   PXFWAITPID example:
          program pxftest
          integer istat, iretpid, ipid, ierror, i, j, ioptions

          CALL PXFFORK(ipid,ierror)
          if (ierror .ne. 0) then
             print *,'FAILED: PXFFORK call failed with error = ',ierror
          else
             if (ipid .eq. 0) then
                j = 0
                do i=1,100000
                   j = j + i
                enddo
                stop
             else
                ioptions = 0
                CALL PXFWAITPID(ipid,istat,ioptions,iretpid,ierror)
                if (ierror .eq. 0) then
                   print *,'PASSED: PXFWAITPID normal test'
                else
                   print *,'FAILED: PXFWAITPID call with error = ',ierror
                endif
             endif
          endif
          end

SEE ALSO
     wait(2), waitpid(2)