bug-glibc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gsignal and ssignal


From: Andries . Brouwer
Subject: gsignal and ssignal
Date: Sun, 25 Aug 2002 19:28:20 +0200 (MEST)

The glibc manual says about gsignal and ssignal:
"provided only for compatibility with SVID".

However, the provided functions are not at all compatible
with SVID.

So, the manual is broken, and probably the library is broken.

A moment ago I wrote a man page:

=================================================================
NAME
       gsignal, ssignal - software signal facility

SYNOPSIS
       #include <signal.h>

       typedef void (*sighandler_t)(int);

       int gsignal(signum);

       sighandler_t ssignal(int signum, sighandler_t action);

DESCRIPTION
       Don't  use these functions under Linux.  Due to a historiĀ­
       cal mistake, under Linux these functions are  aliases  for
       raise() and signal(), respectively.

       Elsewhere, on SYSV-like systems, these functions implement
       software signalling, entirely independent of the classical
       signal  and kill functions. The function ssignal() defines
       the action to take when the software  signal  with  number
       signum is raised using the function gsignal(), and returns
       the previous such action or SIG_DFL.  The  function  gsigĀ­
       nal()  does  the  following:  if  no action (or the action
       SIG_DFL) was specified for signum, then  it  does  nothing
       and  returns  0.   If the action SIG_IGN was specified for
       signum, then it does nothing and returns 1.  Otherwise, it
       resets the action to SIG_DFL and calls the action function
       with parameter signum, and returns the value  returned  by
       that function.  The range of possible values signum varies
       (often 1-15 or 1-17).

CONFORMING TO
       SVID2, XPG2.  These functions are available under AIX, DG-
       UX,  HPUX,  SCO, Solaris, Tru64.  They are called obsolete
       under most of these systems, and are  broken  under  Linux
       libc  and  glibc.   Some systems also have gsignal_r() and
       ssignal_r().

SEE ALSO
       kill(2), signal(2), raise(3)
=================================================================

Andries




reply via email to

[Prev in Thread] Current Thread [Next in Thread]