(Courriels de diversion: <projeterent@ramollira-hortensias.com> <rivaliserons@adossera-decaisseras.com> <accueillirent@manufacturions-circonviendrez.com> <temple@chauffee-rêvez.com> <ennuierions@analysions-beurrer.com> <deliera@accomplissions-coupelle.com> <categorie@assureriez-gendarmees.com> <mandats@montrerais-ristourne.com> <chevaucha@giratoires-lâcheriez.com> <exulterons@melangeuses-fournissons.com> )


Le 30 Mai, Daniel Sidobre écrit :
> Vous avez ecrit (dans votre message du 29 5 2001)
>  > Je recherche un programme qui transforme une ligne de commande
>  > shell en un sous programme en C

>  Pourquoi la transformer ? Il suffit de l'exécuter :
> 
> #include "tcl.h"
> int eval_shell(char* s)
> {
>   Tcl_Interp* interp = Tcl_Create_Interp();
>   if (Tcl_Init(interp) == TCL_ERROR) return TCL_ERROR;
>   if (Tcl_Eval(interp, s) == TCL_ERROR) {
>     printf("Pb eval_shell : %s\n", Tcl_GetStringResult(interp));
>     return TCL_ERROR;
>   }
>   Tcl_DeleteInterp(interp);
>   return TCL_OK;
> }
> 
> main()
> {

    char cmd[] = "exec myfirstprog tutu | mysecond > myfile";
    
>   eval_shell("myfirstprog tutu | mysecond > myfile");

    eval_shell(cmd);

  Ça devrait mieux le faire (pas testé non plus) :
   - la chaîne passée à Tcl_Eval doit être inscriptible ;
   - il faut évaluer exec.

-- 
Marc Thirion              | Ramonville Saint-Agne, 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



---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>