linux网络编程二十八:多线程编程之统一信号处理
来源:互联网 发布:比较好的经济类数据库 编辑:程序博客网 时间:2024/06/05 19:32
1. 以下代码取自pthread_sigmask函数的man手册。它实现了在一个线程中统一处理信号。
#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>#include <errno.h>#define handler_error_en(en, msg) \ do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)static void* sig_thread(void *arg){ sigset_t *set = (sigset_t*)arg; int s, sig; for (;;) { //等待信号 s = sigwait(set, &sig); if (s != 0) handler_error_en(s, "sigwait"); printf("Signal handling thread got signal %d\n", sig); }}int main(int argc, char *argv[]){ pthread_t thread; sigset_t set; int s; //在主线程中设置信号掩码 sigemptyset(&set); sigaddset(&set, SIGQUIT); sigaddset(&set, SIGUSR1); s = pthread_sigmask(SIG_BLOCK, &set, NULL); if (s != 0) handler_error_en(s, "pthread_sigmask"); s = pthread_create(&thread, NULL, &sig_thread, (void*)&set); if (s != 0) handler_error_en(s, "pthread_create"); pause(); return 0;}
0 0
- linux网络编程二十八:多线程编程之统一信号处理
- linux网络编程十八:统一事件源
- Linux编程之信号处理
- Linux环境编程之信号处理(二、kill()函数)
- Linux 多线程编程 与 信号处理
- Linux网络编程:信号
- linux系统编程之信号(二):信号处理流程(产生、注册、注销、执行)
- linux系统编程之信号(二):信号处理流程(产生、注册、注销、执行)
- linux系统编程之信号(二):信号处理流程(产生、注册、注销、执行)
- Linux系统编程--信号及信号处理(二)
- Linux编程---信号处理
- linux 编程 信号处理
- Linux环境编程之信号处理(一)
- 多线程编程信号处理顺序
- Linux网络编程之二
- unix网络编程 信号处理
- 【网络编程】处理定时事件(二)---利用信号通知
- linux编程之网络编程错误处理
- 黑马程序员_java中的常用API
- 戏说Android view 工作流程
- Android开发之Service优先级问题
- Linux内核list_head学习(二)
- 离开学校或如何自学成为网页设计师
- linux网络编程二十八:多线程编程之统一信号处理
- libtool : X--tag=CC: command not found 错误
- android 事件处理机制之requestDisallowInterceptTouchEvent
- apache httpcomponent 4.3 使用https示例
- ADF 按钮直接传参 使用 setPropertyActionListener
- android MaskFilter ColorFilter Xfermode PorterDuffXfermode PorterDuff.Mode
- java和C操作数组的一个小区别
- Need help on a fuzzy match problem
- 关于openoffice/libreoffice+swftools+jodconverter+flexpaper预览文件的一些问题