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 :

Appel d'un programme C dans un script shell [Débutant(e)]


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 83
    Points : 42
    Points
    42
    Par défaut Appel d'un programme C dans un script shell
    Bonjour
    J'ai écrit un programme en C qui représente une sorte de calculatrice faisant les opérations +,*,/ .. entre deux paramètres passés en arguments de la fonction.

    Je veux maintenant ecrire un script shell qui utilise ma fonction écrite en C pour faire des opérations entre les deux paramètres $1 et $2, de sorte à ce que je puisse ecrire ceci par exemple : calculer $1 * $2

    Quelqu'un pourrait m'expliquer comment faire ?
    Merci beaucoup d'avance

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    dans ton script shell tu n'a qu'à appeler directement ton script C comme si c'était en ligne de commande avec les paramètres que tu as passés à ton script shell.

    Apres tout dépend du comportement de ton script c. Est ce qu'il affiche le résultat dans la console ? Si oui alors ya pas de problème ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    Mais comment faire au juste?
    Dans mon programme en C je n'ai que la fonction main dont le prototype est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     int main (float a, float b, char op)
    a et b sont les deux réels dont on veut calculer le somme par exemple, op c'est l'opération.

    Maintenant dans mon script shell, comment faire au juste pour utiliser ce programme afin de calculer par exp la somme de $1 et $2 ?
    pourriez vous m'indiquer la ligne de code à tapper ??

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par Spacy_green
    Dans mon programme en C je n'ai que la fonction main dont le prototype est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     int main (float a, float b, char op)



    Le traitement des paramètres passés à un programme en C se fait OBLIGATOIREMENT avec une fonction main dont le prototype est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char *argv[])
    Avec argc qui est un compteur de paramètres, et argv qui est un pointeur de chaines de caractères contenant les valeurs des paramètres.

    La conversion de ces chaines vers des nombres flottants est intégralement de ton ressort, à coup de atof ou de fonctions avec plus de contrôle, selon la confiance que l'on peut accorder à l'utilisateur
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 148
    Points : 28 113
    Points
    28 113
    Par défaut
    Bonjour,

    Tout d'abord, le prototype de main, c'est
    • int main (void)
    • int main (int argc, char **argv)


    et rien d'autre. Il semblerait opportun d'ouvrir un livre de C avant de commencer à coder...

    Ensuite, une fois que tu as compilé ton programme, tu obtiens un exécutable (option -o pour préciser le nom de l'exécutable sur la plupart des compilateurs). Pour l'exeple, nous dirons que ton programme s'appelle 'add_real'

    Ensuite, pour exécuter ce programme, il te suffit de taper "add_real" suivi de la liste des arguments que tu souhaites passer à ton programme.
    Dasn un script, c'est juste la même chose.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Attention toutefois :
    tu donne par exemple
    ... qui ne pourra pas fonctionner tel quel :
    le caratère * devant etre "neutraliser" pour le shell ....
    + - / te poserra le meme type de probleme à moins que l'utilisateur de ce programme soit amême de comprendre le shell et donc de taper
    sinon il conviendrai de "programmer differement" et de permettre l'une des syntaxes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    1 :
    calculer "12 * 4"
    2 :
    echo "12 * 4" | calculer
    etudie deja un peut le C et le shell avant de te lancer dedans .....
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 83
    Points : 42
    Points
    42
    Par défaut
    Merci à tous pour votre aide
    Maintenant je comprends comment ça se passe

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

Discussions similaires

  1. Appel d'un programme tiers dans un script python
    Par LeRoiDeTrefle dans le forum Général Python
    Réponses: 5
    Dernier message: 17/06/2014, 15h06
  2. comment faire appel d'une application java dans un script shell?
    Par moradbe dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 01/02/2007, 20h55
  3. Réponses: 1
    Dernier message: 10/11/2006, 12h04
  4. Réponses: 2
    Dernier message: 03/04/2006, 19h38
  5. Programme en C dans un script shell
    Par am.adnane dans le forum Linux
    Réponses: 1
    Dernier message: 05/02/2006, 18h57

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