Do tematu: Zarządzanie procesami
Do tematu: Struktury danych

sigaction

Struktura zawiera informacje potrzebne do obsługi konkretnego sygnału

Typ Nazwa Opis
__sighandler_t sa_handler wskaźnik do funkcji obsługi sygnału
funkcja jest typu: void nazwa_funkcji(int);
są także zdefiniowane stałe standardowe
SIG_DFL (0) - domyślna obsługa sygnału
SIG_IGN (1) - ignorowanie sygnału
SIG_ERR (-1) - błąd przy powrocie z funkcji signal
sigset_t sa_mask maska sygnałów, które mają być zablokowane zaraz po wywołaniu funkcji obsługi
unsigned long sa_flags flaga wskazująca na sposób obsługi sygnału
void (*) sa_restorer NIE UŻYWANE - funkcja, która w przyszłości umożliwi obsługę stosu sygnałów

Flagi obsługi sygnałów

Flaga Wartość Opis
SA_NOCLDSTOP 1 flaga informuje o tym, czy rodzic procesu zostanie poinformowany o zatrzymaniu
SA_SHIRQ 0x04000000 flaga używana do dzielonej obsługi przerwań urządzeń takich jak PCI i EISA
SA_STACK 0x08000000 aktualnie nie jest używana ale w przyszłości ma umożliwiać obsługę stosu sygnałów
SA_RESTART 0x10000000 flaga używana do uzyskania sygnału restartowego
SA_INTERRUPT 0x20000000 nie używana - pozostawiona ze względów historycznych, dawniej używana przez system do obsługi przerwań sprzętowych
SA_NOMASK 0x40000000 wywołanie funkcji obsługi sygnałów nie powoduje zamaskowania przychodzących sysgnałów
SA_ONESHOT 0x80000000 po wywołaniu funkcji obsługi sygnału, lecz przed rozpoczęciem jej wykonania pole sa_handler struktury sigaction ustawiane jest na 0 (obsługa domyślna)
Używane wyłącznie przez jądro (jako część systemu obsługi przerwań):
SA_PROBE SA_ONESHOT inna nazwa flagi SA_ONESHOT
SA_SAMPLE_RANDOM SA_RESTART inna nazwa flagi SA_RESTART

__sighandler_t

typ określający funkcję obsługi sygnału - zdefiniowany:

void (*__sighandler_t)(int)


Autor: Michał Tabor