<?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 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.pcntl-waitid.php',
    1 => 'pcntl_waitid',
    2 => 'Attends qu\'un processus enfant change d\'&eacute;tat',
  ),
  'up' => 
  array (
    0 => 'ref.pcntl.php',
    1 => 'Fonctions PCNTL',
  ),
  'prev' => 
  array (
    0 => 'function.pcntl-wait.php',
    1 => 'pcntl_wait',
  ),
  'next' => 
  array (
    0 => 'function.pcntl-waitpid.php',
    1 => 'pcntl_waitpid',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/pcntl/functions/pcntl-waitid.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.pcntl-waitid" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">pcntl_waitid</h1>
  <p class="verinfo">(PHP 8 &gt;= 8.4.0)</p><p class="refpurpose"><span class="refname">pcntl_waitid</span> &mdash; <span class="dc-title">Attends qu&#039;un processus enfant change d&#039;état</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.pcntl-waitid-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>pcntl_waitid</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">$idtype</code><span class="initializer"> = <strong><code><a href="pcntl.constants.php#constant.p-all">P_ALL</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></span> <code class="parameter">$id</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></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">&$info</code><span class="initializer"> = []</span></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"> = <strong><code><a href="pcntl.constants.php#constant.wexited">WEXITED</a></code></strong></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.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   Récupère les informations de statut relatives à la terminaison, l&#039;arrêt et/ou la
   poursuite d&#039;un des processus enfant du processus appelant.
  </p>

  <p class="para">
   Sauf si le drapeau <strong><code><a href="pcntl.constants.php#constant.wnohang">WNOHANG</a></code></strong> est passé, le processus appelant
   sera bloqué jusqu&#039;à ce qu&#039;une erreur survienne, ou que des informations de
   status deviennent disponibles qui satisfont toutes les conditions suivantes :
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Le status de l&#039;information provient d&#039;un des processus enfant dans l&#039;ensemble
      des processus enfants spécifiés par les arguments <code class="parameter">idtype</code>
      et <code class="parameter">id</code>.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Le changement d&#039;état dans l&#039;information de statut correspond à un des drapeaux
      de changement d&#039;état définis dans l&#039;argument <code class="parameter">flags</code>.
     </span>
    </li>
   </ul>
  </p>

  <p class="para">
   Si des informations de statut correspondantes sont disponibles avant l&#039;appel à
   <span class="function"><strong>pcntl_waitid()</strong></span>, le retour sera immédiat. Si des informations
   de statut correspondantes sont disponibles pour deux processus enfants ou plus,
   l&#039;ordre dans lequel leur statut est rapporté est indéterminé.
  </p>

  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <p class="para">
    Cette documentation couvre la spécification POSIX de la fonction
    <code class="literal">waitid</code>, avec quelques paramètres supplémentaires spécifiques
    aux implémentations sur Linux, NetBSD et FreeBSD. Consulter la page
    manuel du système <code class="literal">waitid(2)</code> pour des détails spécifiques
    sur le fonctionnement de <code class="literal">waitid</code> sur le système.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.pcntl-waitid-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">idtype</code></dt>
    <dt><code class="parameter">id</code></dt>
    <dd>
     <span class="simpara">
      Les arguments <code class="parameter">idtype</code> et <code class="parameter">id</code> sont
      utilisés pour spécifier quels enfants attendre.
     </span>
     <table class="doctable table">
      <caption><strong>Argument standard POSIX <code class="parameter">idtype</code> et <code class="parameter">id</code></strong></caption>
      
       <tbody class="tbody">
        <tr>
         <td>Si <code class="parameter">idtype</code> est <code class="literal">P_ALL</code></td>
         <td>
          attend n&#039;importe quel processus enfant, <code class="parameter">id</code> est ignoré.
         </td>
        </tr>

        <tr>
         <td>Si <code class="parameter">idtype</code> est <code class="literal">P_PID</code></td>
         <td>
          attend le processus enfant avec l&#039;identifiant de processus égal à <code class="parameter">id</code>.
         </td>
        </tr>

        <tr>
         <td>Si <code class="parameter">idtype</code> est <code class="literal">P_PGID</code></td>
         <td>
          attend n&#039;importe quel processus enfant avec l&#039;identifiant de groupe de processus égal à <code class="parameter">id</code>.
         </td>
        </tr>

       </tbody>
      
     </table>

     <table class="doctable table">
      <caption><strong>Arguments spécifiques à Linux <code class="parameter">idtype</code> et <code class="parameter">id</code></strong></caption>
      
       <tbody class="tbody">
        <tr>
         <td>Si <code class="parameter">idtype</code> est <code class="literal">P_PIDFD</code> (depuis Linux 5.4)</td>
         <td>
          attend le processus enfant référencé par le descripteur de fichier PID spécifié dans
          <code class="parameter">id</code>.
          (Voir la page manuel Linux <code class="literal">pidfd_open(2)</code> pour plus d&#039;informations
          sur les descripteurs de fichier PID.)
         </td>
        </tr>

       </tbody>
      
     </table>

     <table class="doctable table">
      <caption><strong>Arguments spécifiques à NetBSD et FreeBSD <code class="parameter">idtype</code> et <code class="parameter">id</code></strong></caption>
      
       <tbody class="tbody">
        <tr>
         <td>
          Si <code class="parameter">idtype</code> est <code class="literal">P_UID</code>
         </td>
         <td>
          attend les processus dont l&#039;identifiant d&#039;utilisateur effectif est égal à
          <code class="parameter">id</code>.
         </td>
        </tr>

        <tr>
         <td>
          Si <code class="parameter">idtype</code> est <code class="literal">P_GID</code>
         </td>
         <td>
          attend les processus dont l&#039;identifiant de groupe effectif est égal à
          <code class="parameter">id</code>.
         </td>
        </tr>

        <tr>
         <td>
          Si <code class="parameter">idtype</code> est <code class="literal">P_SID</code>
         </td>
         <td>
          attend les processus dont l&#039;identifiant de session est égal à
          <code class="parameter">id</code>.
          Si le processus enfant a démarré sa propre session, son identifiant de session
          sera le même que son identifiant de processus. Sinon, l&#039;identifiant de session
          d&#039;un processus enfant correspondra à l&#039;identifiant de session de l&#039;appelant.
         </td>
        </tr>

       </tbody>
      
     </table>

     <table class="doctable table">
      <caption><strong>Arguments spécifiques à FreeBSD <code class="parameter">idtype</code> et <code class="parameter">id</code></strong></caption>
      
       <tbody class="tbody">
        <tr>
         <td>
          Si <code class="parameter">idtype</code> est <code class="literal">P_JAILID</code>
         </td>
         <td>
          attend les processus dans une prison dont l&#039;identifiant de prison est égal à
          <code class="parameter">id</code>.
         </td>
        </tr>

       </tbody>
      
     </table>

    </dd>
   
   
    <dt><code class="parameter">info</code></dt>
    <dd>
     <p class="para">
      Le paramètre <code class="parameter">info</code> est défini comme un tableau
      contenant des informations sur le signal.
     </p>
     <p class="para">
      <code class="parameter">info</code> peut contenir les clés suivantes :
      <ul class="simplelist">
       <li><code class="literal">signo</code>: Nombre du signal</li>
       <li><code class="literal">errno</code>: Numéro d'erreur système</li>
       <li><code class="literal">code</code>: Code de signal</li>
       <li><code class="literal">status</code>: Valeur de sortie ou signal</li>
       <li><code class="literal">pid</code>: ID du processus envoyant</li>
       <li><code class="literal">uid</code>: ID utilisateur réel du processus envoyant</li>
       <li><code class="literal">utime</code>: Temps utilisateur consommé</li>
        <li><code class="literal">stime</code>: Temps système consommé</li>
      </ul>
     </p>
    </dd>
   
   
    <dt><code class="parameter">flags</code></dt>
    <dd>
     <p class="para">
      La valeur de <code class="parameter">flags</code> est la valeur de zéro ou plusieurs
      des constantes suivantes mise ensemble :
      <table class="doctable table">
       <caption><strong>Valeurs possibles pour <code class="parameter">flags</code></strong></caption>
       
        <tbody class="tbody">
         <tr>
          <td><strong><code><a href="pcntl.constants.php#constant.wcontinued">WCONTINUED</a></code></strong></td>
          <td>
           Le statut sera retourné pour tout processus enfant continué dont le statut
           n&#039;a pas été rapporté depuis qu&#039;il a continué à partir d&#039;un arrêt de contrôle
           de travail ou n&#039;a été rapporté que par des appels à
           <span class="function"><strong>pcntl_waitid()</strong></span> avec le drapeau
           <strong><code><a href="pcntl.constants.php#constant.wnowait">WNOWAIT</a></code></strong> défini.
          </td>
         </tr>

         <tr>
          <td><strong><code><a href="pcntl.constants.php#constant.wexited">WEXITED</a></code></strong></td>
          <td>
           Attend les processus qui ont terminé.
          </td>
         </tr>

         <tr>
          <td><strong><code><a href="pcntl.constants.php#constant.wnohang">WNOHANG</a></code></strong></td>
          <td>
           Ne pas bloquer si aucun statut n&#039;est disponible ; retourner immédiatement.
          </td>
         </tr>

         <tr>
          <td><strong><code><a href="pcntl.constants.php#constant.wnowait">WNOWAIT</a></code></strong></td>
          <td>
           Garde le processus dont le statut est retourné dans
           <code class="parameter">info</code> dans un état attendu. Cela n&#039;affectera pas
           l&#039;état du processus ; le processus peut être attendu à nouveau après
           que cet appel soit terminé.
          </td>
         </tr>

         <tr>
          <td><strong><code><a href="pcntl.constants.php#constant.wstopped">WSTOPPED</a></code></strong></td>
          <td>
           Le statut sera retourné pour tout processus enfant arrêté dont le statut
           n&#039;a pas été rapporté depuis qu&#039;il a été arrêté ou n&#039;a été
           rapporté que par des appels à
           <span class="function"><strong>pcntl_waitid()</strong></span> avec le drapeau
           <strong><code><a href="pcntl.constants.php#constant.wnowait">WNOWAIT</a></code></strong> défini.
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>
    </dd>
   
   
    <dt><code class="parameter">resource_usage</code></dt>
    <dd>
     <p class="para">
      Le paramètre <code class="parameter">resource_usage</code> est défini sur un tableau
      contenant les statistiques d’utilisation des ressources du processus enfant.

      Ceci est pris en charge soit si l’appel système wait6 est disponible
      (par exemple sur FreeBSD), soit sur Linux via l’appel système brut waitid.
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.pcntl-waitid-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="para">
   <span class="function"><strong>pcntl_waitid()</strong></span> retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> si le drapeau
   <strong><code><a href="pcntl.constants.php#constant.wnohang">WNOHANG</a></code></strong> a été spécifié et que le statut n&#039;est pas
   disponible pour un des processus spécifiés par <code class="parameter">idtype</code>
   et <code class="parameter">id</code>.
  </p>

  <p class="para">
   <span class="function"><strong>pcntl_waitid()</strong></span> renvoie <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en raison du changement
   de l&#039;état de l&#039;un de ses enfants.
  </p>

  <p class="para">
   Sinon <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> est retourné et <span class="function"><a href="function.pcntl-get-last-error.php" class="function">pcntl_get_last_error()</a></span>
   peut être utilisé pour obtenir le numéro d&#039;erreur <code class="literal">errno</code>.
  </p>

  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <p class="para">
    Une fois qu&#039;un numéro d&#039;erreur <code class="literal">errno</code> a été obtenu,
    <span class="function"><a href="function.pcntl-strerror.php" class="function">pcntl_strerror()</a></span> peut être utilisé pour obtenir le message
    texte associé.
   </p>
  </p></blockquote>
 </div>


  <div class="refsect1 errors" id="refsect1-function.pcntl-waitid-errors">
  <h3 class="title">Erreurs / Exceptions</h3>
  <table class="doctable table">
   <caption><strong>Valeurs d&#039;erreur numéro (<code class="literal">errno</code>)</strong></caption>
   
    <tbody class="tbody">
     <tr>
      <td><strong><code>ECHILD</code></strong></td>
      <td>
       Le processus appelant n&#039;a pas de processus non attendu enfant.
      </td>
     </tr>

     <tr>
      <td><strong><code>EINTR</code></strong></td>
      <td>
       <span class="function"><strong>pcntl_waitid()</strong></span> a été interrompu par un signal.
      </td>
     </tr>

     <tr>
      <td><strong><code>EINVAL</code></strong></td>
      <td>
       Une valeur invalide a été spécifiée pour <code class="parameter">flags</code>, ou
       <code class="parameter">idtype</code> et <code class="parameter">id</code> spécifient un
       ensemble invalide de processus.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 changelog" id="refsect1-function.pcntl-waitid-changelog">
  <h3 class="title">Historique</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Version</th>
      <th>Description</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.5.0</td>
      <td>
       <code class="parameter">resource_usage</code> a été ajouté.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 seealso" id="refsect1-function.pcntl-waitid-seealso">
  <h3 class="title">Voir aussi</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.pcntl-waitpid.php" class="function" rel="rdfs-seeAlso">pcntl_waitpid()</a> - Attend la fin de l'ex&eacute;cution d'un processus fils</span></li>
    <li><span class="function"><a href="function.pcntl-wait.php" class="function" rel="rdfs-seeAlso">pcntl_wait()</a> - Attend ou retourne le statut d'un processus fils</span></li>
    <li><span class="function"><a href="function.pcntl-fork.php" class="function" rel="rdfs-seeAlso">pcntl_fork()</a> - Duplique le processus courant</span></li>
    <li><span class="function"><a href="function.pcntl-signal.php" class="function" rel="rdfs-seeAlso">pcntl_signal()</a> - Installe un gestionnaire de signaux</span></li>
    <li><span class="function"><a href="function.pcntl-wifexited.php" class="function" rel="rdfs-seeAlso">pcntl_wifexited()</a> - V&eacute;rifie si le code de retour repr&eacute;sente une fin normale</span></li>
    <li><span class="function"><a href="function.pcntl-wifstopped.php" class="function" rel="rdfs-seeAlso">pcntl_wifstopped()</a> - Retourne true si le processus fils est stopp&eacute;</span></li>
    <li><span class="function"><a href="function.pcntl-wifsignaled.php" class="function" rel="rdfs-seeAlso">pcntl_wifsignaled()</a> - Retourne true si le code statut repr&eacute;sente une fin due &agrave; un signal</span></li>
    <li><span class="function"><a href="function.pcntl-wexitstatus.php" class="function" rel="rdfs-seeAlso">pcntl_wexitstatus()</a> - Retourne le code d'un processus fils termin&eacute;</span></li>
    <li><span class="function"><a href="function.pcntl-wtermsig.php" class="function" rel="rdfs-seeAlso">pcntl_wtermsig()</a> - Retourne le signal qui a provoqu&eacute; la fin du processus fils</span></li>
    <li><span class="function"><a href="function.pcntl-wstopsig.php" class="function" rel="rdfs-seeAlso">pcntl_wstopsig()</a> - Retourne le signal qui a caus&eacute; l'arr&ecirc;t du processus fils</span></li>
   </ul>
  </p>
 </div>


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