C standard library :: signal
signal - sæt en handler for et signal
void (*signal(int sig, void (*handler)(int)))(int)
Denne funktion vælger en af tre veje hvor modtagelsen af et signalnummer sig skal håndteres. Hvis parameter handler er SIG_DFL vil signalet som standard. Hvis handler er SIG_IGN vil signalet ignoreres. Den tredie vej er at applikationen selv giver en peger til en funktion der skal kaldes af systemet når et signal optræder. En sådan funktion kaldes en "signal handler".
Hvis et signal opstår ved kald til abort(), raise(), [CX] kill(), pthread_kill() eller sigqueue() funktioner skal signal handler ikke kalde raise() funktionen.
Returværdi
Hvis kaldet er accepteret skal signal() returnere værdien af handler for det sidste kald til signal() for det specificerede signal sig. Ellers returneres SIG_ERR og errno sættes til fejlen.
Fejl
Funktion signal() skal fejle, hvis:
- [EINVAL]
- [CX] Parameteren sig er ikke et valid signalnummer eller et forsøg på at indfange ikke signal der ikke kan fanges eller ignorere et signal der ikke kan ignoreres.
Funktion signal() kan fejle, hvis:
- [EINVAL]
- [CX] Et forsøg på at sætte handler SIG_DFL for et signal der ikke kan indfanges eller ignoreres.