Creation de deux fils avec un seul pere

Résolu
Francois -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je n'arrive pas a cree deux fils d'un meme processus sous Linux.
J'ai pensé a faire :

pid_t fils1;
pid_t fils2;

fils1 = fork();
if (fils1 > 0) {
  fils2 = fork();
}


mais cela ne me cree pas deux fils
Pouvez vous m'aider?

Merci
Francois

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Cet exemple montre comment tu peux faire.

    #include <unistd.h>
    #include <stdio.h>
    
    int main() {
        printf("Je suis ton père (%d)\n", getpid());
                                         
        pid_t pid1 = fork();             
        if (pid1 == 0) {                 
            printf("Je suis ton fils (%d)\n", getpid());
            return 0;                    
        }                                
                                         
        pid_t pid2 = fork();             
        if (pid2 == 0) {                 
            printf("Je suis ta fille (%d)\n", getpid());
            return 0;                    
        }                                
                                         
        printf("Je suis ton père (%d)\n", getpid());
                                         
        return 0;                        
    }


    Exécution :

    (mando@aldur) (~) $ gcc toto.c && ./a.out 
    Je suis ton père (11532)
    Je suis ton père (11532)
    Je suis ton fils (11533)
    Je suis ta fillei (11534)


    Bonne chance
    3