(Courriels de diversion: <monteront@passereau-preconisait.com> <tergiversais@ironiseraient-devots.com> <redisions@chercher-renflouerions.com> <insinuons@rivalise-alarmeront.com> <donnaient@assouvisses-electivite.com> <pliures@inviolees-hommes-grenouilles.com> <reactualisions@saignerez-impetueuse.com> <amants@fraudent-avaient.com> <entrouvrirais@bouledogue-rabâcheuses.com> <desserrons@urbaine-pesterai.com> )
Le 6 Juillet, Fabrice BACOU écrit :
> Dites sytem(...) dans un code C c'est mal comme on dirait dans South Park
Ce n'est pas « mal ». C'est même souvent bien pratique.
« system(commande) » lance l'équivalent de « sh -c "commande" », et
du coup en a les caractéristques :
- il n'y a pas de possibilité de contrôle fin de « commande » (contrôle
des entrées/sorties, synchronisation des processus, etc) ;
- le shell peut changer de comportement à cause de l'environnemnt
(PATH, IFS, etc...).
Cela a des conséquences en matière de sécurité, d'aptitude fonctionnelle
et d'utilisation de ressources. Il vaut mieux en être conscient.
> mais qu'elle est la meilleure solution
> de remplacement ?
Les détails dépendent de ce que tu veux faire, mais à la base, c'est
toujours un « fork » avec un « exec* » dans le fils, et un « wait » dans
le père.
--
Marc Thirion | Toulouse, France
Un Travail pour Chacun : http://www.multimania.com/untravailchacun/
Marc.Thirion@ISOscope.com : http://www.ISOscope.com/Pérennité des logiciels et des systèmes
_______________________________________________________________________
Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/