错误:'SIGKILL'未声明(首次使用此功能)

时间:2013-07-04 08:00:12

标签: c fork kill

好吧,我试图做一个简单的功能来不断改变它的PID, 但我明白了:

error: ‘SIGKILL’ undeclared (first use in this function)

这是我的代码:

#include <stdio.h>

int changePID(void) {
        int pid = fork();
        printf(pid);
        sleep(3);
        kill(pid, SIGKILL);
}

    int main(void) {
        while (1) {
            changePID();
            }
}

3 个答案:

答案 0 :(得分:5)

您缺少SIGKILL

的行#include <signal.h>

printf(pid);无法正常工作,因为printf需要char*而你给他一个pid_t

在循环中杀死一个孩子有什么意义?

printf将在父亲中进行segv,因此你永远不会杀死

在儿子,你要杀了

  

当前进程的进程组中的每个进程的pid为0

答案 1 :(得分:2)

您需要添加:

#include <sys/types.h>
#include <signal.h>

当您遇到系统调用问题时,请查看手册页。

答案 2 :(得分:0)

尝试包含

#define <sys/signal.h>