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