segnale in \param{info}.
\funcdecl{int sigtimedwait(const sigset\_t *set, siginfo\_t *info, const
- struct timespec *timout)}
+ struct timespec *timeout)}
Analoga a \func{sigwaitinfo}, con un la possibilità di specificare un
timeout in \param{timeout}.
\macro{\_POSIX\_THREAD\_CPUTIME} indicano la presenza dei rispettivi orologi
di tipo \const{CLOCK\_MONOTONIC}, \const{CLOCK\_PROCESS\_CPUTIME\_ID} e
\const{CLOCK\_PROCESS\_CPUTIME\_ID}.\footnote{tutte queste macro sono definite
- in \texttt{unistd.h}, che peranto deve essere incluso per poterle
+ in \texttt{unistd.h}, che pertanto deve essere incluso per poterle
controllarle.} Infine se il kernel ha il supporto per gli \textit{high
resolution timer} un elenco degli orologi e dei timer può essere ottenuto
-tremite il file \procfile{/proc/timer\_list}.
+tramite il file \procfile{/proc/timer\_list}.
Le due funzioni che ci consentono rispettivamente di modificare o leggere il
valore per uno degli orologi \textit{real-time} sono \funcd{clock\_settime} e
\func{clock\_getcpuclockid} (che tratteremo a breve), il secondo argomento
invece è sempre il puntatore \param{tp} ad una struttura \struct{timespec}
(vedi fig.~\ref{fig:sys_timespec_struct}) che deve essere stata
-precedentemente allocata; nel primo caso questa devrà anche essere stata
+precedentemente allocata; nel primo caso questa dovrà anche essere stata
inizializzata con il valore che si vuole impostare sull'orologio, mentre nel
secondo verrà restituito al suo interno il valore corrente dello stesso.
}
\end{functions}
-La funzione richiede come primo argomento l'indicazione dell' orologio di cui
+La funzione richiede come primo argomento l'indicazione dell'orologio di cui
si vuole conoscere la risoluzione (effettuata allo stesso modo delle due
precedenti) e questa verrà restituita in una struttura \struct{timespec}
all'indirizzo puntato dall'argomento \param{res}.
utilizzata anche da altre funzioni, come quelle per l'I/O asincrono (vedi
sez.~\ref{sec:file_asyncronous_io}) o le code di messaggi POSIX (vedi
sez.~\ref{sec:ipc_posix_mq})) e che serve ad indicare in maniera generica un
-meccanimo di notifica.
+meccanismo di notifica.
\begin{figure}[!htb]
\footnotesize \centering
La struttura \struct{sigevent} (accessibile includendo \texttt{time.h}) è
riportata in fig.~\ref{fig:struct_sigevent};\footnote{la definizione effettiva
dipende dall'implementazione, quella mostrata è la versione descritta nella
- pagina di manule di \func{timer\_create}.} il campo \var{sigev\_notify} è il
+ pagina di manuale di \func{timer\_create}.} il campo \var{sigev\_notify} è il
più importante essendo quello che indica le modalità della notifica, gli altri
dipendono dal valore che si è specificato per \var{sigev\_notify}, si sono
riportati in tab.~\ref{tab:sigevent_sigev_notify}. La scelta del meccanismo di
-nnotifica viene fatta impostando uno dei valori di
+notifica viene fatta impostando uno dei valori di
tab.~\ref{tab:sigevent_sigev_notify} per \var{sigev\_notify}, e fornendo gli
eventuali ulteriori argomenti necessari a secondo della scelta
effettuata. Diventa così possibile indicare l'uso di un segnale o l'esecuzione
Una volta creato il timer \func{timer\_create} ed ottenuto il relativo
identificatore, si può attivare o disattivare un allarme (in gergo
-\textsl{armare} o \textsl{disarmare} il timer) con la fuzione
+\textsl{armare} o \textsl{disarmare} il timer) con la funzione
\funcd{timer\_settime}, il cui prototipo è:
\begin{functions}
\headdecl{signal.h}
}
\end{functions}
-La funzione richiede che si indici la scadenza del timer con
+La funzione richiede che si indichi la scadenza del timer con
l'argomento \param{new\_value}, che deve essere specificato come puntatore ad
una struttura di tipo \struct{itimerspec}, la cui definizione è riportata in
-fig.~\ref{fig:struct_itimerspec}, se \param{old\_value} è diverso da
-\val{NULL} il precedente valore verrà restituito in questa struttura.
+fig.~\ref{fig:struct_itimerspec}; se il puntatore \param{old\_value} è diverso
+da \val{NULL} il valore corrente della scadenza verrà restituito in una
+analoga struttura, ovviamente in entrambi i casi le strutture devono essere
+state allocate.
\begin{figure}[!htb]
\footnotesize \centering
Ciascuno dei due campi di \struct{itimerspec} indica un tempo, da specificare
con una precisione fino al nanosecondo tramite una struttura \struct{timespec}
-(la cui definizione è riportata fig.~\ref{fig:sys_timespec_struct})). Il campo
+(la cui definizione è riportata fig.~\ref{fig:sys_timespec_struct}). Il campo
\var{it\_value} indica la prima scadenza dell'allarme. Di default, quando il
valore di \param{flag} è nullo, questo valore viene considerato come un
intervallo relativo al tempo corrente,\footnote{il primo allarme scatterà cioè
può indicare sia un tempo assoluto, se si opera rispetto all'orologio di
sistema (nel qual caso il valore deve essere in secondi e nanosecondi dalla
\textit{epoch}) o come un certo numero di secondi o nanosecondi rispetto
- alla partenza di un orologio di CPU, }
+ alla partenza di un orologio di CPU.}
+
+Il campo \var{it\_interval} consente invece di importare un allarme periodico,
+se il suo valore è nullo (se cioè sono nulli tutti e due i valori di detta
+struttura \struct{timespec}) l'allarme scatterà una sola volta secondo quando
+indicato con \var{it\_value}, altrimenti il valore specificato verrà preso
+come estensione del periodo di ripetizione della generazione dell'allarme.
+
+Se si indica un tempo
-Se il valore di \var{it\_interval} è nullo (se cioè sono nulli tutti e due i
-valori di detta struttura \struct{timespec}) l'allarme scatterà
-
% TODO trattare i Posix timer, e le fuzioni:
% timer_getoverrun, timer_gettime, timer_settime, timer_create, timer_delete
% LocalWords: openat readlinkat renameat symlinkat unlinkat utimensat utimes
% LocalWords: LinuxThread NTPL Library clockid evp timerid sigev notify high
% LocalWords: resolution CONFIG RES patch REALTIME MONOTONIC RAW NTP CPUTIME
+% LocalWords: tick calendar The Epoch list getcpuclockid capability CAP getres
+% LocalWords: ENOSYS pthread ENOENT NULL attribute itimerspec new old ABSTIME
+% LocalWords: epoch multiplexing
%%% Local Variables: