#include <iostream>
#include <unistd.h>
#include <signal.h>
using namespace std;
void showPending(sigset_t *pending)
{
for(int sig=1;sig<=31;sig++)
{
if(sigismember(pending,sig)) cout << "1";
else cout <<"0";
}
cout<<endl;
}
void handler (int signum)
{
cout << "获取了一个信号:" << signum << endl;
sigset_t pending;
int c = 10;
while(true)
{
sigpending(&pending);
showPending(&pending);
c--;
if(!c) break;
sleep(1);
}
}
int main()
{
struct sigaction act, oact;
act.sa_flags = 0;
sigemptyset (&act.sa_mask);
act.sa_handler = handler;
sigaction(2,&act,&oact);
cout << "default action : " << (int)oact.sa_handler << endl;
while(true) sleep(1);
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交