Posted to tcl by venks at Tue Dec 16 17:01:56 GMT 2014view raw
- static int
- killCmd (dummy, interp, objc, objv)
- ClientData dummy;
- Tcl_Interp *interp;
- int objc;
- Tcl_Obj *CONST objv[];
- {
- int pid;
- int signal;
- int r;
- if (objc != 3) {
- Tcl_WrongNumArgs(interp, 1, objv, "pid signal");
- Tcl_SetObjResult(interp,Tcl_NewIntObj(1)); /* bad usage */
- return TCL_OK;
- }
- if (Tcl_GetIntFromObj(interp,objv[1],&pid) != TCL_OK) {
- Tcl_SetObjResult(interp,Tcl_NewIntObj(2)); /* not an integer */
- return TCL_OK;
- }
- if (Tcl_GetIntFromObj(interp,objv[1],&signal) != TCL_OK) {
- Tcl_SetObjResult(interp,Tcl_NewIntObj(3)); /* not a signal */
- return TCL_OK;
- }
- if (kill(pid,signal) == 0) {
- Tcl_SetObjResult(interp,Tcl_NewIntObj(0));
- } else { /* HUP=1,CONT=25 */
- Tcl_SetObjResult(interp,Tcl_NewIntObj(errno));
- } /* EINVAL=22,EPERM=1,ESRCH=3 */
- return TCL_OK;
- }