cs_Guigar
Messages postés105Date d'inscriptionmercredi 12 novembre 2008StatutMembreDernière intervention 8 juin 2011
-
22 janv. 2009 à 07:51
cs_Guigar
Messages postés105Date d'inscriptionmercredi 12 novembre 2008StatutMembreDerniè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
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 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.