El fork es una de las herramientas que nos brinda linux para manejar varios procesos, es tremendamente simple la sintaxis:
pid_t fork(void);
Lo dificil no es entender como funciona si no que hace, segun el manual de linux:
- crea un nuevo proceso duplicando el proceso original
- el proceso hijo tiene su propio pid
- el ppid() del proceso hijo es el pid del proceso original
- el hijo no tiene señales pendientes
- el hijo no hereda el valor de los semaforos
Valor de retorno:
En el padre: pid del hijo
en el hijo: 0
Y nada mejor que un ejemplo:
#include ...
int main(){
int hijo;
printf("soy un solo proceso ! \n");
sleep(1);
hijo=fork();//hacemos un proceso hijo
printf("somos dos procesos!\n");
sleep(1);
if (hijo==0){//vemos si es el hijo
printf("soy el hijo!\n");
sleep(1);
printf("sigo vivo");
}
else{//si no es el padre
printf("soy el padre\n");
}
printf("ya morí ... :S \n");//ambos ejecutan esto
return 0;};
espero que sirva para aclarar algo, den +1.
seriedad gente !
ResponderEliminar