11 char *signm[NSIG+1] = { 0,
12 "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", "SIGFPE", "SIGKILL", /* 1-7 */
13 "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", "SIGUR1", "SIGUSR2", /* 8-13 */
16 main(int argc, char **argv)
24 fprintf(stderr, "usage: kill [ -sig ] pid ...\n");
25 fprintf(stderr, "for a list of signals: kill -l\n");
28 if (*argv[1] == '-') {
29 if (argv[1][1] == 'l') {
31 for (signo = 1; signo <= NSIG; signo++)
33 printf("%s ", signm[signo]);
40 } else if (isdigit(argv[1][1])) {
41 signo = atoi(argv[1]+1);
42 if (signo < 0 || signo > NSIG) {
43 fprintf(stderr, "kill: %s: number out of range\n",
48 char *name = argv[1]+1;
49 for (signo = 1; signo <= NSIG; signo++)
51 !strcmp(signm[signo], name)||
52 !strcmp(signm[signo]+3, name)))
54 fprintf(stderr, "kill: %s: unknown signal; kill -l lists signals\n", name);
65 if ((**argv<'0' || **argv>'9') && **argv!='-')
67 res = kill(pid = atoi(*argv), signo);