(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/