From: Simone Piccardi Date: Fri, 8 Mar 2002 07:10:01 +0000 (+0000) Subject: Altro meteriale su nanosleep X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=3c8d9d27c6d5243c8de979f883dc2f3498a9bdc4;hp=0c63d62732e14ab73d5f1f0a0e5d70f3873bc334 Altro meteriale su nanosleep --- diff --git a/signal.tex b/signal.tex index c2345f0..4fbe0b2 100644 --- a/signal.tex +++ b/signal.tex @@ -1290,9 +1290,10 @@ quella di SUSv2 che prevede il seguente prototipo: \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)} @@ -1303,6 +1304,27 @@ Anche questa funzione pu \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}