Creation de deux fils avec un seul pere

Résolu/Fermé
Francois - Modifié le 24 oct. 2017 à 19:11
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 24 oct. 2017 à 20:24
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 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
24 oct. 2017 à 20:24
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