#include #include #include int main(int argc, char **argv) { if (argc != 4) { fprintf (stderr, "Usage: %s haystack needle str\n", argv[0]); return (1); } char *haystack = argv[1]; char *needle = argv[2]; char *str = argv[3]; char cmdlen = strlen("regsub -all {") + strlen(needle) + strlen("} {") + strlen(haystack) + strlen("} {") + strlen(str) + strlen("}") + 1; char *expr = malloc (cmdlen); snprintf (expr, cmdlen, "regsub -all {%s} {%s} {%s}", needle, haystack, str); Tcl_Interp *interp; interp = Tcl_CreateInterp (); Tcl_Eval (interp, expr); printf ("%s\n", Tcl_GetStringResult (interp)); Tcl_DeleteInterp (interp); free (expr); return (0); }