garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 2015
-
27 juil. 2004 à 15:35
garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 2015
-
29 juil. 2004 à 21:08
Bonjour,
je bosse sous Linux (g++) avec Qt (mais du C ou du C++ standard peut très bien faire l'affaire) et voudrais que mon programme lance un autre programme (par exemple une calculatrice) en étant parent de celui-ci.
Par exemple mon prog lance la calculette et continue de tourner. Quand on ferme mon prog la calculatrice doit être détruite aussi.
J'ai essayé avec fork et execve sans succes mais peut-être m'en suis-je mal servi ?
Mon prog de test :
if ( pid )
{
execve("/bin/ls", 0, 0);
}
else
{
printf("c'est le pere\n");
while(1){}
}
}
Mais le listing ne s'affiche pas (et si jamais je lance qqc de graphique comme le calculette -> segmentation fault).
En plus ça me fait un processus qui tourne derrière et que je ne sais pas arreter...
Heeeelp... pliz
On ne force pas une curiosité, on l'éveille. .................................................Daniel Pennac
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 29 juil. 2004 à 18:51
ah... désolé, je ne savais pas
Mais c'est réelement important ? je ne voit pas spécialement ce que ca apporte vu que QProcess te permet de garder le controle (mais javoue que je suis pas spécialement compétant dans ce domaine...)
garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 20151 29 juil. 2004 à 21:08
Finalement j'ai réussi avec fork+execv
L'avantage d'être parent d'un autre process c'est que si le père meurt il tue ses enfants.
Par exemple en cas de plantage du père, les processus qu'il a créé ne continuent pas à exister et à travailler pour rien.
Par exemple un prog de type explorer. Il utilise un processus qui indexe tous les fichiers du disque en parallèle (processus fils). Si le père meurt il faut que l'indexation s'arrete aussi (sinon le processeur va etre ralenti pour rien).
Je reconnais que les exemples sont rares mais en l'occurrence j'en avais vraiment besoin
On ne force pas une curiosité, on l'éveille. .................................................Daniel Pennac