GSIGNAL

Section: Linux Programmer's Manual (3)
Updated: 2020-04-11
Index JM Home Page roff page
 

名前

gsignal, ssignal - ソフトウェアシグナル機能  

書式

#include <signal.h>

typedef void (*sighandler_t)(int);

int gsignal(int signum);

sighandler_t ssignal(int signum, sighandler_t action);

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

gsignal(), ssignal():
    Since glibc 2.19:
        _DEFAULT_SOURCE
    Glibc 2.19 and earlier:
        _SVID_SOURCE  

説明

Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では gsignal() と ssignal() はそれぞれ raise(3) と signal(2) の別名になっている。

一方、System V 風のシステムでは、これらの関数で、 従来の signal(2) や kill(2) の関数群とは完全に独立な、 ソフトウェアシグナリングを実現している。 ssignal() 関数は、番号 signum のソフトウェアシグナルが gsignal() 関数を使って発生された時にとるべきアクションを定義する。 gsignal() の返り値は、一つ前に指定されていたアクション、もしくは SIG_DFL である。 gsignal() は以下のような動作を行う: signum に対してアクションが指定されていないか、アクション SIG_DFL が指定されていた場合、何もせずに 0 を返す。 signum に対して アクション SIG_IGN が指定されていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを SIG_DFL にリセットし、引数に signum を指定してアクション関数を呼び出して、アクション関数の返り値を返す。 signum がとり得る値の範囲は実装により異なる (多くの場合 1〜15 か 1〜17 である)。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース属性
gsignal() Thread safetyMT-Safe
ssignal() Thread safetyMT-Safe sigintr

 

準拠

これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 これらのシステムのほとんどで廃止されたことになっており、 glibc では正しく実装されていない。 gsignal_r() と ssignal_r() が実装されているシステムもある。  

関連項目

kill(2), signal(2), raise(3)  

この文書について

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


 

Index

名前
書式
説明
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 03:33:29 GMT, July 19, 2021