[Overview][Constants][Types][Procedures and functions][Index] | Reference for unit 'BaseUnix' (#rtl)

# FpWaitPid

Wait for a process to terminate

## Declaration

Source position: bunxh.inc line 66

`function FpWaitpid(`
`pid: TPid;`
`stat_loc: pcint;`
`options: cint`
`):TPid; function FpWaitPid(`
`pid: TPid;`
`var Status: cint;`
`Options: cint`
`):TPid;`

## Description

fpWaitPid waits for a child process with process ID Pid to exit. The value of Pid can be one of the following:

Pid < -1
  Causes fpWaitPid to wait for any child process whose process group ID equals the absolute value of pid.
Pid = -1
  Causes fpWaitPid to wait for any child process.
Pid = 0
  Causes fpWaitPid to wait for any child process whose process group ID equals the one of the calling process.
Pid > 0
  Causes fpWaitPid to wait for the child whose process ID equals the value of Pid.

The Options parameter can be used to specify further how fpWaitPid behaves:

WNOHANG
  Causes fpWaitpid to return immediately if no child hasexited.
WUNTRACED
  Causes fpWaitPid to return also for children which are stopped, but whose status has not yet been reported.
__WCLONE
  Causes fpWaitPid also to wait for threads created by the #rtl.linux.Clone call.

The exit status of the process that caused fpWaitPID is reported in stat_loc or Status.

Upon return, it returns the process id of the process that exited, 0 if no process exited, or -1 in case of failure.

For an example, see fpFork.

## Errors

Extended error information can be retrieved using fpgetErrno.

## See also

fpFork |  | Create child process
fpExecve |  | Execute process using environment
fpWait |  | Wait for a child to exit.