Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1595 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Probleme avec la fonction system()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec la fonction system()

n°1501510
Absyn7he
Posté le 10-01-2007 à 20:25:46  profilanswer
 

Bonjour,
 
j'aimerai créer un exécutable en C qui me permette de lancer une application php-gtk.
Normalement l'application php-gtk se lance grace a des ligne de commande du genre :
 

Code :
  1. C:\>cd php-gtk
  2. C:\php-gtk>gtkpath
  3. C:\php-gtk>php demos/phpgtk2-demo.php


 
gtkpath étant un fichier .bat dont le contenu est le suivant :
 

Code :
  1. @ECHO OFF
  2. REM Change this to reflect the absolute path to your PHP-GTK installation directory
  3. REM rather than \php-gtk
  4. REM Open up your commandline and type 'gtkpath' to load the GTK+ 2.6.9 runtime
  5. SET PATH=\php-gtk\gtk+2.6.9


 
J'ai donc fais en C:
 

Code :
  1. #include <stdlib.h>
  2. #include <iostream.h>
  3. int main(int argc,char *argv[])
  4. {
  5.     system("c:/php-gtk/gtkpath" );
  6.     system("c:/php-gtk/php c:/php-gtk/demos/phpgtk2-demo.php" );
  7.     return 0;   
  8. }


 
Le problème vient du fait que j'ai l'impression que mon bousin execute les commandes dans 2 fenetres dos séparées ce qui fait la variable PATH initialisée dans le gtkpath.bat n'est pas "visible" par la deuxieme commande.
 
Auriez vous une solution a ce probleme ?

mood
Publicité
Posté le 10-01-2007 à 20:25:46  profilanswer
 

n°1501517
Elmoricq
Modérateur
Posté le 10-01-2007 à 20:41:36  profilanswer
 

1/ Pourquoi lancer ces exécutions via un programme C ? N'y a-t-il aucune autre solution ?
 
2/ Si pas d'autre solution, soit tu regroupes ces commandes dans un batch que tu lances avec system(), soit tu lances tout ça avec un seul system().

n°1501521
Absyn7he
Posté le 10-01-2007 à 20:48:19  profilanswer
 

Et ca donnerai quoi avec un seul system ?
J'ai essayé mais j'ai pas réussi à trouver la synthaxe.
 
 

Code :
  1. system("c:/php-gtk/gtkpath\nc:/php-gtk/php c:/php-gtk/demos/phpgtk2-demo.php" );

Message cité 1 fois
Message édité par Absyn7he le 10-01-2007 à 20:48:51
n°1501565
Sve@r
Posté le 10-01-2007 à 23:29:10  profilanswer
 

Absyn7he a écrit :

Le problème vient du fait que j'ai l'impression que mon bousin execute les commandes dans 2 fenetres dos séparées ce qui fait la variable PATH initialisée dans le gtkpath.bat n'est pas "visible" par la deuxieme commande.


Exactement - Les deux commandes ne se passent pas dans le même processus et le second n'a pas accès aux variables du premier
 

Absyn7he a écrit :

Et ca donnerai quoi avec un seul system ?
J'ai essayé mais j'ai pas réussi à trouver la synthaxe.
 

Code :
  1. system("c:/php-gtk/gtkpath\nc:/php-gtk/php c:/php-gtk/demos/phpgtk2-demo.php" );



Ptet ça:

Code :
  1. system("c:/php-gtk/gtkpath;c:/php-gtk/php c:/php-gtk/demos/phpgtk2-demo.php" );


Message édité par Sve@r le 10-01-2007 à 23:31:06

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1501691
Emmanuel D​elahaye
C is a sharp tool
Posté le 11-01-2007 à 13:26:52  profilanswer
 

Absyn7he a écrit :

Le problème vient du fait que j'ai l'impression que mon bousin execute les commandes dans 2 fenetres dos séparées ce qui fait la variable PATH initialisée dans le gtkpath.bat n'est pas "visible" par la deuxieme commande.


Normal. Quand tu fais 'system(), tu crées un processus fils dans lequel la variable est créée, mais quand le processus se termine, cette variable est détruite. Le processus père est inchangé.

 

Si tu veux faire un programme en C il faut écrire le code de A à Z, et ne pas chercher à modifier des variables d'environnement (elle ne peuvent qu'être lues en C standard, pour les raisons invoquées ci-dessus).


Message édité par Emmanuel Delahaye le 11-01-2007 à 13:27:53

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Probleme avec la fonction system()

 

Sujets relatifs
[Résolu]Probleme header information[RESOLU]Problème d'execution : NoClassDefFoundError :(
Fonction bloquante et d'attenteFonction FILE, file_get_contents qui marche pas toujours. Help!
[urgent] Probleme balise <head> (dreamweaver)Un rowspan effectué sur deux cellules et problème
[Java] Problème TableModel sous Linux uniquementPRobleme requette SQL
[C] probleme avec fonction system() 
Plus de sujets relatifs à : Probleme avec la fonction system()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR