\end{prototype}
-Anche questa funzione può presentare problemi nell'interazione con
-\func{alarm} e \macro{SIGALRM}, ed è pertanto deprecata in favore di
-\func{nanosleep}, definita dallo standard POSIX1.b, il cui prototipo è:
+Anche questa funzione a seconda delle implementazioni può presentare problemi
+nell'interazione con \func{alarm} e \macro{SIGALRM}, ed è pertanto deprecata
+in favore di \func{nanosleep}, definita dallo standard POSIX1.b, il cui
+prototipo è:
\begin{prototype}{unistd.h}{int nanosleep(const struct timespec *req, struct
timespec *rem)}
\macro{EINTR}.}
\end{prototype}
+Lo standard richiede che la funzione sia implementata in maniera del tutto
+indipendente da \func{alarm}\footnote{nel caso di Linux direttamente
+ attraverso il timer del kernel} e sia utilizzabile senza interferenze con
+l'uso di \macro{SIGALRM}.
+
+
+\begin{figure}[!htb]
+ \footnotesize \centering
+ \begin{minipage}[c]{15cm}
+ \begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
+struct timespec
+{
+ time_t tv_sec; /* seconds */
+ long tv_nsec; /* nanoseconds */
+};
+ \end{lstlisting}
+ \end{minipage}
+ \normalsize
+ \caption{La struttura \var{timespec} di \func{nanosleep}.}
+ \label{fig:sig_alarm_def}
+\end{figure}