A volte mi confondo un po 'tutti i segnali che un processo può ricevere. A quanto ho capito, un processo ha un gestore predefinito ( disposizione del segnale ) per ciascuno di questi segnali, ma può fornire il proprio gestore chiamando sigaction()
.
Quindi, ecco la mia domanda: cosa causa l'invio di ciascuno dei segnali? Mi rendo conto che è possibile inviare manualmente segnali ai processi in esecuzione tramite il -s
parametro a kill
, ma quali sono le circostanze naturali in cui vengono inviati questi segnali? Ad esempio, quando SIGINT
viene inviato?
Inoltre, ci sono restrizioni su quali segnali possono essere gestiti? È anche SIGSEGV
possibile elaborare i segnali e restituire il controllo all'applicazione?