- 论坛徽章:
- 0
|
写了下面这个测试程序,程序先打印“sig_usr1 returned”, 然后才打印“just after sigprocmask() returned”
验证了我前面的理解没有错误
- #include <stdio.h>
- #include <signal.h>
- #include <stdlib.h>
- void sig_usr1(int signo)
- {
- printf("SIGUSR1 received\n");
- sleep(2);
- printf("sig_usr1 returned\n");
- return;
- }
- int main(void)
- {
- sigset_t oldset, newset;
- signal(SIGUSR1, sig_usr1);
- sigemptyset(&newset);
- sigaddset(&newset, SIGUSR1);
- sigprocmask(SIG_SETMASK, &newset, &oldset);
- sleep(10);
- sigprocmask(SIG_SETMASK, &oldset, NULL);
- printf("just after sigprocmask() returned\n");
- exit(0);
- }
复制代码 |
|