begin process at 2012 05 29 11:50:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

fork+exec ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fork+exec ?

mardi 27 juillet 2004 à 15:35:37 | fork+exec ?

garslouche

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 :

int main()
{
int pid = fork();

if ( pid == -1 )
{
fprintf( stderr, "Erreur\n" );
return (-1);
}

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
mardi 27 juillet 2004 à 19:30:32 | Re : fork+exec ?

Anacr0x

SI tu utilise Qt, QProcess suffit

tu lance ta commande, puis tu connect le signal processExited() pour savoir quand il finit. Et la tu ferme.
mardi 27 juillet 2004 à 21:27:31 | Re : fork+exec ?

Anacr0x

SI tu utilise Qt, QProcess suffit

tu lance ta commande, puis tu connect le signal processExited() pour savoir quand il finit. Et la tu ferme.
mardi 27 juillet 2004 à 21:58:14 | Re : fork+exec ?

Anacr0x

SI tu utilise Qt, QProcess suffit

tu lance ta commande, puis tu connect le signal processExited() pour savoir quand il finit. Et la tu ferme.
mercredi 28 juillet 2004 à 08:05:59 | Re : fork+exec ?

garslouche

Mais avec QProcess mon process n'est pas le process parent

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
jeudi 29 juillet 2004 à 18:51:00 | Re : fork+exec ?

Anacr0x

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...)
jeudi 29 juillet 2004 à 21:08:57 | Re : fork+exec ?

garslouche

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


Cette discussion est classée dans : prog, lance, pid, fork, exec


Répondre à ce message

Sujets en rapport avec ce message

Passer un code Unix sous Windows (problème avec fork) [ par nepomuk ] Je cherche à passer ce code sous windows :pid_t pid;pid=fork(); switch (pid){ case '0' : Envoi_carte(Text); break; case default HOW TO:PID & com prog & up et DL [ par youpiyoyo ] Ce post pourrait aussi bien etre dans la rubrique réseaux que system.mais bonvoici mes questions j'aurai tout d'abord besoin d'un truc:comment faire p [C/Linux]problème de fork wait [ par rt15 ] Bonjour, Le code en fin du message produit la sortie suivante : Creation du fils debut attente du fils fin de l'attente du fils Fin du fils Alors que Récupérer le pid lors d'un double fork() [ par tinram ] Bonjour,    J'écris une interface graphique pour controler jack, un serveur de son sous nux, et j'ai un ptit problème. Pour lancer jack, je passe par Un shell qui lance un prog C [ par soulkeum ] Bonjour,je dois modifier un programme qui existe , pour qu'il recoit un paramateres en entrée.ce parametre est donnée par un shell unix,  par exemple  prob ecriture dans un fichier [ par aardman ] salut,j'utilise dans un prog la fonction fopen pour creer et ecrire dans un fichier texte.Quand je lance mon prog en double cliquant, ca marche bien.M Fork langage C [ par lozxxx ] Bonjour, je suis débutant en programmation j aimerais savoir comment créer un programme père qui crée 2 fils, chaque fils crée deux fils, chaque proce code matlab pouR PID [ par Bamboutcha1790 ] salut j'ai un code matlab de regulation PID telle qu'on lit les donnees d'une carte d'acquisition PCI-DAS 1002 puis on effectue la correction PID. je Diffusion d'un programme C++ [ par ltillier ] Bonjour, J'espère que je poste au bon endroit. Voilà j'ai fait un programme sous Visual C++ 6.0 (infligé par ma boîte mais qui devrait me faire passer pb de taille de fichier avec dev c++ [ par Freeman2222 ] Bonjour ! Je débute en cpp et j'ai pris dev-cpp. J'ai fait une petit prog d'une vingtaine de lignes avec comme seule include iostream. Le pb c'est qu'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales