Article View: es.comp.os.linux.programacion
Article #7969Re: fork/padres/hijos
From: Iago Rubio
Date: Tue, 31 Dec 2002 09:53
Date: Tue, 31 Dec 2002 09:53
61 lines
2633 bytes
2633 bytes
Estaba Stanley por es.comp.os.linux.programacion y escribio:
> Soy novato en el tema, pero este asunto me tiene muy intrigado:
>
> Tengo entendido que al lanzar un proceso con fork, primero genera el
> padre (valor 0) y luego va generando hijos (valor 1). Pero no entiendo
> bien como funciona, porque luego he leido que el pid del padre pasa al
> hijo y al reves.
> No se, tengo una empanada mental increible, si alg�n alma caritativa
> me
> lo puede explicar, de una forma muy muy sencilla, se lo agradecer�a.
Es m�s facil de lo que crees, y la pid NO pasa del padre al hijo. Fork en el
padre devuelve el pid del hijo y en el hijo 0.
Estos valores se usan para que el saber si la copia del programa (porque
fork lo que hace es un copia exacta del programa) que se est� ejecutando es
el proceso padre o el hijo.
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
pid_t fpid;
printf(" Arrancando .. ");
fpid = fork();
if(fpid < 0) /* la pid es menor que cero [-1] error haciendo fork() */
{
printf("fallo fork\n");
exit(EXIT_FAILURE);
}
if(fpid == 0) /* fpid igual a cero en el proceso padre */
{
printf("En el proceso padre\n");
}
else /* la variable fpid es mayor que cero en el proceso hijo*/
{
printf("En el proceso hijo, con pid %d\n", fpid);
}
exit(EXIT_SUCCESS);
}
Espero que el ejemplo te ayude a entender el uso del valor devuelto por
fork, como ves el pid no se pasa de padre a hijo. fork() solo devuelve un
pid si est� en el hijo.
>
> Gracias,
> Un saludo.
Un saludo
--
Iago Rubio < iagorubio(EN)telefonica.net >
Linux User # 280230 RH 8.0 Kernel 2.4.18smp
Technical Details
Message-ID:
<aut390$a1ssu$1@ID-175868.news.dfncis.de>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!uni-berlin.de!120.red-80-36-158.pooles.rima-tde.NET!not-for-mailReferences:
<aua5q8$dgh$1@news.ya.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,c64d2f904bb75c6c X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-12-31 13:47:14 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!uni-berlin.de!120.red-80-36-158.pooles.rima-tde.NET!not-for-mail From: Iago Rubio <iagorubio@yahoo.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: fork/padres/hijos Date: Tue, 31 Dec 2002 10:53:51 +0100 Organization: Hola a tooodos ;-) Lines: 62 Message-ID: <aut390$a1ssu$1@ID-175868.news.dfncis.de> References: <aua5q8$dgh$1@news.ya.com> NNTP-Posting-Host: 120.red-80-36-158.pooles.rima-tde.net (80.36.158.120) Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit X-Trace: fu-berlin.de 1041371233 10548126 80.36.158.120 (16 [175868])