IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Aide : fork()


Sujet :

Administration système

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Aide : fork()
    Bonjour, je suis débutant en programmation C pour le système LINUX.

    J'ai un exo à rendre pour jeudi , il faut que je fasse un programme qui lance 5 processus fils et affiche leurs PID(par un message) . Chaque fils devra afficher son PID et celui de son pere (par un message) avant de s'autodétruire.

    J'ai commencé à résoudre l'exo, donc voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int main(void){
      int i = 1;
      pid_t pidfils;
      while((i<6)&&((pidfils=fork())!=0)){
        printf("Fils numero %d:PID %d\n",i,pidfils);
          i++;
      }
     
     
      if(pidfils==0){
        printf("Je suis le processus %d et mon pere est %d\n",getpid(),getppid());
          }
      return 0;
    }
    Lors de la compilation de problème, aucune erreur se produit.
    Mais lors de l'exécution , un message s'affiche : core dumped.
    Quelqu'un pourrait m'aider???Que signifie ce message???

    Merci de votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 160
    Points
    160
    Par défaut
    Pas certain que ce soit la bonne section.
    Cela dit, il faudrait peut-être une sortie un peu plus détaillée.
    Le Core Dumped arrive-t-il juste après le lancement ou certains fils se lancent avant ?

    Il faudrait que je vérifie, mais il me semble que ta boucle va lancer 5! processus et non 5.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    i=1
    |-> fork()
      |-> fork()
        |-> fork()
          |-> fork()
            |-> fork()
    i=2
    |-> fork()
      |-> fork()
        |-> fork()
          |-> fork()
    ...
    Il faudrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for (i=1;i<6;i++)
    {
        pidfils=fork();
        if (pidfils==0)
        {
            printf("Je suis le processus %d et mon pere est %d\n",getpid(),getppid());
            exit 0;
        }
        else
        {
            printf("Fils numero %d:PID %d\n",i,pidfils);
        }
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Le core dumped s'affiche des l'execution , aucun affichage n'est realisé!!!!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 160
    Points
    160
    Par défaut
    Je n'avais pas fait attention à "pidfils=fork())!=0". Donc effectivement, tu ne boucleras que 5 fois.

    Ton code ne comporte-t-il que l'instruction main ?

    Je ne vois pas la raison de ce crash.
    Ajoute éventuellement un printf avant ton while.

  5. #5
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Bonjour,

    personnellemnt j'ai copiler ton code Spaki et il marche tres bien.

    donc a pars les librairie instaler qui sont moisie (ce qui m'ettonerai fortement)... je ne vois pas :s

Discussions similaires

  1. Aide sur les fork
    Par Linquisiteur dans le forum Débuter
    Réponses: 6
    Dernier message: 27/05/2013, 00h14
  2. Aide avec les fork()
    Par Raikyn dans le forum C
    Réponses: 45
    Dernier message: 31/03/2013, 20h40
  3. Aide fork() petit-fils gérés par le père ?
    Par Drexler82 dans le forum Programmation et administration système
    Réponses: 15
    Dernier message: 07/06/2011, 15h04
  4. Besoin d'aide pour une gestion d'un multi fork avec chien degarde.
    Par Baradhur dans le forum Threads & Processus
    Réponses: 11
    Dernier message: 21/01/2011, 09h28
  5. Aide : fork()
    Par Spaki dans le forum Débuter
    Réponses: 6
    Dernier message: 23/03/2010, 21h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo