psiginfo(3) シグナルメッセージを表示

Other Alias

psignal

書式

#include <signal.h>


void psignal(int sig, const char *s);
void psiginfo(const siginfo_t *pinfo, const char *s);

extern const char *const sys_siglist[];

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

psignal(): _SVID_SOURCE || _BSD_SOURCE
psiginfo(): _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
sys_siglist: _BSD_SOURCE

説明

psignal() 関数は、文字列 s、コロン、スペース、シグナル番号 sig を説明する文字列、終端の改行から構成されるメッセージを stderr に表示する。 文字列 s が NULL か空の場合、コロンとスペースは省略される。 sig が不正ならば、表示される メッセージは未知のシグナルを示す。

psiginfo() 関数は psignal() と同じだが、 pinfo に書かれたシグナルの情報を表示する点が異なる。 pinfo は有効な siginfo_t 構造体を指している必要がある。 psiginfo() は、 シグナルの説明だけでなく、 シグナルの送信元やそのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生したシグナルの関連メモリアドレス、 SIGCHLD の子プロセス ID、 kill(2) や sigqueue(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセス ID など)。

配列 sys_siglist はシグナルを説明する文字列を保持しており、 配列へのアクセスにはシグナル番号を添え字として用いる事ができる。

返り値

関数 psignal() と psiginfo() は、値を返さない。

バージョン

psiginfo() 関数は glibc バージョン 2.10 で追加された。

準拠

POSIX.1-2008, 4.3BSD.

バグ

バージョン 2.12 までの glibc では psiginfo() には以下のバグがあった。
*
特定の状況で、末尾の改行が出力されない。
*
リアルタイムシグナルの場合に、追加の詳細情報が表示されない。

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部である。 プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。