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] Aide petit script c pour linux


Sujet :

Linux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 23
    Points
    23
    Par défaut [C] Aide petit script c pour linux

    Pouvez vous m'aider à comprendre comment marche ce petit script c et me dire quelle est sa principale fonction ? Merci d'avance
    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
    #include <stdio.h>
    #include <stdlib.h>
    void main (int argc, char ** argv) 
    { 
    int i;
    int n=atoi(argv[1]);
    int p=atoi(argv[2]); 
    if(p==0) 
    { sleep(3); 
    printf("sortie 1\n"); 
    exit(0); 
    } 
    for(i=0;i<n;i++) 
    if(fork()==0) 
    { sprintf(argv[2],"%d", p-1); 
    main(argc,argv); 
    printf("sortie 2\n"); 
    exit(0); 
    } 
    while (wait(0)==-1){ 
    printf("sortie 3\n"); 
    exit(0); 
    } 
    }

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Attention, en C on ne parle pas de script mais de code source

    Apparement, ce programme créé des processus par le biais de la fonction fork. Le programme en créé suivant la profondeur demandé par l'utilisateur donc, chaque processus enfant créé à son tour d'autre processus tout en réduisant à chaque enfant la profondeur de 1.

    Le programme prend apparement deux argument en ligne de commande (donc à passer au moment de l'exécution style:
    Ces deux arguments sont des entiers signés sur 32 bits bien entendu et sont dans l'ordre:
    1. Nombre de processus à créer
    2. Profondeur


    C'est un peu comme de la récursivité si on veut mais au niveau programme et non sous-programme... Enfin voilà mon avis sur ce programme (j'ai lu que 2 min) mais je n'en vois pas trop l'intérêt sauf bien sûr peut-être du point de vue didactique.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 952
    Points : 4 378
    Points
    4 378
    Par défaut
    Citation Envoyé par Franck.H
    1. Nombre de processus à créer
    2. Profondeur
    et apparement comme n n'est pas modifié on peut même dire le
    "Nombre de processus à créer à chaque niveau"
    Citation Envoyé par Franck.H
    … sauf bien sûr peut-être du point de vue didactique.
    mauvais exemple alors, car il n'est en rien garanti que l'espace mémoire où sont stockés les arguments passés à main() soit modifiable comme cela est fait avec le sprintf(argv[2]…)
    c'est un aspect qui est dépendant de l'OS…
    il se peut très bien que ces pages mémoire soient "read only" et partagées entre les différents process générés par le fork…

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Je vous remercie pour cette précieuse aide que vous m'avez apporté, maintenant j'y vois bien plus clair

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

Discussions similaires

  1. Petit Script Shell pour changement de date automatique
    Par 20132014 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 18/06/2013, 13h07
  2. [AppleScript] Cherche un petit script applescript (pour vider des rép...)
    Par macmame dans le forum AppleScript
    Réponses: 1
    Dernier message: 17/01/2011, 20h02
  3. [petition] Des jeux pour linux !
    Par yetimothee dans le forum Linux
    Réponses: 16
    Dernier message: 16/10/2008, 18h08

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