kill
- 功能:发送信号
- 原型:
int kill(pid_t pid, int sig);
- 参数:
1)pid
a. >0:给指定的进程发送信号
b. =0:给同进程组的所以进程发送信号
c. =-1:给所有有权限(能发送信号)的进程发送信号,除了 init(1) 进程
d. <-1:给指定进程组的进程发送
2)signo - 返回值:
成功:返回0
失败:返回-1,并会设置errno - 补充:
raise:给当前进程发信号(自己给自己发)
int raise(int sig); // 等价于kill(getpid(), signo)
成功:返回0
失败:返回非0 - DO
#include <func.h>
int main(int argc, char* argv[]) {
if (argc < 3) {
error(1, 0, "Usage: %s signo pid…", argv[0]);
}
int signo;
sscanf(argv[1], "%d", &signo);
for (int i = 2; i < argc; i++) {
pid_t pid;
sscanf(argv[i], "%d", &pid);
if (kill(pid, signo) == -1) {
error(0, errno, "kill(%d, %d)", pid, signo);
}
}
return 0;
}