私は次のようにsigprocmaskを使用しています:
void mask(){
sigset_t new_set,old_set;
sigemptyset(&new_set);
sigaddset(&new_set,SIGALRM);
sigprocmask(SIG_BLOCK, &new_set, &old_set);
}
驚いたことに、大きなリストを出力する関数は、最初にmask()を呼び出したとしても、シグナルによって何らかの形で中断されます。私の関数は他の関数を呼び出さないため、マスクが失敗したように見えます。したがって、実行中にunmask()が発生することはありません。sigprocmaskが失敗する原因は何ですか?