ejercicios sobre procesos padres e hijos

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: maiku, akodo

Responder
albarito17
Forista Nuevo
Forista Nuevo
Mensajes: 2
Registrado: Jue Mar 11, 2010 9:28 pm

ejercicios sobre procesos padres e hijos

Mensaje por albarito17 »

No me salen ninguno de los 2 programas:(en el 1º me salen tropecientos procesos)

1Hacer un programa en el que se lance un proceso hijo, éste a su vez otro y así sucesivamente hasta 4 generaciones. Todos los procesos escribirán su PID. Los que tengan hijo (todos menos el último) esperarán a que acabe su hijo para escribir su PID..

2. Hacer un programa que cree 10 hijos (se cuentan de O a 9). Los hijos pares crearán su propio grupo y lanzarán un hijo.
• Todos los descendientes (hijos y nietos del primero) mostrarán en pantalla su PID, el de su padre y el de su grupo.
• El padre esperará a que finalice el último hijo creado (el número 9) y
escribirá su PID y "Todos son hijos míos".




1. Hacer un programa que cree 10 hijos (se cuentan de O a 9). Los hijos pares crearán su propio grupo y lanzarán un hijo.
• Todos los descendientes (hijos y nietos del primero) mostrarán en pantalla su PID, el de su padre y el de su grupo.
• El padre esperará a que finalice el último hijo creado (el número 9) y
escribirá su PID y "Todos son hijos míos".
(1punto)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>

int main (int argc,char *argv[])
{
int pid,i,pid2;
for(i=0;i<10;i++)
{
if((pid=fork())==-1)
{
perror("fork");
exit(-1);
}
if (pid==0)
{
printf("PID:%d PID Padre: %d PID Grupo: %d\n",getpid(),getppid(),getpgid(pid));
if(pid%2=0)
{
setsid();
if((pid2=fork())==-1)
{
perror("fork");
exit(-1);
}
if(pid2==0)
{
printf("PID:%d PID Padre: %d PID Grupo:%d\n",getpid(),getppid(),getpgid(pid));
}
}
}
else
{
wait();
printf("PID:%d Todos son hijos míos\n",getpid());
}
}
}

return 0;
}
2. Hacer un programa en el que se lance un proceso hijo, éste a su vez otro y así sucesivamente hasta 4 generaciones. Todos los procesos escribirán su PID. Los que tengan hijo (todos menos el último) esperarán a que acabe su hijo para escribir su PID.. (1 punto)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>


int main (int argc,char *argv[])
{
int pid;
if((pid=fork())==-1)
{
perror("fork");
exit(-1);
}
if (pid==0)
{
if((pid=fork())==-1)
{
perror("fork");
exit(-1);
}
if (pid==0)
{
if((pid=fork())==-1)
{
perror("fork");
exit(-1);
}
if (pid==0)
{
if((pid=fork())==-1)
{
perror("fork");
exit(-1);
}
if (pid==0)
{
printf("PID 4ºHijo: %d\n",gepid());
}
else
{
wait();
printf("PID3º: %d\n",gepid());
}
}
else
{
wait();
printf("PID2º: %d\n",gepid());
}
}
else
{
wait();
printf("PID: %d\n",gepid());
}
}
else
{
wait();
printf("PID1º: %d\n",gepid());
}
}
}
else
{
wait();
printf("PID Padre: %d\n",gepid());
}
return 0;
}
Última edición por albarito17 el Vie Mar 12, 2010 3:10 am, editado 3 veces en total.

Avatar de Usuario
maiku
Moderador
Moderador
Mensajes: 1529
Registrado: Jue Abr 19, 2007 7:00 am
Ubicación: Cojutepeque, El Salvador C. A.

Re: ejercicios sobre procesos padres e hijos

Mensaje por maiku »

Con todo respeto el foro es sobre consultas y ayuda en general, si tienes una duda, por favor pon el código y dinos qué no puedes hacer, nadie hará tu exámen (peor aún si lo has obtenido antes de su tiempo). También he editado el tema, por favor lee el reglamento.

Saludos :)
Grüße...
Maiku

Full linux alchemist!!!

albarito17
Forista Nuevo
Forista Nuevo
Mensajes: 2
Registrado: Jue Mar 11, 2010 9:28 pm

Re: ejercicios sobre procesos padres e hijos

Mensaje por albarito17 »

Considero que es problema mio si lo he conseguido antes o no, gracias por tu opinión.

Si algún buen samaritano me puede echar una mano se lo agradecería un saludo

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje