X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=signal.tex;h=5b28acdf9f6d19a5c107dfe0365961d21ea70d72;hb=70860564e1de946ab8d681bb41c601ba77721709;hp=edbc674a269a802be44392f4542287b56a155fbe;hpb=ff76d56c6a2c280cbe4f153173488871d7b12336;p=gapil.git diff --git a/signal.tex b/signal.tex index edbc674..5b28acd 100644 --- a/signal.tex +++ b/signal.tex @@ -904,18 +904,20 @@ e che prende un argomento di tipo \ctyp{int}.\footnote{si devono usare le operatori del C, senza di esse si sarebbe definita una funzione che ritorna un puntatore a \ctyp{void} e non un puntatore ad una funzione \ctyp{void}.} La funzione \func{signal} quindi restituisce e prende come secondo argomento -un puntatore a una funzione di questo tipo, che è appunto il gestore del -segnale. - -Il numero di segnale passato in \param{signum} può essere indicato -direttamente con una delle costanti definite in sez.~\ref{sec:sig_standard}. Il -gestore \param{handler} invece, oltre all'indirizzo della funzione da chiamare -all'occorrenza del segnale, può assumere anche i due valori costanti -\const{SIG\_IGN} con cui si dice di ignorare il segnale e \const{SIG\_DFL} per -reinstallare l'azione predefinita.\footnote{si ricordi però che i due segnali +un puntatore a una funzione di questo tipo, che è appunto la funzione che +verrà usata come gestore del segnale. + +Il numero di segnale passato nell'argomento \param{signum} può essere indicato +direttamente con una delle costanti definite in sez.~\ref{sec:sig_standard}. +L'argomento \param{handler} che indica il gestore invece, oltre all'indirizzo +della funzione da chiamare all'occorrenza del segnale, può assumere anche i +due valori costanti \const{SIG\_IGN} e \const{SIG\_DFL}; il primo indica che +il segnale deve essere ignorato,\footnote{si ricordi però che i due segnali \const{SIGKILL} e \const{SIGSTOP} non possono essere né ignorati né intercettati; l'uso di \const{SIG\_IGN} per questi segnali non ha alcun - effetto.} + effetto.} mentre il secondo ripristina l'azione predefinita.\footnote{e + serve a tornare al comportamento di default quando non si intende più + gestire direttamente un segnale.} La funzione restituisce l'indirizzo dell'azione precedente, che può essere salvato per poterlo ripristinare (con un'altra chiamata a \func{signal}) in un @@ -954,9 +956,10 @@ questi segnali pu \subsection{Le funzioni \func{kill} e \func{raise}} \label{sec:sig_kill_raise} -Come accennato in sez.~\ref{sec:sig_types}, un segnale può essere generato -direttamente da un processo attraverso una opportuna system call. Le funzioni -che si usano di solito per inviare un segnale generico sono due, \func{raise} e +Come precedentemente accennato in sez.~\ref{sec:sig_types}, un segnale può +anche essere generato direttamente nell'esecuzione di un programma, attraverso +la chiamata ad una opportuna system call. Le funzioni che si utilizzano di +solito per inviare un segnale generico ad un processo sono due: \func{raise} e \func{kill}. La prima funzione è \funcd{raise}, che è definita dallo standard ANSI C, e @@ -2462,11 +2465,6 @@ questa maniera devono essere mascherati per tutti i thread, compreso quello dedicato alla gestione, che potrebbe riceverlo fra due chiamate successive. -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "gapil" -%%% End: - % LocalWords: kernel POSIX timer shell control ctrl kill raise signal handler % LocalWords: reliable unreliable fig race condition sez struct process table % LocalWords: delivered pending scheduler sigpending l'I suspend SIGKILL wait @@ -2497,5 +2495,10 @@ dedicato alla gestione, che potrebbe riceverlo fra due chiamate successive. % LocalWords: how oldset BLOCK UNBLOCK SETMASK sigsuspend sigaltstack malloc % LocalWords: SIGSTKSZ MINSIGSTKSZ ss oss ENOMEM flags DISABLE sp setrlimit LB % LocalWords: RLIMIT rlim sigsetjmp siglongjmp sigjmp buf env savesigs jmp ptr -% LocalWords: SIGRTMIN SIGRTMAX sigval sival sigevent sigqueue EAGAIN sysctl +% LocalWords: SIGRTMIN SIGRTMAX sigval sigevent sigqueue EAGAIN sysctl % LocalWords: QUEUE thread sigwait sigwaitinfo sigtimedwait info DEF SLB + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "gapil" +%%% End: