bsd_signal(3C) bsd_signal(3C)
NAME
bsdsignal - Vereinfachte Signalfunktionen
SYNTAX
#include <signal.h>
void (*bsdsignal(int sig, void (*func)(int)))(int);
BESCHREIBUNG
Die Funktion bsdsignal() bietet eine teilweise kompatible Schnitt-
stelle für Programme, die für frühere Systemschnittstellen geschrieben
wurden (siehe unter ANWENDUNGSZWECK weiter unten).
Der Funktionsaufruf bsdsignal(sig, func) hat Auswirkungen, die fol-
gender Implementierung entsprechen:
void (*bsdsignal(int sig, void (*func)(int)))(int)
{
struct sigaction act, oact;
act.sahandler = func;
act.saflags = SARESTART;
sigemptyset(&act.samask);
sigaddset(&act.samask, sig);
if (sigaction(sig, &act, &oact) == -1)
return(SIGERR);
return(oact.sahandler);
}
Die Bearbeitungsroutine sollte folgendermaßen deklariert werden:
void handler(int sig);
Hierbei ist sig die Signalnummer. Das Verhalten ist nicht definiert,
wenn func eine Funktion ist, für die mehr als ein Argument oder ein
Argument eines anderen Typs erforderlich ist.
RÜCKGABEWERT
Bei erfolgreicher Ausführung gibt bsdsignal() die frühere Aktion für
sig zurück. Andernfalls wird SIGERR zurückgegeben und errno gesetzt,
um den Fehler anzuzeigen.
FEHLER
Siehe unter sigaction(2).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
bsd_signal(3C) bsd_signal(3C)
ANWENDUNGSZWECK
Diese Funktion ist ein direkter Ersatz für die BSD-Funktion signal()
für einfache Anwendungen, die eine Routine zur Signalbearbeitung mit
nur einem Argument installieren. Wird eine BSD-Signalbearbeitungs-
routine installiert, für die mehr als ein Argument erwartet wird, muß
in der Anwendung die Verwendung von sigaction() eingefügt werden. Die
Funktion bsdsignal() unterscheidet sich von der Funktion signal()
dadurch, daß das Flag SARESTART gesetzt ist und SARESETHAND leer
ist, wenn bsdsignal() verwendet wird. Der Status dieser Flags ist für
signal() nicht angegeben.
SIEHE AUCH
sigaction(2), signal(3-ucb), sigaddset(3C), sigemptyset(3C),
signal(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98