Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
waitid(2)			 System	Calls			     waitid(2)

NAME
       waitid -	wait for child process to change state

SYNOPSIS
       #include	<wait.h>

       int waitid(idtype_t idtype, id_t	id, siginfo_t *infop, int options);

DESCRIPTION
       The  waitid()  function	suspends  the calling process until one	of its
       child processes changes state. It records the current state of a	 child
       in  the	 structure  pointed  to	 by infop. It returns immediately if a
       child process changed state prior to the	call.

       The idtype and  id arguments specify which  children   waitid()	is  to
       wait for, as follows:

	  o  If	  idtype is P_PID, waitid() waits for the child	with a process
	     ID	equal to (pid_t)id.

	  o  If	idtype is P_PGID,  waitid() waits for any child	with a process
	     group ID equal to (pid_t)id.

	  o  If	 idtype	 is  P_ALL, waitid() waits for any child and id	is ig-
	     nored.

       The options argument is used to specify which state changes waitid() is
       to wait for. It is formed by bitwise OR operation of any	of the follow-
       ing flags:

       WCONTINUED
	     Return the	status for any child that was  stopped	and  has  been
	     continued.

       WEXITED
	     Wait for process(es) to exit.

       WNOHANG
	     Return immediately.

       WNOWAIT
	     Keep the process in a waitable state.

       WSTOPPED
	     Wait  for	and  return  the  process status of any	child that has
	     stopped upon receipt of a signal.

       WTRAPPED
	     Wait for traced process(es) to become trapped or reach  a	break-
	     point (see	ptrace(2)).

       The  infop  argument must point to a siginfo_t structure, as defined in
       siginfo(3HEAD). If waitid() returns because a child process  was	 found
       that satisfies the conditions indicated by the arguments	idtype and op-
       tions, then the structure pointed to by infop will  be  filled  by  the
       system with the status of the process.
	The si_signo member will always	be equal to SIGCHLD.

RETURN VALUES
       If   waitid()  returns  due to a	change of state	of one of its children
       and  WNOHANG was	not used,  0 is	returned.  Otherwise, -1  is  returned
       and   errno  is set to indicate the error. If  WNOHANG was used,	 0 can
       be returned (indicating	no  error);  however,  no  children  may  have
       changed state if	 info->si_pid is 0.

ERRORS
       The waitid() function will fail if:

       ECHILD
	     The  set of processes specified by	idtype and id does not contain
	     any unwaited processes.

       EFAULT
	     The infop argument	points to an illegal address.

       EINTR The waitid() function was interrupted due to  the	receipt	 of  a
	     signal by the calling process.

       EINVAL
	     An	 invalid  value	 was  specified	 for options, or idtype	and id
	     specify an	invalid	set of processes.

USAGE
       With idtype equal to P_ALL and options equal  to	 WEXITED  |  WTRAPPED,
       waitid()	is equivalent to wait(2).

SEE ALSO
       intro(2), exec(2), exit(2), fork(2), pause(2), ptrace(2), sigaction(2),
       wait(2),	signal(3C), siginfo(3HEAD)

SunOS 5.9			  27 Jun 1996			     waitid(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | USAGE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=waitid&sektion=2&manpath=SunOS+5.9>

home | help