
系统编程
文章平均质量分 57
skeeter
linux下c/c++爱好者,研究方向是在线系统架构
展开
-
优雅处理段错误
摘要:某些进程在结束前必须要处理一些额外的过程才能结束,尤其是数据存储的模块,进程停止前为保证数据的完整性可能要做一些事情,如果发生段错误,这时就需要先截获segv信号,处理完后再让程序出core一般进程收到段错误信号默认是dump core文件然后退出,但有些进程在退出时需要处理额外的过程才能结束,这时就不能让信号执行默认的动作了,我们就需要截获段错误信号,然后在信号处理函数中处理额外过原创 2012-06-21 11:12:30 · 580 阅读 · 0 评论 -
从汇编角度理解volatile
一般对于volatile的解释是这样的:将变量定义为volatile可以防止编译器对变量进行优化,每次均从内存中访问变量,而不是寄存器。既然让编译器优化可以提高访问速度,那为什么又要不用它以及什么时候不用它?其实主要是配合的问题,一个变量可能在寄存器中,也可能在内存中,如果程序只有一个执行流且没有跳转,那么变量不管放到内存还是寄存器,理论上在编译阶段编译器是能够知道变量的具体位置的,使用时就不会出原创 2012-06-21 11:16:28 · 402 阅读 · 0 评论 -
基于互斥锁和条件变量实现读写锁,写优先
#include #include #include #include class MyRWLock{ public: MyRWLock():_stat(0),_have_wlock_wait(false){ pthread_mutex_init(&_mutex,NULL); pthread_cond_init(&_cond,NULL); } ~MyRWL原创 2013-07-17 22:48:37 · 957 阅读 · 0 评论