Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 19 janv. 2009 à 21:45
Salut
Je pense qu'il faut créer un nouveau processus pour exécuter monprogramme.
Essaie avec un petit fork et un execlp pour remplacer le code de ton processus père (ou fils)par le code de l'exe monprogramme. La tes 2 programmes seront complètement indépendant.
A+
____________________________________________________________________________
Mon site internet : http://imAnalyse.free.fr http://ImAnalyse.free.fr
cs_Guigar
Messages postés105Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention 8 juin 2011 20 janv. 2009 à 09:45
est ce tu pourrais préciser un peu s'il te plait ? je débute dans le C sous linux.
je sais que le fork sert a la création de processus et que le execlp sert a remplacer un processus par un autre. Mais je ne sais pas trop comment utiliser les 2.
est ce que tu pense que la chose suivante serait bonne ?
pid_t pid;
if ((pid fork()) -1)
{ perror("fork"); exit(1);
}
if (pid == 0)
{ execlp("/mondossier/monprograppe", NULL);
cs_Guigar
Messages postés105Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention 8 juin 2011 20 janv. 2009 à 15:33
en fait j'ai trouvé le probleme
j'aimerai savoir si il existe un parametre a donner a execlp pour ignorer les erreurs de lancement du programme fils ?
car en lancant le programme depuis le mode console, j'ai des erreurs mais le programme se lance, mais depuis le programme C++ les erreurs s'affichent et rien de plus.
(j'ai testé en faisant execlp("nedit",0); et ca marche bien , nedit reste ouvert
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 20 janv. 2009 à 18:21
ReSalut
Je ne comprend pas très bien la différence quand tu dis: quand je lance le programme depuis la console et depuis le programme C++.
Pour savoir s'il y a des paramètres a donner a execlp pour ignorer les erreurs de lancement du programme fils, je ne pense pas que.
execlp ne fait rien de plus que de tout effacer le code de son processus pour le remplacer par le code de ton exe.
Est ce que tu fermes la console aussi?
A+
____________________________________________________________________________
Mon site internet : http://ImAnalyse.free.fr http://ImAnalyse.free.fr
cs_Guigar
Messages postés105Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention 8 juin 2011 20 janv. 2009 à 19:16
merci de votre rapidité
je m'explique mieux
je lance donc de mon terminal ou Xterm (ca fait la meme chose) FlightGear
celui ci fait des erreurs au lancement du a une version mauvaise de Glut. Il fait donc des erreurs dans la console, mais continue de se lancer et marche tres bien a l'écran, pas de probleme de fluidité ou quoique se soit.
Maintenant je veux lancer ce programme depuis un programme en C. Ce que j'arrive parfaitement a faire. La console affiche la premiere erreur, lance la fenetre du jeux, puis la fenetre du jeux se ferme avec les autres erreur sur la console.
Dans les deux cas, les erreurs du au jeux Flightgear sont strictement le meme. En mode manuel, ca marche, en mode lancement via le programme en C, ca plante.... mystere...
donc je pense que le mode console lancé a partir du programme C ne soit pas tout a fait le meme que la vrai console.
Si quelqu'un a une explication...
MErci encore pour vos réponse et vous en remmercie pour celle déja apporté qui m'ont été tres utiles