linux 自定义信号
从来没试过linux自定义信号,查了下,说是系统只提供了SIGUSR1和SIGUSR2两个,就两个够吗?更要命的是如果要自定义信号如#define SIG_MYSIG ....的话要改内核才行,哥瞬间就崩溃了,以前一直对linux的敬仰顿然全无,还好在这里找到了方法
http://bbs.chinaunix.net/viewthread.php?tid=989499
即是可以的,可按照这样#define MYSIG_MSG SIGUSR1 + 20定义后,发现程序运行后总是马上就直接终止运行了,用eclipse跳转过去一看#define SIGUSR1 10 /* User-defined signal 1 (POSIX). */,而加20就变成了30,30是什么?30是 #define SIGPWR 30 ,翻开《UNIX环境高级编程》一查这可是电源失效或重启动呀哥。哪位大侠最先说是在SIGUSR1基础上定义的?我就不信你实验成功了!!!!!!!!!!!!
正确方法是在__SIGRTMIN(32)基础上定义的,__SIGRTMIN(32)到__SIGRTMAX(64)是留着的实时信号,于是我定义了#define SIG_RECVDATA __SIGRTMIN+1,
可还是不行?程序其它几处非静态成员函数惹来的麻烦已够多了,我还以为是那些地方出了错,最后才发现signal调用时signal(SIG_RECVDATA,InternalRecvSigHandler),它总是返回SIG_ERR,即根本从一开始注册信号就没有成功 ,难道32-64真是系统预留的实时信号,不是给开发者的??,经过一番挣扎,在CSDN上几句短短的回复中发现说__SIGRTMIN基础上的前3个最好不要用,它是linuxthread用的,真是蛋疼,你内部要用 的话把__SIGRTMIN定义大点嘛,总之__SIGRTMIN和__SIGRTMAX之间的一定能用就好!!
最后改成#define SIG_RECVDATA __SIGRTMIN+10,哎,终于成功了!
linux 自定义信号的更多相关文章
- Linux信号使用及自定义信号
linux自定义信号:https://www.cnblogs.com/bigben0123/p/3186661.html linux信号.值及解释:https://blog.csdn.net/luot ...
- Qt之自定义信号和槽函数
自定义信号和槽函数: 1.类的声明和实现分别放在.h和.cpp文件中: 2.类声明包含Q_OBJECT宏: 3.信号只要声明不要设计其的实现函数 4.发射信号用emit关键字 5.自定义槽的实现与普通 ...
- linux kill信号列表
linux kill信号列表 $ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) ...
- Linux自定义命令
linux自定义命令,就是给当前命令取个别名.比如:ls 列出当前的文件,rm + 文件名 就能删除该文件,如何自定义命令,可以使用alias比如:alias gobin='cd /opt/tomca ...
- Linux进程间通信——信号集函数
一.什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中 ...
- 【PyQt5-Qt Designer】pyqtSignal()-高级自定义信号与槽
PyQt 5信号与槽的几种高级玩法 参考:http://www.broadview.com.cn/article/824 from PyQt5.QtCore import QObject , pyqt ...
- linux自定义开机启动服务和chkconfig使用方法
linux自定义开机启动服务和chkconfig使用方法 1. 服务概述在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动 ...
- Qt 学习之路 2(5):自定义信号槽
Home / Qt 学习之路 2 / Qt 学习之路 2(5):自定义信号槽 Qt 学习之路 2(5):自定义信号槽 豆子 2012年8月24日 Qt 学习之路 2 131条评论 上一节我们详 ...
- (转)linux自定义开机启动服务和chkconfig使用方法
原文:https://www.cnblogs.com/jimeper/archive/2013/03/12/2955687.html linux自定义开机启动服务和chkconfig使用方法 1. 服 ...
随机推荐
- 编写一个供浏览器端使用的NPM包
此文已由作者吴维伟授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在编写程序时,总会有一些代码是我们不愿意一遍又一遍重复地去写的,比如一些UI或交互相似组件,或是一些相似的流 ...
- Centos 6.9下部署Oracle 11G数据库环境的操作记录
操作系统:Centos6.9(64Bit)Oracle:11g .11.2.0.4.0版本Ip地址:172.16.220.139 废话不多说了,下面记录安装过程:1)安装桌面环境 [root@vm01 ...
- 网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)
在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量.总带宽.ip统计和url统计等.虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了像每日PV,带宽,ip统计等数 ...
- Nginx入门【转】
原文地址:http://blog.csdn.net/u012486840/article/details/53098890 1.静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上 ...
- c++入门之关于cin,cout以及数据流的认识
- vs2015安装及初步试用
Vs2015一直都听说好用,便捷.之前用vc++6.0,总感觉界面很灰,让人编程兴趣不高,恰巧借此机会,安装一下vs2015,从编译器上体验下编程的舒心,方便.希望我不会变得太懒... 首先,我下的是 ...
- PolarCode
什么是polar code极化码 为了实现可靠的信号传输,编码学家在过去的半个多世纪提出多种纠错码技术如里所码(RS码).卷积码,Turbo码等,并在各种通信系统中取得了广泛的应用.但是以往所有实用的 ...
- MYSQL使用中字符编码一坑
AJAX提交的字符出错,还以为是AJAX配置的错误呢!幸亏检查了一下MYSQL连接的字符集,发现开发库与本地库配置的字符集是也不一样的.
- Angular $location获取端口号
<!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...
- python模块_多重继承的MRO
MRO(Method Resolution Order):方法解析顺序.Python语言包含了很多优秀的特性,其中多重继承就是其中之一,但是多重继承会引发很多问题,比如二义性,Python中一切皆引用 ...