Création programme fils sans fork

cs_Guigar Messages postés 105 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 8 juin 2011 - 22 janv. 2009 à 07:51
cs_Guigar Messages postés 105 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 8 juin 2011 - 21 févr. 2011 à 08:11
Bonjour a tous

je voudrais faire part de mon expérience perso et ne sachant ou poster je le met ici

je vais vous explique en quelquesligne comment creer un programme Fils et pouvoir le fermer a volonter sans utiliser Fork, exec, wait, et pid.

Ma solution est peut etre barbare mais elle a au moins l'avantage de ne tenir que sur 2 ligne sans avoir a se "prendre " la tete (uniquement pour les débutant)

voila la chose suivante :

quand on veut lancer une application externe a C++ sans utiliser exec** et fork il faut utiliser system, mais avec une syntaxe particuliere
en C on coderai comme ca : system("nedit&") j'insite sur le "&", qui ici implicitement veut dire "je souhaite ouvrir nedit dans un programme FILS". En effet essayer sur la console de taper nedit&, cela va ouvrir nedit mais vous garder la main sur la console. Pourquooi alors nedit est il fils de la console ? Tout simplement parce que si vous quittez la console, nedit se fermera (contrairement a windows, si vous taper notepad, cela creera un programme indépendant et notepad restera ouvert meme si vous fermez la console)

comment fermet ce programme en C maintenant ?? Tout simplement en tapant system("pkill nedit") Pkill fonctionne comme kill sauf qu'il ne prends pas en parametre le PID mais le nom du programme.

Donc deux choses a retenir :
ouverture du fils : system("nomprogramme&")
fermeture du fils : system("pkill nomprogramme")

j'espere que cela va en aider plus d'un

ps : que pensez vous de mes explications ? Claire pas claire

2 réponses

cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
15 févr. 2011 à 10:06
system n'a rien avoir avec fork et exec, le syscall qui se raproche le plus du fork c'est clone. system vas juste lancer un shell qui vas lancer ta commande. Tandis que fork vas dupliquer ton process et continuer son execution dans le pere et dans le fils au meme endroit.
0
cs_Guigar Messages postés 105 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 8 juin 2011
21 févr. 2011 à 08:11
jolie déterrage !!!!! mais enfin merci quand meme, mais j'avais déja trouvé (depuis le temps)
0