我正在使用kill
函数来kill
一个进程。但是,它返回-1和perror
显示"无效参数"。阅读kill
的手册,它表示如果提供了错误的信号值,则会发生此错误。我正在通过-9
或SIGKILL
,就像kill( SIGKILL, pid )
一样。
那为什么它会给出无效的参数错误。请注意,调用kill
函数的进程是我们尝试杀死的进程的子进程。
答案 0 :(得分:5)
kill
反过来采用其论点。来自man page:
int kill(pid_t pid, int sig);
由于您传递PID代替信号编号,反之亦然,因为perror
告诉您,其中至少有一个很可能是无效参数。
答案 1 :(得分:2)
您的kill( SIGKILL, pid );
应为kill(pid, SIGKILL);
man 2 kill