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

Shell et commandes GNU Discussion :

shell et programme


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 25
    Par défaut shell et programme
    bonjour à tous;
    je voudrais savoir s'il est possible de faire appel à un script dans un praogramme C..si c'est le cas, quelle est la syntaxe à utiliser s'il vous plait?

    merci.

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    la méthode existe (exec je crois) mais c'est une solution à proscrire car le moindre problème de nommage ou de droits sur le chemin vers le script ou le script et le programme ne marchera plus !

    bien sur tu peux te baser sur un fichier plat de configuration pour charger le chemin et le nom du script dans des variables lors de l’exécution mais il faut faire tout un tas de contrôles d'erreur avant, pendant et après l'exécution du script....

    c'est un peu complexe vu que tu débutes.

    une façon plus propre de faire :
    écrire un script qui extrait, et met en forme les données à traiter, qui appelle le programme C, qui traite les cas de sortie.

    néanmoins dans 99% des cas cette structure est elle même naze car ce qui est fait par le script avant et après le programme est souvent faisable sans trop de difficultés en C.

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Par défaut
    pour invoquer une command system via un programme C faut passer par le exec.
    man exec pour les differentes versions possibles.

    par exemple execv("/bin/mkdir","/bin/mkdir","/tmp/toto")

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    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 150
    Par défaut
    Bonjour,

    Attention : exécuter une commande externe rend forcement ton programme non portable, même si ton code est standard : il ne pourra s'exécuter que sur un unique type d'OS et/ou de plateforme (selon le script que tu appelles).

    Par ailleurs, comme le souligne frp31, il vaut mieux éviter ce genre de manipulations, et préférer utiliser les fonctions de l'API de l'OS pour effectuer les actions du script.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Salut.

    Tu as aussi l'instruction system() en C qui exécute une commande de l'OS

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # include <stdlib.h>
    system ("./chemin_script/nom_script");
    Mais comme dit précédemment, ton code ne sera plus portable ...

    Cordialement,
    Idriss

  6. #6
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 25
    Par défaut
    merci énormément à tous pour vos réponses;
    elles ont été d'une tres grande aide..
    merci encore.

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

Discussions similaires

  1. [AC - 2007] Shell et programme d'installation.
    Par Ahlmael dans le forum VBA Access
    Réponses: 5
    Dernier message: 05/11/2014, 12h12
  2. script shell (petit programme)
    Par devaben dans le forum Linux
    Réponses: 7
    Dernier message: 06/04/2009, 10h11
  3. commande shell dans programme C
    Par horkets dans le forum C
    Réponses: 1
    Dernier message: 01/11/2006, 14h55
  4. Livre sur la programmation linux (shell et noyau)
    Par Tchetch dans le forum Linux
    Réponses: 10
    Dernier message: 07/07/2004, 08h27
  5. commande shell dans un programme
    Par diefo dans le forum C
    Réponses: 3
    Dernier message: 15/08/2003, 13h37

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