---
name: "gsignal"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gsignal"
---

# gsignal(3)

software signal facility

## NAME

gsignal, ssignal - software signal facility

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <signal.h>
```

**typedef typeof(void (int))  \*sighandler\_t;**

**\[\[deprecated\]\] int gsignal(int** *signum***);**

**\[\[deprecated\]\] sighandler\_t ssignal(int** *signum***, sighandler\_t** *action***);**

Feature Test Macro Requirements for glibc (see [**feature\_test\_macros**(7)](/feature_test_macros/7.md)):

**gsignal**(), **ssignal**():

```
    Since glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 and earlier:
        _SVID_SOURCE
```

## DESCRIPTION

Don't use these functions under Linux. Due to a historical mistake, under Linux these functions are aliases for [**raise**(3)](/raise/3.md) and [**signal**(2)](/signal/2.md), respectively.

Elsewhere, on System V-like systems, these functions implement software signaling, entirely independent of the classical [**signal**(2)](/signal/2.md) and [**kill**(2)](/kill/2.md) 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 **gsignal**() 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 argument *signum*, and returns the value returned by that function. The range of possible values *signum* varies (often 1–15 or 1–17).

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **gsignal**() | Thread safety | MT-Safe |
| **ssignal**() | Thread safety | MT-Safe sigintr |

## STANDARDS

None.

## HISTORY

AIX, DG/UX, HP-UX, SCO, Solaris, Tru64. They are called obsolete under most of these systems, and are broken under glibc. Some systems also have **gsignal\_r**() and **ssignal\_r**().

## SEE ALSO

[**kill**(2)](/kill/2.md), [**signal**(2)](/signal/2.md), [**raise**(3)](/raise/3.md)
