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

FreeBSD Manual Pages

  
 
  

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

NAME
       waitpid - wait for child	process	to change state

SYNOPSIS
       #include	<sys/types.h>
       #include	<sys/wait.h>

       pid_t waitpid(pid_t pid,	int *stat_loc, int options);

DESCRIPTION
       The waitpid() function will suspend execution of	the calling thread un-
       til status information for one of its  terminated  child	 processes  is
       available, or until delivery of a signal	whose action is	either to exe-
       cute a signal-catching function or to terminate the  process.  If  more
       than  one thread	is suspended in	waitpid() or wait(2) awaiting termina-
       tion of the same	process, exactly one thread will  return  the  process
       status  at the time of the target process termination. If status	infor-
       mation is available prior to the	call to	waitpid(), return will be  im-
       mediate.

       The pid argument	specifies a set	of child processes for which status is
       requested, as follows:

	  o  If	 pid is	equal to (pid_t)-1, status is requested	for any	 child
	     process.

       If   pid	 is  greater than (pid_t)0, it specifies the process ID	of the
       child process for which status is requested.

	  o  If	 pid is	equal to (pid_t)0 status is requested  for  any	 child
	     process  whose  process group  ID is equal	to that	of the calling
	     process.

	  o  If	pid is less than (pid_t)-1, status is requested	for any	 child
	     process whose process group  ID is	equal to the absolute value of
	     pid.

       If the calling process has SA_NOCLDWAIT	set  or	 has  SIGCHLD  set  to
       SIG_IGN	and the	process	has no unwaited	children that were transformed
       into zombie processes, it will block until all of its  children	termi-
       nate, and waitpid() will	fail and set errno to ECHILD.

       If  waitpid()  returns  because the status of a child process is	avail-
       able, then that	status may be evaluated	with  the  macros  defined  by
       wstat(3XFN)  If	the  calling process had specified a non-zero value of
       stat_loc, the status of the child process will be stored	in  the	 loca-
       tion pointed to by stat_loc.

       The  options  argument  is constructed from the bitwise inclusive OR of
       zero  or	 more  of  the	following  flags,  defined   in	  the	header
       <sys/wait.h>:

       WCONTINUED
	     The status	of any continued child process specified by pid, whose
	     status has	not been reported since	it continued, is also reported
	     to	the calling process.

       WNOHANG
	     waitpid()	will  not  suspend execution of	the calling process if
	     status is not immediately available for one  of  the  child  pro-
	     cesses specified by  pid.

       WNOWAIT
	     Keep  the process whose status is returned	in stat_loc in a wait-
	     able state. The process may be waited for	again  with  identical
	     results.

       WUNTRACED
	     The  status  of  any  child  processes  specified by pid that are
	     stopped, and whose	status has not yet been	 reported  since  they
	     stopped, is also reported to the calling process.

RETURN VALUES
       If  waitpid()  returns  because the status of a child process is	avail-
       able,  it returns a value equal to the process ID of the	child  process
       for which status	is reported.  If waitpid() returns due to the delivery
       of a signal to the calling process, -1 is returned and errno is set  to
       EINTR.  If waitpid() was	invoked	with WNOHANG set in options, it	has at
       least one child process specified by pid	for which status is not	avail-
       able,  and  status  is  not available for any process specified by pid,
       then 0 is returned.  Otherwise, -1 is returned and errno	is set to  in-
       dicate the error.

ERRORS
       The waitpid() function will fail	if:

       ECHILD
	     The  process  or process group specified by pid does not exist or
	     is	not a child of the calling process or  can  never  be  in  the
	     states specified by options.

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

       EINVAL
	     An	invalid	value was specified for	options.

USAGE
       With options equal to 0 and  pid	equal to (pid_t)-1, waitpid() is iden-
       tical to	 wait(2).

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Async-Signal-Safe		   |
       +-----------------------------+-----------------------------+

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

SunOS 5.9			  24 Feb 1998			    waitpid(2)

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

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

home | help