PHP 8.4.0 RC3 available for testing

pcntl_rfork

(PHP 8 >= 8.1.0)

pcntl_rforkManipule les ressources du processus

Description

pcntl_rfork(int $flags, int $signal = 0): int

Manipule les ressources du processus.

Liste de paramètres

flags

Le paramètre flags détermine quelles ressources du processus appelant (parent) sont partagées par le nouveau processus (enfant) ou initialisées à leurs valeurs par défaut.

flags est le OU logique d'un sous-ensemble des valeurs suivantes :

  • RFPROC: Si défini un nouveau processus est créé ; sinon les changements affectent le processus actuel.
  • RFNOWAIT: Si défini, le processus enfant sera dissocié du parent. A la sortie, le processus enfant ne laissera pas de statut à collecter pour le parent.
  • RFFDG: Si défini, la table des descripteurs de fichiers de l'appelant est copiée ; sinon les deux processus partagent une seule table.
  • RFCFDG: Si défini, le nouveau processus démarre avec une table des descripteurs de fichiers propre. Est mutuellement exclusif avec RFFDG.
  • RFLINUXTHPN: Si défini, le noyau renverra SIGUSR1 au lieu de SIGCHILD à la sortie du thread pour l'enfant. Ceci est destiné à faire la notification de sortie du parent de sortie du thread Linux clone.

signal

Le numéro du signal.

Valeurs de retour

En cas de succès, le PID du processus enfant est retourné dans le contexte du parent, et un 0 est retourné dans le contexte du processus enfant. En cas d'échec, un -1 sera retourné dans le contexte du parent, aucun processus enfant ne sera créé, et une erreur PHP sera déclenchée.

Exemples

Exemple #1 Exemple de pcntl_rfork()

<?php

$pid
= pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if (
$pid > 0) {
// Ceci est le processus parent.
var_dump($pid);
} else {
// Ceci est le processus enfant.
var_dump($pid);
sleep(2); // tant que l'enfant ne dort pas, nous voyons son "pid"
}
?>

Résultat de l'exemple ci-dessus est similaire à :

int(77093)
int(0)

Notes

Note:

Cette fonction n'est disponible que sur les systèmes BSD.

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top