下面有一个简单的程序,它接受一个 HUP 并继续执行 execv。问题是当执行 execv 调用时,代码从 HUP 所在的地方继续。我想要,在 execv 之后,代码必须从 main 退出,而不是从 main 的开头重新开始。
char* a;
char** args;
void hup_func(){
printf("aaaa\n");
if(execv(a,args))
printf("bbb\n");
}
int main(int argc,char* argv[]){
signal(SIGHUP,hup_func);
args=argv;
a=args[0];
printf("%s\n",a);
while(1){
printf("test\n");
sleep(10);
}
return 0;
}
该程序的名称是 deneme1。代码的输出是我发送 HUP 的时候;
./deneme1
test
test
aaa
bbbb
test.
但是我想要它,当我发送 HUP 时,它必须从 main 开始。像那样
./deneme1
test
test
aaa
bbb
./deneme1
test
...
我希望它在 HUP 之后返回到 main 的开头,而不是之前的位置