- 论坛徽章:
- 3
|
nblgjc:~ # cat test_SIGUSR1.c
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void func(int sig)
{
static int x=0;
x++;
if(x>10) {
printf("OVER\n");
exit(0);
}
printf("test\n");
}
int main()
{
struct sigaction sigact;
sigact.sa_handler = func;
sigact.sa_flags=0;
sigemptyset(&sigact.sa_mask);
sigaction(SIGUSR1,&sigact,NULL);
while(1) {
pause();
}
}
nblgjc:~ # gcc test_SIGUSR1.c -o test_SIGUSR1
nblgjc:~ # ./test_SIGUSR1 &
[1] 5276
nblgjc:~ # for((i=0;i<11;i++));do killall -s SIGUSR1 test_SIGUSR1; sleep 1;done;
test
test
test
test
test
test
test
test
test
test
OVER
[1]+ Done ./test_SIGUSR1
nblgjc:~ # |
|