C - Forks

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
 
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) ;
}
 
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?
 
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.
 
O codigo que coloquei em ultimo, o unistd só dá para compilar em Linux...

Ninguém aqui me compilava isso?
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:
Back
Topo