- 论坛徽章:
- 0
|
- #include <pthread.h>
- #include <unistd.h>
- #include <signal.h>
- #include <iostream>
- void sig_handler(int sig_num)
- {
- std::cout<<"sig handler:"<<sig_num<<std::endl;
- }
- int main(int argc,char* argv[])
- {
- std::cout<<"pid:"<<getpid()<<std::endl;
- std::cout<<"threadid:"<<pthread_self()<<std::endl;
- sigset_t bsig,wsig;
- sigemptyset(&bsig);
- sigaddset(&bsig,SIGUSR1);
- sigemptyset(&wsig);
- sigaddset(&wsig,SIGUSR1);
- pthread_sigmask(SIG_BLOCK,&bsig,NULL);
- while(true)
- {
- sigwait(&wsig,NULL);
- sig_handler(SIGUSR1);
- }
- return 0;
- }
复制代码 然后我kill -USR1 pid
结果进程core dump了,为啥啊? |
|