Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 3 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Mar 11, 2010 1:28 pm
Mensajes: 2

Nota Publicado: Jue Mar 11, 2010 3:27 pm 
Arriba  
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 Jue Mar 11, 2010 7:10 pm, editado 3 veces en total
 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Abr 18, 2007 11:00 pm
Mensajes: 1166
Ubicación: Cojutepeque, El Salvador C. A.

Nota Publicado: Jue Mar 11, 2010 3:32 pm 
Arriba  
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!!!

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Mar 11, 2010 1:28 pm
Mensajes: 2

Nota Publicado: Jue Mar 11, 2010 3:36 pm 
Arriba  
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

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 3 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO