-1

好吧,我试图做一个简单的函数来不断改变它的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();
            }
}
4

3 回答 3

6

你错过#include <signal.h> 了 SIGKILL的行

printf(pid);不会工作,因为 printf 需要 achar*而你给他一个pid_t

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

printf 将在父亲中进行 segv,因此您将永远无法杀死

你要杀了儿子

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

于 2013-07-04T08:08:13.507 回答
2

您需要添加:

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

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

于 2013-07-04T08:06:55.563 回答
0

尝试包括

#define <sys/signal.h>
于 2013-07-04T08:08:14.803 回答