SIGUSR1
と
SIGUSR2
を送信する必要が
(偽から真、SIGUSR2
セットそれにSIGUSR1
セット、それを) 。だから私はSIGUSR1
またはSIGUSR2
の振る舞いを制御するためにsignalHandler()
関数を書きました。問題は:sigaction()
この特定のタスクを処理する方法を設定するには?私はGoogleで多くの時間を費やしましたが、どこでもsignal()
の代わりに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);
};
:manページでは、私は、私は、sigaction構造体のパラメータを持って、私が処理したい信号の種類を配置する必要がシグナムでこの
int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);
を見つけました私は私のシグナルハンドラの名前を設定する必要がありますが、私は他のフィールドをどのように設定できるのか分かりません。
最後に、どのような使用ですか:struct sigaction *oldact
?
'oldact'は、信号番号' signum'の以前のシグナルハンドリング状態を保存します。 – moshbear
@moshbear私はそれを使用したくない場合はNULLに設定できますか? – Sicioldr
__はい、できます。 (下線を赦してくださいが、コメントには15文字分の制限があります)。 – moshbear