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