Executer un programme en C via PHP

Executer un programme en C via PHP - PHP - Programmation

Marsh Posté le 15-05-2007 à 08:40:22    

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
;)

Reply

Marsh Posté le 15-05-2007 à 08:40:22   

Reply

Marsh Posté le 15-05-2007 à 09:09:18    

tente une redirection de flux (en particulier stderr)

Reply

Marsh Posté le 15-05-2007 à 09:21:12    

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
Reply

Marsh Posté le 15-05-2007 à 09:24:51    

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??

Reply

Marsh Posté le 15-05-2007 à 09:28:16    

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?

Reply

Marsh Posté le 15-05-2007 à 09:59:55    

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

Reply

Marsh Posté le 15-05-2007 à 10:17:07    

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++.

Reply

Marsh Posté le 15-05-2007 à 10:19:27    

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  
 

Reply

Marsh Posté le 15-05-2007 à 10:27:45    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed