#include <iostream>
#include <signal.h>
#include <unistd.h>
using namespace std;
void sighandler(int sig) {
cout << "signal received" << endl;
}
int main() {
int pid= getpid();
cout << pid << endl;
signal( SIGUSR1, sighandler );
sigset_t accept;
sigaddset( &accept, SIGUSR1 );
int s;
sigwait(&accept, &s);
cout << s << endl;
return 0;
}
このプログラムを実行し、「kill -s SIGUSR1 $ pid」を介してSIGUSR1シグナルを送信すると、シグナルの番号(10)が出力されますが、sighandlerのテキストは出力されません。理由がわかりません。これはLinuxシステム上にあります。