Fig. 1: flujo de trabajo básico de horquilla ()
En este artículo, le mostraré cómo usar la llamada del sistema Fork () para crear procesos infantiles en C. Entonces empecemos.
sintaxis de la bifurcación y valor de retorno:
La sintaxis de la función del sistema Fork () es la siguiente:
PID_T FORK (Void);La función del sistema Fork () no acepta ningún argumento. Devuelve un entero del tipo pid_t.
Sobre el éxito, Fork () devuelve el PID del proceso infantil que es mayor que 0. Dentro del proceso del niño, el valor de retorno es 0. Si FORK () falla, entonces devuelve -1.
Ejemplo de horcajción simple ():
A continuación se da un ejemplo simple de horquilla ():
#incluirAquí, utilicé Fork () para crear un proceso infantil desde el proceso principal/principal. Luego, imprimí el PID (ID de proceso) y el PPID (ID de proceso principal) del proceso infantil y principal. En el proceso principal, la espera (nulo) se utiliza para esperar a que el proceso infantil termine. En el proceso infantil, Exit () se usa para terminar el proceso infantil. Como puede ver, el PID del proceso principal es el PPID del proceso infantil. Entonces, el proceso del niño 24738 pertenece al proceso principal 24731.
También puede usar funciones para hacer que su programa sea más modular. Aquí, usé ProcessTask () y ParentTask () Funciones para los procesos de niños y padres respectivamente. Así es como se usa realmente fork ().
#incluirLa salida del programa anterior:
Ejecutar múltiples procesos infantiles usando Fork () y Loop:
También puede usar el bucle para crear tantos procesos infantiles como sea necesario. En el ejemplo a continuación, he creado 5 procesos infantiles usando para bucle. También imprimí el PID y el PPID de los procesos infantiles.
#incluirComo puede ver, la identificación del proceso principal es la misma en todos los procesos infantiles. Entonces, todos pertenecen al mismo padre. También se ejecutan de manera lineal. Uno después del otro. Controlar los procesos infantiles es una tarea sofisticada. Si aprende más sobre la programación del sistema Linux y cómo funciona, podrá controlar el flujo de estos procesos de todos modos que desee.
Ejemplo de la vida real:
Diferentes cálculos matemáticos complejos como MD5, Sha256, etc., la generación de hash requiere mucha potencia de procesamiento. En lugar de calcular cosas como esa en el mismo proceso que el programa principal, puede calcular el hash en un proceso infantil y devolver el hash al proceso principal.
En el siguiente ejemplo, generé un código PIN de 4 dígitos en un proceso infantil y lo envié al proceso principal, el programa principal. Luego, imprimí el código PIN desde allí.
#incluirComo puede ver, cada vez que ejecuto el programa, obtengo un código PIN de 4 dígitos diferente.
Entonces, así es básicamente cómo usa la llamada del sistema Fork () en Linux. Gracias por leer este artículo.