🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #7969

Re: fork/padres/hijos

#7969
From: Iago Rubio
Date: Tue, 31 Dec 2002 09:53
61 lines
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-mail
References: <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])