1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include <signal.h>
- #include <stdbool.h>
- #include <stdio.h>
- #include <unistd.h>
- bool handle_ok = false;
- int count = 0;
- void handler(int sig)
- {
- printf("handle %d\n", sig);
- handle_ok = true;
- count++;
- }
- int main()
- {
- signal(SIGKILL, &handler);
- printf("registered.\n");
- while (1)
- {
-
- printf("Test signal running\n");
- raise(SIGKILL);
- if (handle_ok)
- {
- printf("Handle OK!\n");
- handle_ok = false;
- }
- if (count > 0)
- {
- signal(SIGKILL, SIG_DFL);
- }
- }
- return 0;
- }
|