EDIT : LIRE MON 2EME POST AVANT TOUT. DESOLE !!
Bonjour,
je souhaite executer tout un programme que j'ai écrit en C via php (je souhaite ensuite récuperer ses sorties pour faire une mise a jour d'une base de donnée).
Mais voilà, exec, shell_exec & tout le reste ne marche pas.
J'ai fait un petit diagnostic :
marche
marche, yo étant un programme balourd qui retourne "yo"
echo exec("./DigEnz -h"); // censé afficher l'aide
ne marche pas. DigEnz étant ce fameux programme que j'ai codé. Il marche parfaitement en dehors du contexte php et je lui ai mis les pleins droits à l'utilisateur apache ainsi que son groupe.
Quand je dis marche pas, aucune valeure n'est retournée sauf un 1 si je tente de le lancer via system et regarde son 2eme argument.
Du coup j'ai voulu tenter d'executer petit bout par petit bout le contenu de ce DigEnz.
Il utilise une libraire externe nomée acnuc et sans doute que le problème viendrait de là.
Donc dèrière un executable disons yo2.c dont voici la teneur :
1 2 3 4 5 6 7 8 9 10
|
#include "dir_acnuc.h" // ===> la fameuse librairie
#include <stdio.h>
#include <stdlib.h>
#include <search.h>
#include <regex.h>
int main(int argc, char **argv) {
printf("\nyo\n");
} |
que je compile comme il faut ( gcc -o yo2 yo2.c -I/usr/local/acnuc/lib/ -L/usr/local/acnuc/lib/ -lcacnuc) pusiqu'il marche dans un terminal
et bien ça marche 
Mais si j'ajoute dans le main :
1 2 3 4 5 6 7 8 9 10 11
|
#include "dir_acnuc.h" // ===> la fameuse librairie
#include <stdio.h>
#include <stdlib.h>
#include <search.h>
#include <regex.h>
int main(int argc, char **argv) {
acnucopen(); // ===> le coupable
printf("\nyo\n");
} |
qui est une fonction de cette librairie, ça ne marche plus (systeme donne 1 comme valeur de retour et pas de "yo" qui s'affiche). 
Normalement cette fonction devrait avoir besoin de 2 variables d'environnement, mais quand je lance dans un terminal ce programme à partir d'un utilisateur pour lequel ces variables ne sont pas définies, le programme affiche quand même yo ...
Est ce que vous comprennez quelque chose?
J'aurais beaucoup de chance de tomber sur un pro du C et du php à la fois qui puisse me répondre mais bon je commence à craquer ça fait pas mal de temps que je trimme dessus.
Merci d'avance, Yan
PS : là je part manger mais dès les 14h30 je répondrais à toutes les questions, même indiscrètes si vous voulez
Partager