Forum Programmation.c gnuplot depuis C

Posté par  .
Étiquettes : aucune
0
10
nov.
2005
Bonjour,
est ce quelqu'un peut m'aider sur un truc: il s'agit au fait d'executer gnuplot depuis un code écrit en C ou C++. (depuis un C si possible).
je vous explique, je dois créer un graphique sous gnuplot (créer un fichier et d'écrire des coordonnées des points dans le fichier puis appeler gnuplot depuis le shell ....), bon, tout ça, c bon , mon problème ce que j'aimerai que mon programme execute gnuplot et de tracer le graphe sans ouvrir un shell et de taper "gnuplot" etc...
Merci d'avance!!
  • # man system

    Posté par  (site web personnel) . Évalué à 2.

    tout est dans le titre
  • # gnuplot depuis C

    Posté par  (site web personnel) . Évalué à 2.

    • [^] # Re: gnuplot depuis C

      Posté par  . Évalué à 1.

      Merci les gars!
      c tres gentil de votre part, je vais voir de suite les sites que vous m'avez proposé.
      • [^] # Re: gnuplot depuis C

        Posté par  . Évalué à 1.

        En fait, ce que je voulais faire au fait c de à partir du C: j'ouvre le shell et d'éxecuter une commande predefinie dans mon prog.
        ex:
        // code qui permet d'ouvrir le shell
        ..............................
        // code qui execute gnuplot
        ................................
        // d'éxecuter la ligne suivante
        plot " toto.dat" with lines

        toto.dat est un fichier contenant mes points à tracer (déjà prêt)
        et je tiens vous à preciser que le programme tourne sous linux!
        (le but de ce prog est de ne pas saisir après chaque modif:
        gnuplot
        plot 'toto.dat' with lines
        )

        Merci
        • [^] # Re: gnuplot depuis C

          Posté par  . Évalué à 2.

          Les réponses étaient dans les deux premiers messages (bien que très succintes):

          // Ouverture du shell et lancement de gnuplot
          f = popen("gnuplot", "w");
          // exécution de la commande gnuplot
          fprintf(f, " plot \"toto.dat\" with lines");
          fflush(f);
          // terminer l'envoi de commandes et fermer gnuplot
          pclose(f);


          Donc, 'man popen' est ton ami ;)
          • [^] # Re: gnuplot depuis C

            Posté par  . Évalué à 1.

            Merci pour ta reponse netsurfer, mais je crois que mon problème n'est pas encore resolu.
            déjà pour lancer gnuplot, il fait rien si je met en mode "w", avec "r" ça marche, mais le problème ce que pour lancer l'autre commande
            "plot 'toto.dat' with lines " poff!!!
            j'ai visualisé l'aide en tapant "man popen", je n'ai rien pigé.
            Merci quand même.
            • [^] # Re: gnuplot depuis C

              Posté par  . Évalué à 2.

              Je viens de tester. Le programme complet suivant fonctionne:
              #include <stdio.h>
              main()
              {
                  FILE * f;
                  // Ouverture du shell et lancement de gnuplot
                  f = popen("gnuplot", "w");
                  // exécution de la commande gnuplot
                  fprintf(f, " plot \"toto.dat\" with lines\n");
                  fflush(f);
                  // terminer l'envoi de commandes et fermer gnuplot
                  sleep(100);
                  pclose(f);
              }
              
              Les différences avec l'embryon de programme que je t'avais donné sont:
                - ajout du \n dans à la fin de la commande plot
                - attente (sleep) avant le pclose pour avoir le temps de voir le tracé
              • [^] # Re: gnuplot depuis C

                Posté par  . Évalué à 1.

                Merci netsufer!
                Au fait, ça marche, je te remercie beaucoup , tu m'as vraiment aidé sur ce point, sauf que j 'ai changé un peu le truc "sleep(100)" par l'appuie sur une touche.

                Merci!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.