diff options
Diffstat (limited to 'otherlibs/unix/kill.c')
-rw-r--r-- | otherlibs/unix/kill.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/otherlibs/unix/kill.c b/otherlibs/unix/kill.c new file mode 100644 index 000000000..a552d0931 --- /dev/null +++ b/otherlibs/unix/kill.c @@ -0,0 +1,20 @@ +#include <mlvalues.h> +#include <fail.h> +#include "unix.h" +#include <signal.h> + +extern int posix_signals[]; /* defined in byterun/signals.c */ + +value unix_kill(pid, signal) /* ML */ + value pid, signal; +{ + int sig; + sig = Int_val(signal); + if (sig < 0) { + sig = posix_signals[-sig-1]; + if (sig == 0) invalid_argument("Unix.kill: unavailable signal"); + } + if (kill(Int_val(pid), sig) == -1) + uerror("kill", Nothing); + return Val_unit; +} |