Estoy aprendiendo a programar socket y ahi va mi primer ejemplo de fork()
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
/***********************************************
| compile: [b]cc -o vader vader.c[/b]
***********************************************/
int main(int argc, char *argv[])
{
int i;
pid_t pid;
while(1)
{
printf("Anakin, Yo Soy tu padre (Darth Vader)!!!!!!!!!!!!\t\n");
pid = fork();
if(pid < 0)
{
/*----------------------------------------------------------*\
|
| ha Ocurrido un Error (-1)
| Cuando fork() retorna valor < 0 --> No se ha podido Bifurcar
|
\*----------------------------------------------------------*/
printf("Auch, Me quede sin Hijo...Que hijo de...\t\n");
exit(1);
}
if(pid == 0)
{
/*----------------------------------------------------------*\
|
| Proceso hijo:
| Cuando fork() devuelve 0, estamos en el proceso hijo.
| Nota........: exit en lugar de _exit
\*----------------------------------------------------------*/
printf("Lord Vader, Yo Soy tu Hijo (Anakin)!!!!!\t\n");
sleep(2);
_exit(0);
}
else
{
printf("Ahá, Vamos de nuevo.....(Darth Vader)\t\n");
sleep(3);
}
}
return 0;
}