pcntl_rfork
En esta página
pcntl_rfork
Manipula los recursos del proceso
Descripción#
pcntl_rfork(int $flags, [int $signal]): int
```php
Manipula los recursos del proceso.
## Parámetros
`flags`
El parámetro `flags` determina qué recursos del proceso llamante (padre) son compartidos por el nuevo proceso (hijo) o inicializados a sus valores por omisión.
`flags` es el OU lógico de un subconjunto de los siguientes valores: `RFPROC`: Si está definido, se crea un nuevo proceso; de lo contrario, los cambios afectan al proceso actual., `RFNOWAIT`: Si está definido, el proceso hijo será disociado del padre. Al salir, el proceso hijo no dejará un estado a recolectar para el padre., `RFFDG`: Si está definido, la tabla de descriptores de ficheros del llamante es copiada; de lo contrario, ambos procesos comparten una sola tabla., `RFCFDG`: Si está definido, el nuevo proceso comienza con una tabla de descriptores de ficheros propia. Es mutuamente excluyente con `RFFDG`., `RFLINUXTHPN`: Si está definido, el núcleo devolverá SIGUSR1 en lugar de SIGCHILD al salir del hilo para el hijo. Esto está destinado a hacer la notificación de salida del padre de salida del hilo Linux clone., `RFTSIGZMB`: Si está definido, el núcleo enviará la señal especificada por el parámetro `signal` al padre al salir el hijo, en lugar del SIGCHLD por omisión. Especificar el número de señal 0 desactiva la entrega de señal al salir el hijo., `RFTHREAD`: Si está definido, el nuevo proceso comparte el descriptor de fichero a la tabla de líderes de proceso con su padre. Solo se aplica cuando ni `RFFDG` ni `RFCFDG` están definidos.
`signal`
El número de señal a enviar al padre cuando el hijo sale. Solo se usa cuando el indicador `RFTSIGZMB` está definido. Especificar `0` desactiva la entrega de señal al salir el hijo.
## Valores devueltos
En caso de éxito, el PID del proceso hijo es devuelto en el contexto del padre, y un `0` es devuelto en el contexto del proceso hijo. En caso de fallo, un `-1` será devuelto en el contexto del padre, ningún proceso hijo será creado, y se lanzará un error PHP.
## Ejemplos
Ejemplo de `pcntl_rfork`
```php
Resultado del ejemplo anterior es similar a:
int(77093)
int(0)
Notas#
[!NOTE] Esta función solo está disponible en sistemas BSD.
Véase también#
pcntl_fork, pcntl_waitpid, pcntl_signal, cli_set_process_title