GNU/Linux >> Linux の 問題 >  >> Linux

POSIX シグナルの発信元を見つける方法

sigaction(2) の man ページ は、シグナル送信者の PID が、シグナル ハンドラーに渡される siginfo_t 構造体で利用できることを示唆しています。これには明らかに sigaction() を使用する必要があります。

マニュアルページから:

sigaction 構造は次のように定義されます:

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

そして siginfo_t 構造は次のようになります:

   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. Linux –システムに搭載されているハードディスクを確認する方法は?

  2. Firefoxのビンがどこにあるかを知る方法は?

  3. Sambaに接続するためのドメインを確認する方法は?

  1. 実行時にダイナミックライブラリの実行可能ファイルの負荷を確認する方法は?

  2. カードがインフラストラクチャモードをサポートしているかどうかを確認するにはどうすればよいですか?

  3. ファイルシステムの UUID を見つける方法

  1. 最大スタック サイズを確認するにはどうすればよいですか?

  2. Linux で「find」の結果を mv にパイプする方法

  3. デフォルトのファイルマネージャを見つける方法は?