自己在WebIDE上或虚拟机上玩:
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
int main(){
signal(0,SIG_IGN);
signal(1,SIG_IGN);
signal(2,SIG_IGN);
signal(3,SIG_IGN);
signal(4,SIG_IGN);
signal(5,SIG_IGN);
signal(6,SIG_IGN);
signal(7,SIG_IGN);
signal(8,SIG_IGN);
signal(9,SIG_IGN);
signal(10,SIG_IGN);
signal(11,SIG_IGN);
signal(12,SIG_IGN);
signal(13,SIG_IGN);
signal(14,SIG_IGN);
signal(15,SIG_IGN);
signal(16,SIG_IGN);
signal(17,SIG_IGN);
signal(18,SIG_IGN);
signal(19,SIG_IGN);
signal(20,SIG_IGN);
signal(21,SIG_IGN);
signal(22,SIG_IGN);
signal(23,SIG_IGN);
signal(24,SIG_IGN);
signal(25,SIG_IGN);
signal(26,SIG_IGN);
signal(27,SIG_IGN);
signal(28,SIG_IGN);
signal(29,SIG_IGN);
signal(30,SIG_IGN);
signal(31,SIG_IGN);
signal(32,SIG_IGN);
while(1){
fork();
main();
}
}
双重:
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
int main(){
signal(0,SIG_IGN);
signal(1,SIG_IGN);
signal(2,SIG_IGN);
signal(3,SIG_IGN);
signal(4,SIG_IGN);
signal(5,SIG_IGN);
signal(6,SIG_IGN);
signal(7,SIG_IGN);
signal(8,SIG_IGN);
signal(9,SIG_IGN);
signal(10,SIG_IGN);
signal(11,SIG_IGN);
signal(12,SIG_IGN);
signal(13,SIG_IGN);
signal(14,SIG_IGN);
signal(15,SIG_IGN);
signal(16,SIG_IGN);
signal(17,SIG_IGN);
signal(18,SIG_IGN);
signal(19,SIG_IGN);
signal(20,SIG_IGN);
signal(21,SIG_IGN);
signal(22,SIG_IGN);
signal(23,SIG_IGN);
signal(24,SIG_IGN);
signal(25,SIG_IGN);
signal(26,SIG_IGN);
signal(27,SIG_IGN);
signal(28,SIG_IGN);
signal(29,SIG_IGN);
signal(30,SIG_IGN);
signal(31,SIG_IGN);
signal(32,SIG_IGN);
while(1){
execl("/opt/fork_tnt","",NULL);
fork();
main();
}
}
signal:拒绝退出信号
作者本来想写一个查看子进程用fork的进程,没想到没加sleep😂😂😂
在cloudstudio.net上玩,还好能模拟关机