2012-01-06 87 views
1

我正在使用kill函数来kill一个进程。但是,返回-1和perror显示“无效参数”。如果阅读kill手册,则表示如果提供了错误的信号值,则会发生此错误。我通过或SIGKILL,像这样kill(SIGKILL, pid)kill函数返回无效参数

那么它为什么会给出无效的参数错误。请注意,调用kill函数的进程是我们试图杀死的进程的子进程。

+1

从@ CarlNorum的答案,这似乎只是你翻转你的论点... – fge 2012-01-06 19:08:23

回答

5

kill反其道而行之。从man page

int kill(pid_t pid, int sig); 

既然你传递的PID到位信号数量,反之亦然,这是非常有可能是它们中的至少一个将是一个无效的参数作为perror告诉你的。

+0

誓言!我在做什么愚蠢的错误:(! – MetallicPriest 2012-01-06 22:05:53

2

kill(SIGKILL, pid);应该是kill(pid, SIGKILL);

man 2 kill