1/* Ltrace Test : signals.c.
2   Objectives  : Verify that ltrace can trace user defined signal.
3   This file was written by Yao Qi <qiyao@cn.ibm.com>. */
4
5#include<stdio.h>
6#include<signal.h>
7#include <sys/types.h>
8
9#define LOOP	20
10
11void
12handler(int signum,siginfo_t *info,void *act)
13{
14}
15
16int
17main ()
18{
19  struct sigaction act;
20  union sigval mysigval;
21  int i;
22  int sig;
23  pid_t pid;
24
25  mysigval.sival_int=0;
26  sig = SIGUSR1;
27  pid=getpid();
28
29  sigemptyset(&act.sa_mask);
30  act.sa_sigaction=handler;
31  act.sa_flags=SA_SIGINFO;
32
33  if(sigaction(sig,&act,NULL) < 0)
34    {
35      printf("install sigal error\n");
36    }
37
38  for(i=0; i< LOOP; i++)
39    {
40      usleep(100);
41      sigqueue(pid,sig,mysigval);
42    }
43  return 0;
44}
45