- 论坛徽章:
- 0
|
- #include <signal.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <setjmp.h>
- #include <signal.h>
- int jn=0;
- jmp_buf position;
- void jmp_func1()
- {
- printf("get the signal for %d times\n",++jn);
- longjmp(position,1);
- }
- void jmp_func2()
- {
- longjmp(position,2);
- }
- int
- main()
- {
- pid_t pid = getpid();
- signal(SIGUSR1,jmp_func1);
- signal(SIGUSR2,jmp_func2);
- setjmp(position); //1
- sleep(1);
- kill(pid,SIGUSR1);
- }
复制代码
为何只print"get the signal for 1 times"进程就退出?
当收到SIGUSR1信号就执行 jmp_func1
返回到setjmp后怎么再发kill信号就没用了吗? |
|