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 :

Comment compiler et executer un programme à partir d'un autre(programme principal).


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Comment compiler et executer un programme à partir d'un autre(programme principal).
    Salut tous
    Je voudrais savoir comment je peux compiler et executer un programme à partir d'un autre(programme principal).
    En d'autre terme je veux tracer une courbe de fonction entrer par l'utilisateur sans aller à compiler le fichier courbe.cpp(sous Turbo C++ s'il vous plait).
    j'utilise execv("C:\\Tc\\TCC","courbe.cpp") mais ça fais rien.
    Merci beaucoup!

  2. #2
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par demstra
    Salut tous
    Je voudrais savoir comment je peux compiler et executer un programme à partir d'un autre(programme principal).
    En d'autre terme je veux tracer une courbe de fonction entrer par l'utilisateur sans aller à compiler le fichier courbe.cpp(sous Turbo C++ s'il vous plait).
    j'utilise execv("C:\\Tc\\TCC","courbe.cpp") mais ça fais rien.
    Merci beaucoup!
    Mais c'est du C ou du C++

  3. #3
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut
    L'appel a execv est incorrect.
    Le deuxieme argument doit etre de la forme "char *const argv[]" termine par un pointeur NULL.

    Citation Envoyé par man execv
    int execv(const char *path, char *const argv[]);

    The execv() and execvp() functions provide an array of pointers to
    null-terminated strings that represent the argument list available to
    the new program. The first argument, by convention, should point to
    the file name associated with the file being executed. The array of
    pointers must be terminated by a NULL pointer.

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Jack_serious
    L'appel a execv est incorrect.
    Le deuxieme argument doit etre de la forme "char *const argv[]" termine par un pointeur NULL.

    J'ai fait ça mais ça ne fait rien. C'est en C que je le fais .

  5. #5
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    j'utilise execv("C:\\Tc\\TCC","courbe.cpp") mais ça fais rien.
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char *tab[] = {"C:\\Tc\\TCC","courbe.cpp",0};
    execv(tab[0],tab);

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 81
    Points
    81
    Par défaut
    Il existe execl() qui prend en parametre non pas un tableau mais le binaire et ses arguments en dur (si tu passes toujours le meme nombre de parametres).

    Mais pour celui ci il faut lui passer en parametre le chemin de l'executable puis ses arguments, hors le premiere argument et le nom du binaire lui meme.
    Enfin corriger moi si je me trompe

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    les méthodes avec execv, execl ne peuvent pas foonctionner : leur argument est un executable et non un source comme celui mentionné.

    Il faut donc que le fichier argument du execX soit une entité compilée qui prennet comme argument les caractéristiques de la courbe à tracer.

  8. #8
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par demstra
    C'est en C que je le fais .
    ...
    j'utilise execv("C:\\Tc\\TCC","courbe.cpp") mais ça fais rien.
    Du C?
    C'est pas du C++???
    Bizare...

  9. #9
    Membre averti
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 338
    Points
    338
    Par défaut
    Fais ce que t'a proposé Dark_Ebola, il n'y a pas de raison que ça ne marche pas!!!
    Citation Envoyé par Dark_Ebola
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char *tab[] = {"C:\\Tc\\TCC","courbe.cpp",0};
    execv(tab[0],tab);
    ou si tu trouves que c'est plus clair ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    execl("C:\\Tc\\TCC","C:\\Tc\\TCC","courbe.cpp", NULL);

  10. #10
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system ("C:\\Tc\\TCC courbe.cpp");
    c'est trop simple ?
    En espérant que le compilateur s'appelle bien TCC (en majuscule), ce n'est pas plutôt TCC.exe ?
    Et que la syntaxe est la bonne.

  11. #11
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par miron
    Du C?
    C'est pas du C++???
    Bizare...
    aucun rapport tu peux très bien vouloir compiler un code en C++ dans un programme écrit en C !

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par rererere
    les méthodes avec execv, execl ne peuvent pas foonctionner : leur argument est un executable et non un source comme celui mentionné.

    Il faut donc que le fichier argument du execX soit une entité compilée qui prennet comme argument les caractéristiques de la courbe à tracer.

    voilà,je voudrais savoir sur la famille execX pouvait le faire sinon je les utilise avec les executable et ça marche.
    Mais moi je veux compiler et executer en même temps.

    Merci!!!

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 81
    Points
    81
    Par défaut
    un system a qui tu envoie "GCC && ton programme" ?

Discussions similaires

  1. [Débutant] comment compiler et executer un pg ecrit en c++?
    Par ikrame dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/11/2010, 19h30
  2. Executer un programme .py à partir d'un autre programme .py
    Par manaliac dans le forum Général Python
    Réponses: 2
    Dernier message: 24/08/2010, 15h29
  3. Réponses: 3
    Dernier message: 11/07/2008, 15h06
  4. Lancer un .EXE à partir d'un autre programme
    Par Pascal.Alain.B dans le forum Assembleur
    Réponses: 6
    Dernier message: 26/03/2007, 23h53
  5. compilation d'un programme à partir d'un autre programme??
    Par Naruseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/08/2005, 15h05

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