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

  FORUM HardWare.fr
  Programmation
  PHP

  Executer un programme en C via PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Executer un programme en C via PHP

n°1560457
stumi
schumacher
Posté le 15-05-2007 à 08:40:22  profilanswer
 

Bonjour,
Je suis en stage dans un labo de biologie et mon travail est d'executer une application en C réalisé par les étudiants précédents en utilisant du php. Cette application a été réalisée sous linux et doit donc s'executer en mode shell.
De mon côté, j'ai fait des traitements en php pour créer un fichier (appellé extrait de base) qui comme son nom l'indique est un extrait de la base de donnée faite via EasyPHP. D'autre part j'ai enlevé tout ce qui était "interactif" dans le programme en C ; en gros j'ai viré tous les scanf qui me permetté de récupérer des variables, et à la place j'ai mis ses variables en paramètre.
Après avoir légèrement modifié le programme en C, je le compile (avec dev cpp) en mode "Console Application". Au final je récupère donc mon .exe que je devrai pouvoir executer via le PHP  à l'aide de la commande exec.
 
$ret = exec("projet.exe".' '.$fichier.' '.$precision.' '.$choix.' '.$sourisnum,$return,$result);
 
et au final $result vaut -1073741819. Bref un bon code d'erreur que je n'arrive pas à virer depuis hier. J'ai également essayé le shell_exec mais sa ne donne rien. La fonction "system" retourne 1 mais je n'arrive pas à récupérer ce que produit le programme en C.
 
Pourriez vous m'aider svp, la je suis un peu perdu, je vois pas comment je peux faire.
Merci
;)

mood
Publicité
Posté le 15-05-2007 à 08:40:22  profilanswer
 

n°1560467
soju
One shot !
Posté le 15-05-2007 à 09:09:18  profilanswer
 

tente une redirection de flux (en particulier stderr)

n°1560469
zecrazytux
Posté le 15-05-2007 à 09:21:12  profilanswer
 

ton code c marche déja ?
 
pourquoi heberger ça sur du winbouse aussi :o


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1560472
stumi
schumacher
Posté le 15-05-2007 à 09:24:51  profilanswer
 

Pourquoi veux-tu que je redirige le flux d'erreur?  
Le programme en C a été fait par des étudiants en école d'ingé, et il a l'air de correctement marcher (enfin pas totalement sur Mac OS X : Bus error). Le truc c'est que je suis pas bien sûr de la compilation du programme en C déjà (avec dev cpp), j'ai choisi de le mettre en mode "Console Application", mais c'est que j'ai quelques doute envers ce compilo. Est ce que vous pourriez me donner un IDE fiable sur windows, dédié au C (et non pas au C++), et qui utilise MingW comme compilo? (oui je sais j'en demande beaucoup :D).
 
StuM
 
PS: mais normalement c'est pas un shell_exec que je devrai faire pour l'executer??

n°1560476
stumi
schumacher
Posté le 15-05-2007 à 09:28:16  profilanswer
 

Ba c'est hébergé sur du windows car je suis dans un labo du CNRS et donc ici je suis en compagnie de biologiste et non d'acharné du pingouin ^^.  
Mais il y a encore un truc que je capte pas bien. C'est par rapport aux script CGI. Dans mon cas , je suppose que je n'en utilise pas. Mais comment faire pour en utiliser? Est ce qu'on peut éxécuter du C sans script CGI?

n°1560486
stumi
schumacher
Posté le 15-05-2007 à 09:59:55  profilanswer
 

Apparemment mon executable à l'air moisi ... En gros j'ai testé à la main d'executer le programme et lui il me sort :  
'clear' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
--- Construction genealogique ---
- initialisation tableau ....
 
et ça bloque là. Ce qui je comprend pas c'est : où trouve-t-il ce clear? Je ne vois pas du tout ce que c'est...
Mais bon en supposant que mon .exe soit bidon, sur ma page php je devrai voir ses quelques lignes qui s'affichent avant que ça plante (maintenant j'ai un code de retour égal à 1).
Pourriez vous m'indiquer un bon IDE pour windows, ou bien pourriez vous m'expliquer comme faire marcher MingW sans IDE sur windows.
Merci

n°1560490
omega2
Posté le 15-05-2007 à 10:17:07  profilanswer
 

Au hasard, "clear" doit être une commande unix qui permet de vider l'affichage écran.
Vu que c'est le programme C qui merde, il faut que tu poses la question dans la section C/C++.

n°1560491
soju
One shot !
Posté le 15-05-2007 à 10:19:27  profilanswer
 

stumi a écrit :

Pourquoi veux-tu que je redirige le flux d'erreur?

stumi a écrit :

Mais bon en supposant que mon .exe soit bidon, sur ma page php je devrai voir ses quelques lignes qui s'affichent avant que ça plante

tu as ta réponse  
 

n°1560494
zecrazytux
Posté le 15-05-2007 à 10:27:45  profilanswer
 

ahaha énorme
 
clear c'est une commande qui "nettoie" ton terminal
donc sur winbouse... :o
 
j'ai utilisé dev cpp et donc mingw32 pour mon projet perso en éco d'info, le projet devant être multiplateforme.
 
étant vraiment passionné par crosoft, j'ai juste balancé mes sources, foutu les dll dans les prefs du projet et fais un ctrl f11
 
ça marche bien, c'est de l'open source :)
dev cpp est dédié au c et c++, pas c++ seulement !
 
pourquoi as tu besoin de php ?
il te faut un client leger ?
 
y a pas moyen d'heberger ton exe et un apache/php sur une machine dédiée sur un vrai os ?
 
sinon demande a tes gars d'école d'ingé de porter pour windows :'(


---------------
Blog photo/récits activités en montagne http://planetcaravan.net

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

  Executer un programme en C via PHP

 

Sujets relatifs
executer une simple requete sql avec javascript[PHP] problème d'écriture dans un fichier
Que fait mon programme ?[PHP] Recherche Freelance
Editeur PHPBesoin d'aide pour un petit programme de rien... :)
[PHP] Imbrication de méthodes dans une class[Resolu]executer script sur machine distante
téléchargement de fichiers en PHPMettre une image sous une autre en HTML ou PHP
Plus de sujets relatifs à : Executer un programme en C via PHP


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