
c++
文章平均质量分 80
归来已是客
这个作者很懒,什么都没留下…
展开
-
linux SIGSEGV 信号捕捉,保证发生段错误后程序不崩溃
在linux中编程的时候 有时候 try catch 可能满足不了我们的需求。因为碰到类似数组越界 ,非法内存访问之类的 ,这样的错误无法捕获。下面我们介绍一种使用捕获信号实现的异常 用来保证诸如段错误之类的错误发生时程序不会崩溃,而是跳过代码继续执行。首先我们来看看发生段错误之后系统的处理。发生段错误后系统会抛出 SIGSEGV 信号 ,之后 调用默认的信号处理函数 ,产生core文件 ,然后关原创 2013-01-05 18:35:21 · 35580 阅读 · 13 评论 -
面试题目整理 线程安全的单例模式
首先看看boost 的单例模式 @ boost/thread/detail/singleton.hpptemplate class singleton : private T{private: singleton(); ~singleton();public: static T &instance();};template原创 2017-03-15 12:52:54 · 674 阅读 · 0 评论 -
面试题目整理 关于服务器TIME_WAIT和CLOSE_WAIT
关于TCP 三次握手和四次挥手下面这个图已经很清晰了(盗图)我之前用asio碰到过 大量连接 CLOSE_WAIT 状态现在想想是没调用 socket_.shutdown(tcp::socket::shutdown::shutdown_both,ec);就直接析构了socket_具体原因是客户端请求关闭连接的时候 服务器在收到 FIN M 之后 没发送 ack M+1 和 FIN ...原创 2017-03-15 18:50:51 · 778 阅读 · 0 评论 -
面试题目整理 虚函数和多态
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我转载 2017-03-16 10:09:51 · 1454 阅读 · 0 评论 -
protobuf 内存解读(从源码分析为什么省内存)
源码来自于 protobuf 3.5//TestStruct.protomessage Pos{uint32 x = 1;uint32 y = 2;}Pos p;p.set_x(1);std::string s1 = p.SerializeAsString();可以看到 s1.size() = 2查看内存得到 十六进制为 0x 08 01 二进制位 0000...原创 2018-08-09 16:09:48 · 2671 阅读 · 0 评论