Posted to tcl by GPS at Sat Jun 16 12:02:17 GMT 2007view raw
- int
- sys_exec ( TCL_OBJ_CMD_ARGS ) {
- char **argv;
- int argvOffset = 0;
- int objcOffset = 1;
- if (objc < 2) {
- Tcl_WrongNumArgs (interp, 1, objv, "program ?arg ...?");
- return TCL_ERROR;
- }
- argv = (char **) Tcl_Alloc (sizeof (char *) * objc);
- while (objcOffset < objc) {
- argv[argvOffset] = Tcl_GetString (objv[objcOffset]);
- ++argvOffset;
- ++objcOffset;
- }
- argv[argvOffset] = NULL;
- if (-1 == execvp (argv[0], argv)) {
- Tcl_SetResult (interp, (char *)Tcl_PosixError (interp), TCL_VOLATILE);
- Tcl_Free ((char *)argv);
- return TCL_ERROR;
- }
- Tcl_SetResult (interp, "execv failed with an unknown error. This shouldn't be reached.", TCL_STATIC);
- return TCL_ERROR;
- }