GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So finden Sie die Quelle eines POSIX-Signals heraus

Die Manpage für sigaction(2) schlägt vor, dass die PID des Signalsenders in der siginfo_t-Struktur verfügbar ist, die an Ihren Signalhandler übergeben wird. Dies erfordert natürlich die Verwendung von sigaction().

Aus der Manpage:

Die sigaction-Struktur ist wie folgt definiert:

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

Und die siginfo_t Struktur sieht so aus:

   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. Wie finde ich heraus, ob die Karte den Infrastrukturmodus unterstützt?

  2. Wie finde ich den Standard-Dateimanager?

  3. Wie finde ich heraus, welche Festplatten im System sind?

  4. Wie finde ich die UUID eines Dateisystems

  5. Wie finde ich Details zur Hardware auf dem Linux-Rechner heraus?

So finden Sie die installierte Version von Redhat Linux

So holen Sie das Beste aus Qmmp 1.0 heraus

So finden Sie die Portnummer eines Dienstes in Linux

So ermitteln Sie den Verbindungsstatus eines Netzwerkkabels in Linux

Wie finde ich die platzraubendsten Verzeichnisse oder Dateien heraus?

Wie finde ich heraus, über welche Schnittstelle ich mich mit dem Internet verbinde?