- 论坛徽章:
- 0
|
- static void pr_mask(char* ptr)//打印当前信号屏蔽字的屏蔽信号
- {
- sigset_t sigset;
- int errno_save;
- int ret;
- errno_save = errno;
- ret = sigprocmask(0, NULL, &sigset);
- if(ret == -1){
- perror("sigprocmask error");
- exit(1);
- }
- printf("%s", ptr);
- if(sigismember(&sigset, SIGINT)){
- printf("SIGINT ");
- }
- if(sigismember(&sigset, SIGQUIT)){
- printf("SIGQUIT ");
- }
- if(sigismember(&sigset, SIGUSR1)){
- printf("SIGUSR1 ");
- }
- if(sigismember(&sigset, SIGALRM)){
- printf("SIGALRM ");
- }
- printf("\n");
- errno = errno_save;
- }
复制代码 代码中errno_save = errno;这行说是可能被中断掉?我不理解,是因为sigprocmask返回前可能收到信号吗?但这里的第二个参数为null啊?这也会将未决的一个信号发送? |
|