elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda para programar Arbol de Procesos en C - OS Linux
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda para programar Arbol de Procesos en C - OS Linux  (Leído 2,398 veces)
donself

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Duda para programar Arbol de Procesos en C - OS Linux
« en: 20 Mayo 2016, 18:49 pm »

Hola amigos.

Estoy realizando un proyecto sobre procesos en Unix, usando el lenguaje C.
EL proyecto consiste en representar un arbol de procesos usando las funciones fork(), wait(), exit().

La salida de mi programa me debe quedar:

1. Father:Pid1 - Hello
2. Children1:Pid2 - Hello
3. GrandChildren1.1:Pid3 – Hello and Goodbye
3. GrandChildren1.2:Pid4 – Hello and Goodbye
4. Children1:Pid2 - Goodbye
6. Children2:Pid6 - Hello
7. GrandChildren2.1:Pid7 – Hello and Goodbye
8. Children2:Pid6 - Goodbye
9.  Father:Pid1 - Goodbye

 este es el arbol:

https://www.solidfiles.com/v/n5QWvzwKdvw5M

Esta salida la entiendo.
He programado el siguiente codigo para los inicios de los procesos, pero no se como hacer que terminen los procesos, siempre se me riegan:

Código:
main() {

    if(fork())
    {
        // 1
        printf("1. Father:Pid1 - Hello\n");
        if(fork())
        {
            // 2
            printf("2. Children1:Pid2 - Hello\n");
            if(fork())
            {
                // 4
                printf("3. GrandChildren1.1:Pid3 - Hello and GoodBye\n");
            }
            else{}

            wait(1);

            if (fork())
            {
                 printf("3. GrandChildren1.2:Pid4 - Hello and GoodBye\n");
            }
            else {}
        }
        else
        {
            printf("4. Children1:Pid2 - GoodBye\n");
        }
    }
    else{
        if(fork())
        {
            // 3}
            printf("6. Children2:Pid6 - Hello\n");
            if (fork())
            {
                printf("6. GrandChildren2.1:Pid7 - Hello and GoodBye\n");
            }
            else{}
    }
    else{}
    }

    pause();
    return 0;
}

Por ejemplo, no se como terminar el Pid2 y veo que cuando imprima los 2 nietos, debo hacerlo.

Como podria hacerlo o que debo entender?

saludos  gracias
Donny


« Última modificación: 20 Mayo 2016, 18:53 pm por donself » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA] For para matar procesos
Scripting
FranciskoAsdf 7 5,089 Último mensaje 23 Enero 2009, 00:20 am
por FranciskoAsdf
Duda con comando para analizar procesos
Programación Visual Basic
.:UND3R:. 3 2,682 Último mensaje 11 Junio 2011, 07:42 am
por BlackZeroX
Libro para aprender a programar procesos en linux?
Programación C/C++
goditozor 5 5,841 Último mensaje 1 Julio 2011, 11:50 am
por Foxy Rider
Creación de un árbol de procesos en linux
GNU/Linux
jeanksky 0 2,707 Último mensaje 8 Abril 2013, 17:41 pm
por jeanksky
Duda con C++ y procesos en linux.
Programación C/C++
SARGE553413 2 2,474 Último mensaje 24 Enero 2014, 23:04 pm
por SARGE553413
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines