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

Linux Discussion :

[c] blocage et comprehension d'un programme


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut [c] blocage et comprehension d'un programme
    Salut a tous . Je debute en programation linux et je trouve ca tres interessant .

    Je bloque sur ce programme ecrit en c je n'arrive pas a savoir ce qu'il fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main () {
     
                    int p=1;
    while (p>0) p=fork();
     
                    execlp("prog","prog",NULL);
     
                    return(0);
    }
    merci.

  2. #2
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Points : 354
    Points
    354
    Par défaut
    en fait le pere reste bloqué sur le while car le fork retournera toujours un chiffre supperieur a 0 (pid du fils)
    et chaque fils sortira du while car fork retourn 0 au fils et, par recouvrement executera prog (se trouvant dans le repertoire courant ou dans PATH)

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Salut
    svp, je n'arrive pas a comprendre la syntaxe du execlp?

    c'est quoi le PATH?

    aussi eceque le pere va creer une infinité de fils?

  4. #4
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Points : 354
    Points
    354
    Par défaut
    PATH est une variable d'environnement, fais
    dans le shell et il t'affichera quelque chose ce ce style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    ce sont les repertoires ou le shell va chercher quand tu lui demande de lancer un executable tel que ls, grep, wc ou autre...

    en gros, grace à execlp tu n'a pas forcement besoin de donner le chemin (comme pour le shell)

    si l'exécutable que tu donne ne se trouve ni dans le dossier courant, ni dans PATH, il faudra donner le chemin complet.
    et oui, le père va créer une infinité de fils !
    enfin...tant qu'il ne rencontrera pas d'erreur à l'exécution du fork !

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    merci cher kamouminator .mais prog c'est quoi ? et pourqoi il y a 2 prog puis un NULL dans execlp .

    et aussi le return(0) ?

  6. #6
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    414
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 414
    Points : 354
    Points
    354
    Par défaut
    je te conceil d'aller voir la page de man de execl tu aura aussi la description de execlp.
    pour return 0:
    chaque programme doit retourner un code de retour a sa fin, pour avertir l'OS d'eventuel problemes. retourner 0 signifie qu'on a terminé sans erreurs.
    je te conceil de revoir les bases du C avant de te lancer dans la programmation systeme.

Discussions similaires

  1. blocage à l'execution de tous programme
    Par yann458 dans le forum Windows 7
    Réponses: 4
    Dernier message: 04/06/2011, 08h04
  2. aide pour comprehension d'un programme
    Par FATAL1TY dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 14/07/2010, 11h12
  3. blocage de programme
    Par zerocoolyoussef dans le forum Windows
    Réponses: 9
    Dernier message: 19/05/2006, 21h41
  4. comprehension d`un programme de tree (insert)
    Par smalto dans le forum C++
    Réponses: 6
    Dernier message: 05/04/2006, 18h37
  5. [Thread] Blocage dans mon programme
    Par Xo Sonic oX dans le forum EDT/SwingWorker
    Réponses: 4
    Dernier message: 18/06/2005, 17h12

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