GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit zdroj signálu POSIX

Manuálová stránka pro sigaction(2) naznačuje, že PID odesílatele signálu je k dispozici ve struktuře siginfo_t předané vaší obsluze signálu. To samozřejmě vyžaduje, abyste použili sigaction().

Z manuálové stránky:

Struktura sigaction je definována jako:

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

A siginfo_t struktura vypadá takto:

   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. Jak zjistit, kde je koš Firefoxu?

  2. Jak zjistím maximální velikost zásobníku?

  3. Jak přenést výsledky 'najít' do mv v Linuxu

  1. Jak zjistím, co zabírá veškerý prostor na mém / oddílu?

  2. Jak zjistit, jaké rozhraní používám pro připojení k internetu?

  3. Jak zjistím UUID souborového systému

  1. Linux – Jak zjistit, jaké pevné disky jsou v systému?

  2. Jak zjistit zatížení spustitelných souborů dynamických knihoven při spuštění?

  3. Jak zjistit, jaká je doména pro připojení k Sambě?