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