)
if (sigilid(&geblokkeerde_signalen, i)) {
//Controleer of het signaal is geblokkeerd. sigismember retourneert 1 als het lid is van de set
printf(" Signaal %d (%s)\n", i, strsignal(i)); //strsignal converteert signaalnummer naar string
//Als strsignal niet werkt (sommige systemen ondersteunen dit mogelijk niet), kunt u een opzoektabel gebruiken
//of druk het signaalnummer handmatig af.
}
}
retour 0;
}
```
Deze code compileren en uitvoeren:
1. Opslaan: Sla de code op als een `.c`-bestand (bijvoorbeeld `blocked_signals.c`).
2. Compileren: Gebruik een C-compiler (zoals GCC) om de code te compileren:
``` bash
gcc geblokkeerde_signalen.c -o geblokkeerde_signalen
```
3. Uitvoeren: Voer het gecompileerde programma uit:
``` bash
./geblokkeerde_signalen
```
De uitvoer toont de signaalnummers en hun namen (indien beschikbaar via `strsignal`) die momenteel geblokkeerd zijn voor het proces. Houd er rekening mee dat de reeks geblokkeerde signalen afhankelijk is van de huidige status van het proces en eventuele signaalverwerkingsinstellingen.
Belangrijke overwegingen:
* Foutafhandeling: De code bevat basisfoutafhandeling voor `sigprocmask`. Robuuste applicaties zouden uitgebreidere foutcontroles moeten toevoegen.
* Signaalnamen: Het is niet gegarandeerd dat de `strsignal`-functie op alle systemen beschikbaar is of dat alle signalen een naam krijgen. Mogelijk moet u gevallen afhandelen waarin NULL wordt geretourneerd of een aangepaste opzoektabel gebruiken om signaalnummers aan namen toe te wijzen.
* Signaalnummers: Het bereik van de signaalnummers (`NSIG`) is systeemafhankelijk. Het wordt meestal gedefinieerd in ``.
* Rechten: Voor het verkrijgen van informatie over signalen zijn mogelijk specifieke bevoegdheden vereist (bijvoorbeeld als root). Als u toestemmingsfouten tegenkomt, kan dit de oorzaak zijn.
Vergeet niet de documentatie van uw systeem te raadplegen voor details over signaalverwerking en de specifieke beschikbare signalen. Het gedrag en de beschikbaarheid van functies gerelateerd aan signalen kunnen enigszins verschillen tussen Unix-achtige besturingssystemen (Linux, macOS, BSD, enz.).