messaggio. Si tenga presente che il valore di \param{ident} che si passa alla
funzione è un puntatore, se la stringa cui punta viene cambiata lo sarà pure
nei successivi messaggi, e se viene cancellata i risultati potranno essere
-impredicibili, per questo è sempre opportuno usare una stringa costante. Il
-parametro \param{facility} permette invece di specificare l'omonimo indice per
-la categoria del messaggio; i valori possibili sono riportati in
-\tabref{tab:sess_syslog_facility}.
+impredicibili, per questo è sempre opportuno usare una stringa costante.
+
+L'argomento \param{facility} permette invece di preimpostare per le successive
+chiamate l'omonimo indice che classifica la categoria del messaggio.
+L'argomento è interpretato come una maschera binaria, e pertanto è possibile
+inviare i messaggi su più categorie alla volta; i valori delle costanti che
+identificano ciascuna categoria sono riportati in
+\tabref{tab:sess_syslog_facility}, il valore di \param{facility} deve essere
+specificato con un OR aritmetico.
\begin{table}[htb]
\centering
L'argomento \param{option} serve invece per controllare il comportamento della
funzione \func{openlog} e delle modalità con cui le successive chiamate
-scriveranno i messaggi, esso viene specificato come maschera binaria composta
-con un OR aritmetico di una qualunque delle costanti riportate in
+scriveranno i messaggi, anch'esso viene specificato come maschera binaria
+composta con un OR aritmetico di una qualunque delle costanti riportate in
\tabref{tab:sess_openlog_option}.
\begin{table}[htb]
restituita da \code{strerror(errno)}. Gli argomenti seguenti i primi due
devono essere forniti secondo quanto richiesto da \func{format}.
-L'argomento \param{priority} permette invece di impostare l'importanza del
-messaggio; il valore deve essere impostato i valori possibili sono riportati
-in \secref{tab:sess_syslog_priority}.
+L'argomento \param{priority} permette di impostare sia la \textit{facility}
+che la \textit{priority} del messaggio. In realtà viene prevalentemente usato
+per specificare solo quest'ultima in quanto la prima viene di norma
+preimpostata con \func{openlog}. La priorità è indicata con un valore
+numerico\footnote{le \acr{glibc}, seguendo POSIX.1-2001, prevedono otto
+ diverse priorità ordinate da 0 a 7, in ordine di importanza decrescente;
+ questo comporta che i tre bit meno significativi dell'argomento
+ \param{priority} sono occupati da questo valore, mentre i restanti bit più
+ significativi vengono usati per specificare la \textit{facility}.}
+specificabile attraverso le costanti riportate in
+\secref{tab:sess_syslog_priority}. Nel caso si voglia specificare anche la
+\textit{facility} basta eseguire un OR aritmetico del valore della priorità
+con la maschera binaria delle costanti di \tabref{tab:sess_syslog_facility}.
\begin{table}[htb]
\centering
\macro{LOG\_DEBUG} & Messaggio di debug.\\
\hline
\end{tabular}
-\caption{Valori possibili per l'argomento \param{priority} di \func{syslog}.}
+\caption{Valori possibili per l'indice di importanza del messaggio da
+ specificare nell'argomento \param{priority} di \func{syslog}.}
\label{tab:sess_syslog_priority}
\end{table}
-Dato che in molti programmi
-
-Il sistema del \textit{syslog} usa la priorità del messaggio per classificare
-gli stessi, è inoltre possibile restringere l'emissione dei messaggi
-attraverso l'uso della funzione \func{setlogmask}, il cui prototipo è:
+Una ulteriore funzione, \func{setlogmask}, permette di filtrare
+preliminarmente i messaggi in base alla loro priorità; il suo prototipo è:
\begin{prototype}{syslog.h}
-{int setlogmask(int mask)}
+ {int setlogmask(int mask)}
Imposta la maschera dei log al valore specificato.
\bodydesc{La funzione restituisce il precedente valore.}
\end{prototype}
+Le routine di gestione mantengono per ogni processo una maschera che determina
+quale delle chiamate effettuate a \func{syslog} verrà effettivamente
+registrata. La registrazione viene disabilitata per tutte quelle priorità che
+non rientrano nella maschera; questa viene settata usando la macro
+\code{LOG\_MASK(p)} dove \code{p} è una delle costanti di
+\secref{tab:sess_syslog_priority}. É disponibile anche la macro
+\code{LOG\_UPTO(p)} che permette di specificare automaticamente tutte le
+priorità fino ad un certo valore.
+
\section{L'I/O su terminale}