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