#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 系统上。