1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

C - Forks

Discussão em 'Programação' iniciada por Ansatsu, 7 de Outubro de 2008. (Respostas: 7; Visualizações: 796)

  1. Ansatsu

    Ansatsu Power Member

    Boas...

    Não percebo muito de C, estou mais noutras linguagens.
    Mas alguém me podia dizer como fazem em codigo 10 Forks, com ciclo infinito cada uma delas?


    Abraços
     
  2. The_True_Eue

    The_True_Eue Power Member

    Se não for perguntar demasiado, para que queres fazer isso exactamente? Não me parece muito útil, nem mesmo para fins didácticos...
    Código:
    #include <unistd.h>
    
    void badfunction()
    {
        int i;
        for(i = 0; i < 10; i++)
             if(!fork())
                   while(1) ;
    }
    
     
  3. Ansatsu

    Ansatsu Power Member

    Para levar o CPU a um extremo.
     
  4. Ansatsu

    Ansatsu Power Member

    Entretanto também me arranjaram este codigo:

    Código:
    #include <sys/types.h>
    #include <unistd.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <signal.h>
    #include <string.h>
    #include <readline/readline.h>
    #include <readline/history.h>
    #include <signal.h>
    #include <fcntl.h>
    
    
    
    int main(){
    
        int i;
        int PID;
        int aux=0;
        
        
        for(i=0;i<25;i++){
            PID = fork();
            
            if(!PID){
                do{
                    aux++;
                    aux--;
                }while(0==0);
                exit(0);//nao seria necessario
            }
            
        }
    
        for(i=0;i<25;i++){wait(0);}//nao seria necessario
    
    
        return 0;
    }



    Já agora, que software usam para compilar C?
     
  5. m00s

    m00s Power Member

    depende do teu OS... Linux, Windows,...
     
  6. Ansatsu

    Ansatsu Power Member

    O codigo que coloquei em ultimo, o unistd só dá para compilar em Linux...

    Ninguém aqui me compilava isso?
     
  7. coldfire

    coldfire Power Member

    o fork é uma system call que permite a criação de processos filhos. t. Se fizeres um ciclo for e dentro chamares a função fork() crias quantos filhos quiseres.
     
  8. The_True_Eue

    The_True_Eue Power Member

    Podes compilar tu.
    Em Linux:
    Código:
    cc a.c
    Se queres levar o CPU ao extremo (ao ponto de nao responder...), tens esta "versao":
    Código:
    #include <unistd.h>
    
    int main()
    {
        while(1) fork();
        return 0;
    }
    
    Mais pequeninho, muito pior.
     
    Última edição: 9 de Outubro de 2008

Partilhar esta Página