sgetmask, ssetmask -
シグナルマスクの操作
(廃止予定)
long sgetmask(void);
long ssetmask(long newmask);
注:
これらのシステムコールには、glibc
のラッパー関数はない。「注意」の節を参照。
これらのシステムコールは廃止予定であり、
「使用しないこと」。
代わりに
sigprocmask(2)
を使用すること。
sgetmask()
は、呼び出し元プロセスのシグナルマスクを返す。
ssetmask()
は、呼び出し元プロセスのシグナルマスクを
newmask
で指定された値に設定し、変更前のシグナルマスクを返す。
これら二つのシステムコールが扱うシグナルマスクは、
単純なビットマスクである
(この点が
sigprocmask(2)
で使用される
sigset_t
と異なる)。
これらのマスクを作成したり検査するには
sigmask(3)
を使用すること。
sgetmask()
は常に成功し、シグナルマスクを返す。
ssetmask()
は常に成功し、直前のシグナルマスクを返す。
これらのシステムコールは常に成功する。
Linux 3.16
以降では、これらのシステムコールのサポートは任意となり、利用できるかはカーネルが
CONFIG_SGETMASK_SYSCALL
オプションを有効にしてコンパイルされているかに依存する。
これらのシステムコールは
Linux 固有である。
glibc
はこれらの古いシステムコールに対するラッパー関数を提供していない。
あまりないと思うが、これらを呼び出したい場合には
syscall(2) を使うこと。
これらのシステムコールは、
31
より大きいシグナル番号
(つまり、リアルタイムシグナル)
を扱えない。
これらのシステムコールは
x86-64 には存在しない。
SIGSTOP や
SIGKILL
をブロックすることはできない。
sigprocmask(2),
signal(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。