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 :

Acces a fichier


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 130
    Par défaut Acces a fichier
    Bonjour
    Voulant vérifier le lien entre C et gnuplot, en faisant tracer une courbe, le programme test suivant me renvoie sur la commande "sytem(command)" (vers la fin du code) le message suivant

    "Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus"

    L'autre processus doit être mon programme mais alors comment libérer alors que l'ai fermé et réouvert

    .......... Merci pour votre réponse .........

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
      int ret = EXIT_FAILURE;
      char const *gnuname = "simple.1.gnu";
      FILE *f = fopen(gnuname, "w");
      printf (" main 1 \n");
      if (f != NULL)
      {
            printf (" main 2 \n");
        /*
         * Write the control script for GNUplot
         */
        fprintf(f, "# set terminal png transparent nocrop "
                    "enhanced font arial 8 size 420,320\n");
        fprintf(f, "# set output 'simple.1.png'\n");
        fprintf(f, "set key inside left top vertical Right "
                    "noreverse enhanced autotitles box "
                    "linetype -1 linewidth 1.000\n");
        fprintf(f, "set samples 50, 50\n");
        fprintf(f, "plot [-10:10] sin(x),atan(x),cos(atan(x))\n");
        printf (" main 3 \n");
     
        /*
         * Run GNUplot on the control script (for Windows)
         */
        {
           char command[300];
           printf (" main 4 \n");
           const char *gnupath = "\"C:\\Program Files\\gnuplot\\bin\\wgnuplot.exe\"";
           printf (" main 5 \n");
           sprintf(command, "start %s %s", gnupath, gnuname);
           printf (" main 5.1 \n");
           printf("Executing %s...\n", command);
           printf (" main 5.2 \n");
           fclose(f);  
           printf (" main 5.3 \n"); 
           FILE *f = fopen(gnuname, "w");  
           printf (" main 5.4 \n"); 
           system(command);
           printf (" main 6 \n");
        }
        fclose(f);
        ret = EXIT_SUCCESS;
      }
      else
      {
        fprintf(stderr, "Could not create %s.\n", gnuname);
      }
       system("PAUSE");
      return ret;
    }

  2. #2
    Membre éprouvé
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 121
    Par défaut
    Bonjour,

    juste une petite question pourquoi ouvres tu ton fichier en ecriture
    juste avant d'appeler la commande ?
    Surtout que tu ne fais rien d'autre mis a part le fermer juste apres l'appel de cette même commande ?

    Si tu n'as rien d'autre a faire qu'ecrire ta liste d'instruction pour dessinner la courbe :

    1. écris les dedans
    2. ferme ton fichier
    3. Execute ta commande,

    Normalement ton fichier ne devrait plus être utilisé.


    Cordialement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 130
    Par défaut
    Merci

    Je me permets d'abuser de votre compétence
    Ainsi
    Je croyais voir apparaitre la courbe. Il n'en est rien car seul le contenu du fichier se présente ainsi. Que dois-je faire pour voir apparaitre la courbe ?
    Les commandes appliquées directement dans gnuplot donnent les résultats attendus

    # set terminal png transparent nocrop enhanced font arial 8 size 420,320
    # set output 'simple.1.png'
    set key inside left top vertical Right noreverse enhanced autotitles box linetype -1 linewidth 1.000
    set samples 50, 50
    plot [-10:10] sin(x),atan(x),cos(atan(x))

    ........... Merci ...........

  4. #4
    Membre éprouvé
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 121
    Par défaut
    Bonjour,


    Je n'ai jamais utilisé gnuplot de cette facon, mais
    si je comprend bien ton image de sortie va etre sample.1.png

    Si tu veux l'afficher tu peux le faire depuis ton programme.
    En utilisant une lib genre SDL une fois que ta commande a été executé,
    tu dois pouvoir aller cherche l'image.

    SDL est relativement facile a utiliser.
    Le fait de l'ouvrir et de l'afficher dans ton programme te permettra en plus de
    pouvoir travaller dessus.

    Par contre dans ton cas d'utilisation, tu n'es pas vraiment interfacé avec gnuplot.

    Tu dois pouvoir faire des appel directement en c
    essais de regarder de ce coté
    http://ndevilla.free.fr/gnuplot/

    Cordialement

Discussions similaires

  1. Accès à un fichier xml via hibernate
    Par boisdin dans le forum Hibernate
    Réponses: 12
    Dernier message: 20/01/2005, 14h54
  2. Chemin d'accès des fichiers dans des sous rep
    Par Le Veilleur dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/11/2004, 14h37
  3. Restreindre l'accès des fichiers..
    Par Neilos dans le forum Windows
    Réponses: 6
    Dernier message: 25/08/2004, 00h22
  4. [Tomcat]Droit d'accès aux fichiers créés par une servlet
    Par loulouleboss dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 15/07/2004, 14h32
  5. [Réseau] Autorisations d'accès aux fichiers
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 19/05/2004, 13h43

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