📄 kill.c
字号:
#include "lib.h"#include <fcntl.h>#include <unistd.h>#include <signal.h>#include <string.h>#include <stdio.h>#include <errno.h>static intnote(int pid, char *msg, char *fmt){ int f; char pname[50]; sprintf(pname, fmt, pid); f = open(pname, O_WRONLY); if(f < 0){ errno = ESRCH; return -1; } if(msg != 0 && write(f, msg, strlen(msg)) < 0){ close(f); errno = EPERM; return -1; } close(f); return 0;}intkill(pid_t pid, int sig){ char *msg; int sid, r, mpid; if(sig == 0) msg = 0; else { msg = _sigstring(sig); if(msg == 0) { errno = EINVAL; return -1; } } if(pid < 0) { sid = getpgrp(); mpid = getpid(); setpgid(mpid, -pid); r = note(mpid, msg, "/proc/%d/notepg"); setpgid(mpid, sid); } else if(pid == 0) r = note(getpid(), msg, "/proc/%d/notepg"); else r = note(pid, msg, "/proc/%d/note"); return r;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -