From 59fbad21c96727767a68ca6c8c4c5a8fad58f7d5 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Thu, 12 Mar 2020 20:47:29 -0500 Subject: actually kill something --- kill.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'kill.c') diff --git a/kill.c b/kill.c index 31cc706..777f531 100644 --- a/kill.c +++ b/kill.c @@ -20,6 +20,8 @@ #include "sh.h" #include #include +#include +#include #include #include @@ -95,7 +97,20 @@ int kill_main(int argc, char *argv[]) return 0; } - printf("%s\n", signame); + if (argc <= optind) { + fprintf(stderr, "kill: missing operand\n"); + return 1; + } + + int pid = atoi(argv[optind]); + for (size_t i = 0; i < nsigs; i++) { + if (!strcmp(signame, ksigs[i].name)) { + if (kill(pid, ksigs[i].num) != 0) { + perror("kill"); + } + } + } - return 0; + fprintf(stderr, "kill: invalid signal '%s'\n", signame); + return 1; } -- cgit v1.2.1