\func{strsignal} e \func{psignal} è quello di fare usare la variabile
\var{sys\_siglist}, che è definita in \file{signal.h} e può essere acceduta
con la dichiarazione:
-\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
+\begin{lstlisting}[stepnumber=0,frame=]{}
extern const char *const sys_siglist[]
\end{lstlisting}
l'array \var{sys\_siglist} contiene i puntatori alle stringhe di descrizione,
una estensione GNU, definita dalle \acr{glibc}, che permette di riscrivere il
prototipo di \func{signal} nella forma appena vista, molto più leggibile di
quanto non sia la versione originaria, che di norma è definita come:
-\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
+\begin{lstlisting}[stepnumber=0,frame=]{}
void (*signal(int signum, void (*handler)(int)))int)
\end{lstlisting}
questa infatti, per la poca chiarezza della sintassi del C quando si vanno a
trattare puntatori a funzioni, è molto meno comprensibile. Da un confronto
con il precedente prototipo si può dedurre la definizione di
\type{sighandler\_t} che è:
-\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
+\begin{lstlisting}[stepnumber=0,frame=]{}
typedef void (* sighandler_t)(int)
\end{lstlisting}
e cioè un puntatore ad una funzione \ctyp{void} (cioè senza valore di ritorno)
\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{}
+ \begin{lstlisting}[stepnumber=0]{}
struct itimerval
{
struct timeval it_interval; /* next value */
\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{}
+ \begin{lstlisting}[stepnumber=0]{}
unsigned int alarm(unsigned int seconds)
{
struct itimerval old, new;
\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{}
+ \begin{lstlisting}[stepnumber=0]{}
struct sigaction
{
void (*sa_handler)(int);
\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{}
+ \begin{lstlisting}[stepnumber=0]{}
siginfo_t {
int si_signo; /* Signal number */
int si_errno; /* An errno value */
\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{}
+ \begin{lstlisting}[stepnumber=0]{}
typedef struct {
void *ss_sp; /* Base address of stack */
int ss_flags; /* Flags */
\begin{figure}[!htb]
\footnotesize \centering
\begin{minipage}[c]{15cm}
- \begin{lstlisting}[labelstep=0]{}%,frame=,indent=1cm]{}
+ \begin{lstlisting}[stepnumber=0]{}
union sigval_t {
int sival_int;
void *sival_ptr;