Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/03/2010, 22h46   #1
Invité de passage
 
Inscription : mars 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 6
Points : 1
Points : 1
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 :
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

Dernière modification par Domi2 ; 09/03/2010 à 23h37. Motif: ajout des balises de code (sélection du code + # au dessus de la fenêtre de rédaction du message)
Spaki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 10h04   #2
Membre habitué
 
Inscription : avril 2009
Messages : 153
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2009
Messages : 153
Points : 135
Points : 135
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 :
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 :
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);
    }
}
BSans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 20h49   #3
Invité de passage
 
Inscription : mars 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 6
Points : 1
Points : 1
Le core dumped s'affiche des l'execution , aucun affichage n'est realisé!!!!
Spaki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 10h35   #4
Membre habitué
 
Inscription : avril 2009
Messages : 153
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2009
Messages : 153
Points : 135
Points : 135
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.
BSans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 16h33   #5
Membre éprouvé
 
Avatar de unknow0
 
Homme
Inscription : juillet 2008
Messages : 381
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2008
Messages : 381
Points : 424
Points : 424
Envoyer un message via Skype™ à unknow0
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
unknow0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 03h47.


 
 
 
 
Partenaires

Hébergement Web