<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.pcntl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.pcntl-waitpid.php',
    1 => 'pcntl_waitpid',
    2 => 'Espera la finalizaci&oacute;n de la ejecuci&oacute;n de un proceso hijo',
  ),
  'up' => 
  array (
    0 => 'ref.pcntl.php',
    1 => 'Funciones PCNTL',
  ),
  'prev' => 
  array (
    0 => 'function.pcntl-waitid.php',
    1 => 'pcntl_waitid',
  ),
  'next' => 
  array (
    0 => 'function.pcntl-wexitstatus.php',
    1 => 'pcntl_wexitstatus',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/pcntl/functions/pcntl-waitpid.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.pcntl-waitpid" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">pcntl_waitpid</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.1.0, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">pcntl_waitpid</span> &mdash; <span class="dc-title">Espera la finalización de la ejecución de un proceso hijo</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.pcntl-waitpid-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>pcntl_waitpid</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$process_id</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter reference">&$status</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$flags</code><span class="initializer"> = 0</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter reference">&$resource_usage</code><span class="initializer"> = []</span></span><br>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <p class="para rdfs-comment">
   Suspende la ejecución del proceso actual hasta que un proceso hijo
   especificado por el parámetro <code class="parameter">process_id</code> haya terminado,
   una señal haya terminado este proceso o una señal haya llamado a un gestor
   de señales.
  </p>
  <p class="para">
   Si el proceso hijo identificado por <code class="parameter">process_id</code> ya
   ha terminado en el momento de la llamada a esta función (se les llama
   procesos &quot;zombie&quot;), la función termina inmediatamente.
   Cualquier recurso del sistema utilizado por el proceso hijo es liberado.
   Consulte la página de man waitpid(2) para obtener detalles
   sobre el comportamiento de esta función en su sistema.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.pcntl-waitpid-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">process_id</code></dt>
     <dd>
      <p class="para">
       El valor de <code class="parameter">process_id</code> puede ser uno de los siguientes:
       <table class="doctable table">
        <caption><strong>Valores posibles para <code class="parameter">process_id</code></strong></caption>
        
         <tbody class="tbody">
          <tr>
           <td><code class="literal">&lt; -1</code></td>
           <td>
            espera un proceso hijo cuyo identificador de grupo
            es igual al valor absoluto de <code class="parameter">process_id</code>.
           </td>
          </tr>

          <tr>
           <td><code class="literal">-1</code></td>
           <td>
            espera cualquier proceso hijo; esto corresponde al
            mismo comportamiento que el de la función <span class="function"><a href="function.pcntl-wait.php" class="function">pcntl_wait()</a></span> presente.
           </td>
          </tr>

          <tr>
           <td><code class="literal">0</code></td>
           <td>
            espera un proceso hijo cuyo identificador de grupo
            es igual al del proceso actual.
           </td>
          </tr>

          <tr>
           <td><code class="literal">&gt; 0</code></td>
           <td>
            espera el proceso hijo cuyo identificador es
            igual al valor de <code class="parameter">process_id</code>.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
      <blockquote class="note"><p><strong class="note">Nota</strong>: 
       <p class="para">
        Especificando <code class="literal">-1</code> como <code class="parameter">process_id</code>, esto equivale
        a la funcionalidad que proporciona <span class="function"><a href="function.pcntl-wait.php" class="function">pcntl_wait()</a></span> (menos
        <code class="parameter">flags</code>).
       </p>
      </p></blockquote>
     </dd>
    
    
     <dt><code class="parameter">status</code></dt>
     <dd>
      <p class="para">
       <span class="function"><strong>pcntl_waitpid()</strong></span> registrará información sobre
       el estado actual del proceso en el parámetro
       <code class="parameter">status</code>, al cual se puede acceder gracias a las
       siguientes funciones:
       <span class="function"><a href="function.pcntl-wifexited.php" class="function">pcntl_wifexited()</a></span>,
       <span class="function"><a href="function.pcntl-wifstopped.php" class="function">pcntl_wifstopped()</a></span>,
       <span class="function"><a href="function.pcntl-wifsignaled.php" class="function">pcntl_wifsignaled()</a></span>,
       <span class="function"><a href="function.pcntl-wexitstatus.php" class="function">pcntl_wexitstatus()</a></span>,
       <span class="function"><a href="function.pcntl-wtermsig.php" class="function">pcntl_wtermsig()</a></span> y
       <span class="function"><a href="function.pcntl-wstopsig.php" class="function">pcntl_wstopsig()</a></span>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">flags</code></dt>
     <dd>
      <p class="para">
       El parámetro <code class="parameter">flags</code> puede tomar el valor
       cero, o varias de las siguientes constantes globales
       (combinadas con el operador <code class="literal">OR</code>):
       <table class="doctable table">
        <caption><strong>Valores posibles de <code class="parameter">flags</code></strong></caption>
        
         <tbody class="tbody">
          <tr>
           <td><strong><code><a href="pcntl.constants.php#constant.wnohang">WNOHANG</a></code></strong></td>
           <td>
            retorna inmediatamente si ningún proceso hijo ha terminado.
           </td>
          </tr>

          <tr>
           <td><strong><code><a href="pcntl.constants.php#constant.wuntraced">WUNTRACED</a></code></strong></td>
           <td>
            retorna cuando los procesos hijos están detenidos y su
            estado no ha sido actualizado.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.pcntl-waitpid-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   <span class="function"><strong>pcntl_waitpid()</strong></span> retorna el identificador de
   proceso del proceso hijo que ha terminado, o bien -1 en caso
   de error o cero si <strong><code><a href="pcntl.constants.php#constant.wnohang">WNOHANG</a></code></strong> ha sido utilizado
   y ningún proceso hijo estaba disponible.
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.pcntl-waitpid-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.pcntl-fork.php" class="function" rel="rdfs-seeAlso">pcntl_fork()</a> - Duplica el proceso actual</span></li>
    <li><span class="function"><a href="function.pcntl-signal.php" class="function" rel="rdfs-seeAlso">pcntl_signal()</a> - Instala un gestor de se&ntilde;ales</span></li>
    <li><span class="function"><a href="function.pcntl-wifexited.php" class="function" rel="rdfs-seeAlso">pcntl_wifexited()</a> - Verifica si el c&oacute;digo de retorno representa una finalizaci&oacute;n normal</span></li>
    <li><span class="function"><a href="function.pcntl-wifstopped.php" class="function" rel="rdfs-seeAlso">pcntl_wifstopped()</a> - Devuelve true si el proceso hijo est&aacute; detenido</span></li>
    <li><span class="function"><a href="function.pcntl-wifsignaled.php" class="function" rel="rdfs-seeAlso">pcntl_wifsignaled()</a> - Verifica si el c&oacute;digo de estado representa una terminaci&oacute;n debido a una se&ntilde;al</span></li>
    <li><span class="function"><a href="function.pcntl-wexitstatus.php" class="function" rel="rdfs-seeAlso">pcntl_wexitstatus()</a> - Devuelve el c&oacute;digo de un proceso hijo terminado</span></li>
    <li><span class="function"><a href="function.pcntl-wtermsig.php" class="function" rel="rdfs-seeAlso">pcntl_wtermsig()</a> - Devuelve la se&ntilde;al que caus&oacute; el t&eacute;rmino del proceso hijo</span></li>
    <li><span class="function"><a href="function.pcntl-wstopsig.php" class="function" rel="rdfs-seeAlso">pcntl_wstopsig()</a> - Devuelve la se&ntilde;al que caus&oacute; la detenci&oacute;n del proceso hijo</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>