随笔分类 -  linux|c|c++

摘要:使用场景 对底层代码进行 HOOK, 不可避免的要考虑多线程同步问题, 当然也可以写个类似 java 的线程本地变量来隔离内存空间。 死锁分析 恩, 道理其实大家都懂的, 毕竟大学就学了操作系统,理论神马的窝就不讲了哈, 这里说说我的处理方法。首先线程同步问题主要是多线程对相同的可写内存进行操作导致 阅读全文
posted @ 2017-04-13 11:32 章炎 阅读(588) 评论(0) 推荐(0)
摘要:最近在写底层hook的时候, 涉及到线程安全问题, 最开始我设计的时候使用的互斥量, 但是考虑到都是底层函数,加锁会导致性能问题, 一直在思考优化方案, 后来偶然想到,java里面有线程本地变量的API, 或许linux也有, 问过度娘后发现还真有对应的API, 而且c++11的标准库里面也有实现, 阅读全文
posted @ 2016-10-16 18:33 章炎 阅读(1207) 评论(0) 推荐(0)
摘要:http://www.oschina.net/translate/cpp-virtual-inheritance 编译器会加入一些代码, 指针的转换操作编译器会自动加偏移 阅读全文
posted @ 2016-10-16 13:37 章炎 阅读(126) 评论(0) 推荐(0)
摘要:习惯了用java, 现在切换到c++遇到了一些很滑稽的问题, 特此记录。 一. 使用了野指针 都知道不能使用野指针, 指针定义后,要初始化为null, 我在项目里面默认构造函数里面确实初始化为null了, 但是在拷贝构造函数里面忘了,结果。。。 class A{ public: A():p(0){} 阅读全文
posted @ 2016-08-24 15:03 章炎 阅读(324) 评论(0) 推荐(0)
摘要:最近在搞jni, 所以又捡起了c++, java 和c++都是类c的语言, 所以相似度还是很高的, 这就导致了某些地方窝老是搞混, 比如类的实例化。 c++: | java: class A{ | public class A{ public: | public A(int i){}; A(int 阅读全文
posted @ 2016-08-15 16:42 章炎 阅读(3703) 评论(0) 推荐(0)