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

 C Discussion :

<unistd.h> fonctionne pas


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut <unistd.h> fonctionne pas
    Bonjour

    Je commence a apprendre les processus et j'essaie de faire fonctionner un petit code que j'ai vu dans un livre mais mon programme ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <errno.h>
    #include <sys/wait.h>
     
    int main(void)
    {
    	pid_t pid_fils;
     
    	do{
    		pid_fils=fork();
    	}while((pid_fils == -1) && (errno == EAGAIN));
     
    	if (pid_fils == -1){
    	   fprintf(stderr,"Erreur errno=%d\n",errno);
     
    	   return 1;
     
    	if (pid_fils == 0){
    	   printf("Dans le fils.\n");
    	   fprintf(stdout,"FILS  :  PID=%ld.  PPID=%ld\n",(long)getpid(),(long)getppid());
    	   return 0;
    	}else{
    	   printf("Dans le père.\n");
    	   fprintf(stdout,"PERE   : PID=%d.  PPID=%d.   PID_fils=%ld\n",(long)getpid(),(long)getppid(),(long)pid_fils);
    	   wait(NULL);
    	   return 0;
    	}	
       }
    }
    Quand j'execute le programme apres l'avoir compilé en ligne de commande, il ne se passe rien, le prompt reviens.
    Le processus n'est pas creer et donc les testes ne sont pas fait.
    Je pense que ca vient de <unistd.h> pourtant le fichier est bien a l'emplacement /usr/include/unistd.h.
    Je suis sur mandriva 2009 et j'utilise gcc pour compiler.
    Pourquoi le programme ne cree pas le processus?

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    C'est peut être tout simplement parce que tu as oublié une accolade pour fermer le "if (pid_fils == -1){" .

    En remettant l'accolade fermante après return 1, ça fonctionne nikel

    @+
    Avec les ordinateurs, 99% des bugs proviennent de l'interface chaise-clavier...

    Comment ça 1Km n'est pas égal à 1024m ???

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    merci

    c'etait l' accolade fermante le probleme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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