|
Ver temas sin respuesta | Ver temas activos
Foros Linux » Desarrollo » Programación
Página 1 de 1
|
[ 3 mensajes ] |
|
| Autor |
Mensaje |
albarito17

Forista Nuevo
Registrado: Jue Mar 11, 2010 1:28 pm Mensajes: 2
|
 Publicado: Jue Mar 11, 2010 3:27 pm |
|
|
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
|
|
|
|
 |
maiku

Moderador
Registrado: Mié Abr 18, 2007 11:00 pm Mensajes: 1166 Ubicación: Cojutepeque, El Salvador C. A.
|
 Publicado: Jue Mar 11, 2010 3:32 pm |
|
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
Registrado: Jue Mar 11, 2010 1:28 pm Mensajes: 2
|
 Publicado: Jue Mar 11, 2010 3:36 pm |
|
|
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
|
|
|
|
 |
|
|
|
Página 1 de 1
|
[ 3 mensajes ] |
|
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 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
|
|