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 :

Commande systeme à partir d'un prog en C


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut Commande systeme à partir d'un prog en C
    Salut a tous

    Je suis en ce moment sur un projet qui a pour but la creation d'une interface graphique. Cette étape étant réaliser (utilisation de GTK) je cherche à faire un tracer de courbe apres lecture d'un fichier binaire. avec Gtk je peux tracer des courbes mais avec un niveau tres moyen
    Je vais donc utiliser une autre biblio qui aura en charge le tracer des courbes, j'ai vu que gnuplot permetter ce tracer mais le probleme est qu'il s'agit d'un script

    Je voudrais donc savoir comment en C ( sous linux) on fait pour appeler le script et l'executer???

    Merci d'avance

    Ps : j'aimerai savoir si quelq'un a deja manipuler la lib plplot car elle pourrais servir pour le tracage de courbe

  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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut insa59


    Je ne sais pas s'il est possible de lancer des scripts avec mais il y aurais bien les fonctions de la famille exec ou sinon dans le pire des cas, il y'a la commande system !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Franck.H
    Salut insa59


    Je ne sais pas s'il est possible de lancer des scripts avec mais il y aurais bien les fonctions de la famille exec ou sinon dans le pire des cas, il y'a la commande system !
    Si c'est exactement ce qu'il faudrait faire, utiliser system pour lancer le script gnuplot et généré l'image voulue et ensuite avec un widget magique de gtk afficher l'image obtenue...

    Jc

  4. #4
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut
    okie

    Mais la fonction system fonctionne aussi sous linux ?? ou bien c plutot exec qu'il faut utiliser ??

    De plus lorsque je fais l'appel avec system(gnuplot) le script qui permet de lire le fichier dois ce trouver ou???? dans le mon prog en C ou bien ds le mme repertoire??? En faite je ne vois pas du tt

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par insa59
    okie

    Mais la fonction system fonctionne aussi sous linux ?? ou bien c plutot exec qu'il faut utiliser ??
    Oui system est portable.

    De plus lorsque je fais l'appel avec system(gnuplot) le script qui permet de lire le fichier dois ce trouver ou???? dans le mon prog en C ou bien ds le mme repertoire??? En faite je ne vois pas du tt
    Là on est loin du langage C, mais tu met ton script gnuplot dans un fichier appelé "scriptgnuplot"

    et après tu fais un appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("gnuplot < scriptgnuplot");
    Jc

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Il existe certainement des API qui peuvent servir d'interface entre GNUPlot et ton programme C. Par exemple, si tu es sous linux/unix: http://ndevilla.free.fr/gnuplot/

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut
    cad je ne comprends pas???

    Comment je peux faire pour lancer mon script à partir du programme en C???

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    include <stdlib.h>
     
    int main()
    {
        system("ta commande");
     
        return 0;
    }

  9. #9
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut
    oui merci j'ai bien compris qu'il faut utilisé system puis la commande mais moi je voudrais savoir ou je met le script qui permet le tracer de la courbe car à l'interieur du script je précise le fichier à lire, les axes, commentaire....
    car si je tape

    int main()
    {
    .... system("gnuplot")


    }

    Cela ne va rien tracer !!

  10. #10
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par insa59
    oui merci j'ai bien compris qu'il faut utilisé system puis la commande mais moi je voudrais savoir ou je met le script qui permet le tracer de la courbe car à l'interieur du script je précise le fichier à lire, les axes, commentaire....
    car si je tape

    int main()
    {
    .... system("gnuplot")


    }

    Cela ne va rien tracer !!
    hmmm -> http://developpez.net/forums/showpos...17&postcount=5

    Jc

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut
    Je pense que tu peux mettre tes arguments dans la fonction.

    Aprés si tu veux les rentrer par l'utilisateur dans ton code C, il faudra que tu construise un variable qui contientra ta chaine complète !

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 136
    Par défaut
    salut,

    Essaye d'abord d'exécuter un script très réduit (une commande simple), puis si tu réussis, ça marchera certainement pour ton application.

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    il suffit que tu fabriques ta commande avant de l'envoyer dans system..

    Soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system ("gnuplot -autoscale ...........");
    soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("mon-script.sh");
    soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("gnuplot < mon_fichier_de_commande");
    Attention cependant :

    • si tu ne mets pas de "&" à la fin de la commande, l'exécution est SYNCHRONE, donc la fonction system ne te rends pas la main tant que l'opération n'est pas finie
    • si l'endroit où est placé ton fichier (script ou commandes) n'est pas dans le PATH système des binaires, il ne le trouveras pas. Donc il faudra sans doute mettre le chemin réel (exemple system("gnuplot < mondir/monsousdir/monscript.sh").

  14. #14
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut
    okie c noter je fais faire quelque essaies et je vous tiens au courant

    Merci

Discussions similaires

  1. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01
  2. Réponses: 1
    Dernier message: 30/04/2004, 11h36
  3. Prblème avec la commande system
    Par AnneOlga dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/03/2004, 16h05
  4. La commande systeme
    Par sunshine33 dans le forum MFC
    Réponses: 11
    Dernier message: 13/01/2004, 11h34
  5. Réponses: 10
    Dernier message: 07/10/2003, 16h59

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