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 :

Envoyer des paramètres au shell appelant


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Par défaut Envoyer des paramètres au shell appelant
    Bonjour,
    A partir d'un shell appelant le C, j'aimerais récupérer dans le shell des paramètres calculés dans le c.

    Je m'explique
    Code du shell:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ./programme-c
    echo "je récupère $mon-parametre-passe"
    Code du programme-c.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main {
     char *mon-paramètre-passe="je passe mon paramètre";
    /* Ici le code pour passé mon paramètre au shell applant */
     return 0
    }
    Si quelqu'un a une réponse c serait cool merci

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Le seul moyen que je vois, c'est d'écrire cela dans un fichier (ou de rediriger la sortie standard vers un fichier). Il est impossible de modifier directement les variables du shell parent.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    En fait, si tu es sous nux, je te conseille d'écrire directement les réponses sur la sortie standard, et de l'analyser ensuite depuis le shell.
    N'oublie pas l'opérateur backquote (a = `./programme-c`) qui signifie "mettre la sortie standard de ce programme dans une variable".
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Par défaut
    Et la fct putenv?

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Elle ne marche que pour le programme courant et ses futurs fils.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Par défaut
    Ok; je devrais m'en tirer avec la commande
    dans le shell

    Mais comme dans mon programme c, j'envois plus d'un paramètre j'avais pensé faire un truc du genre :

    programme-c.c
    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
     
    #include <stdio.h>
    int main {
     char param[500];
     char param1[10];
     char param2[10];
     char param1_env[50];
     char param2_env[50];
    /* evaluation de param1 et param2*/
     
     sprintf(param1_env,"PARAM1=%s\n",param1);
     sprintf(param2_env,"PARAM2=%s\n",param2);
     strcpy(param,param1_env);
     strcat(param,param2_env);
     
    /* Ici je retourne param grace à l'instruction return, seul problème je n'ai pas trouvé 
     la syntaxe exacte */
    }
    shell-appelant.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    `./programme-c`
    # Ici utilisation de PARAM1 et PARAM2
    Est ce que cette solution fonctionne et si oui comment dois je retourner ma variable param

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

Discussions similaires

  1. PHP Envoyer des paramètre au fichier CSS
    Par Prosis dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 24/10/2007, 07h47
  2. Réponses: 17
    Dernier message: 06/04/2007, 11h53
  3. Envoyer des paramètres à une url
    Par joKED dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 08/03/2007, 12h22
  4. [FLASH 8] Envoyer des paramètres de flash à java
    Par jbidou88 dans le forum Flash
    Réponses: 12
    Dernier message: 21/09/2006, 09h31
  5. Réponses: 5
    Dernier message: 12/06/2006, 15h23

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