Creation de deux fils avec un seul pere

Résolu
Francois -  
mamiemando Messages postés 33766 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

mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
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