strange sigaction ()

Kevin B. Hendricks khendricks at ivey.uwo.ca
Wed Mar 7 02:24:59 EST 2001


Hi,


Try the following, it works for me:

#include <stdlib.h>
#include <stdio.h>
#include <signal.h>

static struct sigaction act;
static void handler (int,siginfo_t *,void *);

int
main ()
{
  act.sa_sigaction=handler;
  act.sa_flags=SA_SIGINFO;
  sigaction (SIGALRM,&act,NULL);
  alarm (1);
  sleep (2);
}

void handler (int x, siginfo_t *s,void *v)
{
    printf ("si_signo   = %d, si_code  = %d, si_errno  = %d\n",s->si_signo,
s->si_code, s->si_errno);
}

[kbhend at localhost kbhend]$ gcc -otest test.c
[kbhend at localhost kbhend]$ ./test
si_signo   = 14, si_code  = 0, si_errno  = 0
[kbhend at localhost kbhend]$


On Tuesday 06 March 2001 06:04, pnilesh at in.ibm.com wrote:
> I am seeing a strange problem with sigaction on powerpc.
>
> static struct sigaction act;
> static void handler (int,siginfo_t *,void *);
> main ()
> {
> sigaction (SIGALRM,&act,NULL);
> alarm (1);
> sleep (2);
> }
>
> void handler (int x, siginfo_t *s,void *v)
> {
>     printf ("si_signo   = %d, si_code  = %d, si_errno  = %d\n",s->si_signo,
> s->si_code, s->si_errno);
> }
>
> This program gives meaningful values on Linux Intel Redhat.
> On Apple Dual G4 PowerPC I am getting junk values
> si_signo = 805464356
> si_errno = 805464640
> si_code = 21
>
> I dont know what is happening.
> Please educate me.
>
> Nilesh
>
>
>

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/






More information about the Linuxppc-dev mailing list