Cライブラリ関数 -sigaddset()
説明
sigaddsetこの関数はC標準ライブラリの関数であり、特定のシグナルをシグナルセットに追加するために使用されます。この関数は<signal.h>ヘッダーファイルで定義されています。
構文
int sigaddset(sigset_t *set, int signo);
パラメータ
sigset_t *set:指す先は、sigset_t型のシグナルセット変数。int signo:シグナルセットに追加するシグナル番号。
戻り値
- 成功した場合は0を返します。
- 失敗した場合は-1を返し、設定して
errnoエラーの種類を示します。
例
以下は、sigaddset関数を使用して特定のシグナルをシグナルセットに追加するサンプルプログラムです。このプログラムは空のシグナルセットを初期化し、SIGINTシグナルをシグナルセットに追加し、シグナルセットに含まれるか確認しますSIGINTシグナル。
例
#include <stdio.h>
#include <signal.h>
int main() {
sigset_t set;
// シグナルセットを空に初期化する
if (sigemptyset(&set) == -1) {
perror("sigemptyset");
return 1;
}
// SIGINT をシグナルセットに追加する
if (sigaddset(&set, SIGINT) == -1) {
perror("sigaddset");
return 1;
}
// シグナルセットに SIGINT が含まれているか確認する
if (sigismember(&set, SIGINT)) {
printf("SIGINT is in the set\n");
} else {
printf("SIGINT is not in the set\n");
}
return 0;
}
#include <signal.h>
int main() {
sigset_t set;
// シグナルセットを空に初期化する
if (sigemptyset(&set) == -1) {
perror("sigemptyset");
return 1;
}
// SIGINT をシグナルセットに追加する
if (sigaddset(&set, SIGINT) == -1) {
perror("sigaddset");
return 1;
}
// シグナルセットに SIGINT が含まれているか確認する
if (sigismember(&set, SIGINT)) {
printf("SIGINT is in the set\n");
} else {
printf("SIGINT is not in the set\n");
}
return 0;
}
上記のサンプルプログラムを実行した場合の出力結果の例は次のとおりです:
SIGINT is in the set
プログラムは空のシグナルセットを初期化し、SIGINTシグナルをシグナルセットに追加し、シグナルセットに含まれるか確認しますSIGINTシグナル。結果は、SIGINTシグナルがシグナルセット内にあることを示しています。
解説
sigset_t set;:シグナルセット変数を定義します。- を使用して
sigemptyset関数でシグナルセットを空に初期化します。 - を使用して
sigaddset関数でSIGINTシグナルをシグナルセットに追加します。 - を使用して
sigismember関数でシグナルセットに含まれるか確認しますSIGINTシグナル。 - 出力は、
SIGINTシグナルが初期化後のシグナルセットに含まれていることを示しています。
注意事項
sigaddset関数は、特定のシグナルをシグナルセットに追加するために使用されます。- シグナル番号が無効な場合、
sigaddset関数は-1を返し、設定してerrnoエラーの種類を示します。
C標準ライブラリ - <signal.h>