fork() es una función de llamada al sistema que puede generar un proceso secundario a partir del proceso principal principal. Usando algunas condiciones, podemos generar tantos procesos secundarios como sea necesario.
Hemos dado n, tenemos que crear n procesos secundarios a partir del mismo proceso principal (proceso principal).
Ejemplos:
Input :3 Output :[son] pid 25332 from [parent] pid 25329 [son] pid 25331 from [parent] pid 25329 [son] pid 25330 from [parent] pid 25329 here 25332, 25331,25330 are child processes from same parent process with process id 25329 Input :5 Output :[son] pid 28519 from [parent] pid 28518 [son] pid 28523 from [parent] pid 28518 [son] pid 28520 from [parent] pid 28518 [son] pid 28521 from [parent] pid 28518 [son] pid 28522 from [parent] pid 28518 here 28519, 28519,28520,28521,28522 are child processes from same parent process with process id 28518
#include<stdio.h> int main() { for(int i=0;i<5;i++) // loop will run n times (n=5) { if(fork() == 0) { printf("[son] pid %d from [parent] pid %d\n",getpid(),getppid()); exit(0); } } for(int i=0;i<5;i++) // loop will run n times (n=5) wait(NULL); }
Producción:
[son] pid 28519 from [parent] pid 28518 [son] pid 28523 from [parent] pid 28518 [son] pid 28520 from [parent] pid 28518 [son] pid 28521 from [parent] pid 28518 [son] pid 28522 from [parent] pid 28518
Este artículo es una contribución de Dibyendu Roy Chaudhuri . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA