GNU/Linux >> Linux Esercitazione >  >> Linux

Come scoprire la fonte di un segnale POSIX

La pagina man per sigaction(2) suggerisce che il PID del mittente del segnale sia disponibile nella struttura siginfo_t passata al gestore del segnale. Questo ovviamente richiede l'utilizzo di sigaction().

Dalla pagina man:

La struttura sigaction è definita come:

   struct sigaction {
       void     (*sa_handler)(int);
       void     (*sa_sigaction)(int, siginfo_t *, void *);
       sigset_t   sa_mask;
       int        sa_flags;
       void     (*sa_restorer)(void);
   };

E il siginfo_t la struttura è simile a questa:

   siginfo_t {
       int      si_signo;    /* Signal number */
       int      si_errno;    /* An errno value */
       int      si_code;     /* Signal code */
       int      si_trapno;   /* Trap number that caused
                                hardware-generated signal
                                (unused on most architectures) */
       pid_t    si_pid;      /* Sending process ID */
       uid_t    si_uid;      /* Real user ID of sending process */
       int      si_status;   /* Exit value or signal */
       clock_t  si_utime;    /* User time consumed */
       clock_t  si_stime;    /* System time consumed */
       sigval_t si_value;    /* Signal value */
       int      si_int;      /* POSIX.1b signal */
       void    *si_ptr;      /* POSIX.1b signal */
       int      si_overrun;  /* Timer overrun count; POSIX.1b timers */
       int      si_timerid;  /* Timer ID; POSIX.1b timers */
       void    *si_addr;     /* Memory location which caused fault */
       int      si_band;     /* Band event */
       int      si_fd;       /* File descriptor */
   }

Linux
  1. Come scoprire gli eseguibili delle librerie dinamiche caricati durante l'esecuzione?

  2. Come scoprire dove si trova il cestino di Firefox?

  3. Come trovo la dimensione massima dello stack?

  4. Come scoprire quale interfaccia sto usando per connettermi a Internet?

  5. Come scoprire i dettagli sull'hardware sulla macchina Linux?

Come trovare la versione di Redhat Linux installata

Come ottenere il massimo da Qmmp 1.0

Come trovare il numero di porta di un servizio in Linux

Come scoprire lo stato connesso di un cavo di rete in Linux

Come scoprire le directory o i file che consumano più spazio?

Come scoprire il tipo di virtualizzazione di un VPS Linux?