Buscar..


tenedor () llamada al sistema

fork() es una llamada al sistema. fork se utiliza para crear un proceso hijo a partir del proceso en ejecución, que es una réplica del proceso padre (el proceso que ejecutó fork() ). El proceso hijo se deriva del proceso padre. Tanto el padre como el hijo tienen un espacio de dirección diferente, cada uno es independiente de los cambios realizados en las variables.

El proceso hijo tiene su propio PID (identificación de proceso). El PPID (ID del proceso principal) del proceso secundario es el mismo que el PID del proceso principal.

Formato:

Archivo de encabezado: #include <unistd.h>
Declaración de la función: pid_t fork(void);

fork () no necesita ningún argumento de entrada.

Al crear con éxito el proceso hijo, el pid del proceso hijo se devuelve al proceso padre y se devuelve 0 al proceso hijo. En caso de error devuelve -1 sin proceso creado.

Ejemplo de uso:

#include <stdio.h>
#include <unistd.h>

void child_process();
void parent_process();

int main()
{
    pid_t pid;
    pid=fork();
    if(pid==0)
        child_process();
    else
        parent_process();
    return 0;
}

/*getpid() will return the Pid of the 
  current process executing the function */

void child_process()
{
    printf("Child process with PID : %d  and PPID : %d ", getpid(),getppid());    
}

void parent_process()
{ 
    printf("Parent process with PID : %d", getpid());    
}

La secuencia de las declaraciones de printf del hijo y del padre depende del mecanismo de programación que depende únicamente del sistema.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow