[Linux] Conocimientos básicos de la función fork

Directorio de artículos

  • prefacio
  • 1. Valor de retorno de la bifurcación
  • 2. Preguntas frecuentes
    • 1. ¿Por qué fork devuelve 0 al proceso hijo y el pid del proceso hijo al proceso padre?
    • 2. ¿Cómo se entiende una función que devuelve dos valores?
    • 3. ¿Cómo puede una variable tener contenidos diferentes?

    • 4. ¿Qué hace la función de horquilla?


prefacio

Primer contacto con el tenedor:

1.fork tiene dos valores de retorno.

2. Código compartido entre procesos padre e hijo, espacio de datos para cada uno, copia privada (copia realista). 


 Cuando ejecutamos la prueba, descubrimos que había un proceso adicional. Este proceso es un proceso hijo derivado de la bifurcación. Los procesos son independientes entre sí.

1. Valor de retorno de la bifurcación

fork()La función crea un nuevo proceso y el valor de retorno de la función es un número entero. En el proceso padre, fork()el valor de retorno de es el PID (ID de proceso) del proceso hijo, mientras que en el proceso hijo, fork()el valor de retorno de es 0.

Por lo tanto, fork()el valor de retorno de la función se puede utilizar para determinar si el código actual se está ejecutando en el proceso principal o en el proceso secundario. Si fork()se devuelve un valor distinto de cero, el código se ejecuta en el proceso hijo; si fork()se devuelve 0, el código se ejecuta en el proceso padre.

2. Preguntas frecuentes

1. ¿Por qué fork devuelve 0 al proceso hijo y el pid del proceso hijo al proceso padre?

Devolver diferentes valores de retorno es distinguir diferentes flujos de ejecución de la ejecución de diferentes bloques de código. El proceso padre recibe el pid del proceso hijo porque el proceso padre puede tener varios procesos hijos. Para distinguirlos, su pid único se utiliza como valor de retorno y el proceso hijo puede utilizar directamente la función getppid() para obtener el pid del proceso padre, por lo que el proceso hijo devuelve es 0.

2. ¿Cómo se entiende una función que devuelve dos valores?

3. ¿Cómo puede una variable tener contenidos diferentes?

4. ¿Qué hace la función de horquilla?

Se crea el proceso hijo, se crea la PCB para el proceso hijo, el proceso hijo se inicializa con los campos correspondientes al proceso padre y se comparte el código.


Supongo que te gusta

Origin blog.csdn.net/m0_74774759/article/details/132628496
Recomendado
Clasificación