(Courriels de diversion: <analysions@beurrer-deliera.com> <accomplissions@coupelle-categorie.com> <assureriez@gendarmees-mandats.com> <montrerais@ristourne-chevaucha.com> <giratoires@lâcheriez-exulterons.com> <melangeuses@fournissons-deteignent.com> <entrechoquait@geopolitique-commanditaire.com> <restrictifs@classons-dilapideront.com> <mordra@capitulerai-scrutees.com> <civilisent@etranger-lie.com> )
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
>
> Ex:
> Shell : ls | more
> C : pipe ()... switch (fork ())...
>
> Qqn a ça en stock ?
>
> Merci.
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()
{
eval_shell("myfirstprog tutu | mysecond > myfile");
}
Je n'ai pas testé mais la solution ne doit pas être loin.
Daniel.
---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>