#include "io.h"
#include <signal.h>
void sighandler(int signo)
{
sigset_t newset, oldset;
sigset_t pendset;
sigprocmask(SIG_SETMASK, NULL, &oldset);
int i = 0;
printf("mask:");
/*sigpending(&pendset);*/
if (sigismember(&oldset, signo)) {
printf("Ctrl+z!\n");
}
#if 0
for (; i < 32; i++)
{
printf("%d", (oldset.sig[0] >> (31 - i)) & 0x1);
}
printf("\n");
#endif
sigpending(&pendset);
printf("pend:");
if (sigismember(&pendset, signo)) {
printf("Ctrl+z!\n");
#if 0
for (; i < 32; i++)
{
printf("%d", (pendset.sig[0] >> (31 - i)) & 0x1);
}
printf("\n");
#endif
sleep(3);
}
int main(int argc, char const * argv[])
{
sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGTSTP);
sigprocmask(SIG_SETMASK, NULL, );
signal(SIGTSTP, sighandler);
while (1)sleep(1);
return 0;
}
信号屏蔽字&信号未决字
最新推荐文章于 2023-04-19 22:16:09 发布