C standard library :: signal
sigprocmask - management af blokerede signaler
Denne funktion kan eksaminerede eller ændre en signalmaske.
Hvis parameteren set ikke er en nul-peger peger den på et sæt at signaler som skal bruges til at ændre det aktuelle blokerede sæt af signaler.
Parameteren how indikerer måden på hvilken sættet skal ændres, applikationen skal sikre den indeholder en af følgende:
- [SIG_BLOCK]
- Det resulterende sæt skal være fællesmængden af aktuel sæt og set.
- [SIG_SETMASK]
- Det resulterende sæt skal være set.
- [SIG_UNBLOCK]
- Det reulterende sæt skal være foreningsmængden af aktuel sæt og komplementærsættet af set.
Hvis parameteren oset ikke er en nul-peger vil den forrige maske blive gemt i oset. Hvis set er en nul-peger vil værdien af parameteren how være uden betydning og signalmasken forbliver uændret, således kan kaldet bruges til en forespørgsel på aktuelle blokerede signaler.
Hvis der er ventende ikke-blokerede signaler efter kaldet til sigprocmask() vil mindst et af disse signaler leveres før kaldet til sigprocmask() returnerer.
Det er ikke muligt at blokerede de signaler der ikke kan ignoreres. Dette vil blive påtvunget at systemet uden at dette forårsager en fejl.
Hvis en af signalerne SIGFPE, SIGILL, SIGSEGV eller SIGBUS er genereret medens de er blokere vil resultater være uvist, med mindre signalet var genereret af kill(), sigqueue() eller raise() funktionerne.
Hvis sigprocmask() funktionen ikke gennemføres vil signalmasken ikke ændres.
Bruges af sigprocmask() funktionen er ikke beregnet til anvendelse af multi-trådet processer.
Returværdi
Ved success skal 0 returneres ellers -1 og errno til at indikere fejlen
Fejl
- [EINVAL]
- Parameteren how er ikke en af de definerede værdier.