私はUnixで信号処理を学んでいて、何が何で、何をしているのかを理解するのに苦労SIG_SETMASK
しo_set
てsigprocmask()
いますか?
set
ブロックまたはブロック解除する信号のリストが含まれていることを理解し、リスト内の信号をSIG_BLOCK
ブロックしてブロックをSIG_UNBLOCK
解除します。
sigprocmask(SIG_SETMASK,&set,& o_set);
Linuxのマンページはこれをよく説明しています。
信号マスクの以前の値は、そのパラメーターがnullでない場合、最後のパラメーター(古いセット)に格納されます。
SIG_SETMASK
現在の信号セットを設定します。それについてこれ以上何を言うべきかわかりません-SIG_BLOCK
そしてSIG_UNBLOCK
現在の信号マスクを2番目のパラメータと組み合わせて、SIG_SETMASK
現在の値に関係なくそれを設定します。
POSIXはそれを次のように説明しています:
SIG_BLOCK
結果のセットは、現在のセットとセットが指す信号セットの和集合になります。SIG_SETMASK
結果のセットは、セットが指す信号セットになります。
SIG_UNBLOCK
結果のセットは、現在のセットと、セットが指す信号セットの補集合との共通部分になります。