<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[o_bvious的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/o_bvious</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; o_bvious]]></copyright><item><title><![CDATA[左值引用、右值引用和引用折叠]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/80315806</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/80315806</guid><author>o_bvious</author><pubDate>Mon, 14 May 2018 21:46:19 +0800</pubDate><description><![CDATA[左值引用、右值引用和引用折叠




左值引用、右值引用和引用折叠
左值和右值
左值
右值
一些举例


左值引用和右值引用
左值引用
右值引用
左值引用和右值引用
参数都是左值


一个抄来的例子
模板类型


引用折叠








左值和右值

C++( 包括 C) 中所有的表达式和变量要么是左值，要么是右值。可以用以下方式理解左值和右值：



左值


左值的定义就是非临时对象，那些可...]]></description><category></category></item><item><title><![CDATA[ICMP协议详解]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/79366194</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/79366194</guid><author>o_bvious</author><pubDate>Sat, 24 Feb 2018 23:35:14 +0800</pubDate><description><![CDATA[ICMP报文格式




ICMP报头从IP报头的第160位开始（IP首部20字节）（除非使用了IP报头的可选部分）。




ICMP报头



type 8位


询问报文： 
8 和 0 ping 请求 响应 
13和 14 ping时间戳，请求和回答
差错报告：终点不可达，超时，路由改变等




code  8位

进一步划分错误类型



校验和 16位

ICMP头部和数据



I...]]></description><category></category></item><item><title><![CDATA[C/C++的动态库和静态库]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/79341422</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/79341422</guid><author>o_bvious</author><pubDate>Tue, 20 Feb 2018 23:22:46 +0800</pubDate><description><![CDATA[C/C++的动态库和静态库



CC的动态库和静态库
静态库
静态库特点
生成静态库
静态库的两大缺点


动态库
动态库特点
生成动态库
使用动态库
在Linux下显式调用动态库
注意显式调用C动态库




静态库动态库的使用
注意事项


动态库和静态库的不同
静态库动态库链接搜索路径


头文件相关
其他






静态库

在链接阶段，将汇编生成的目标文件.o与引用到的库一起链接打包...]]></description><category></category></item><item><title><![CDATA[套接字编程注意事项]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/79338392</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/79338392</guid><author>o_bvious</author><pubDate>Mon, 19 Feb 2018 22:23:28 +0800</pubDate><description><![CDATA[




信号
SIGCHLD信号和僵尸进程
SIGPIPE信号


被中断的系统调用
惊群问题
read
内存对齐和字节序
TCP粘包问题
处理粘包















信号



SIGCHLD信号和僵尸进程

多进程服务器需要处理SIGCHLD信号，SIGCHLD默认会导致进程终止；不回收子进程会导致僵尸进程太多；循环是因为信号不会累计，避免多个子进程同时结束，而只回收一个子进程。...]]></description><category></category></item><item><title><![CDATA[STL容器和析构函数 注意事项]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/79331299</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/79331299</guid><author>o_bvious</author><pubDate>Fri, 16 Feb 2018 22:58:16 +0800</pubDate><description><![CDATA[




局部变量存入容器会调用拷贝构造函数而后存放在堆区生命周期变长
容器调用clearerase或者容器离开作用域会调用元素的析构函数
容器存放对象指针并不会调用析构函数











假设有一个类如下：

class Foo
{
 public:
     Foo(int n_){
         n = n_;
         printf(&quot;Foo()  %d\n&quot;, n);...]]></description><category></category></item><item><title><![CDATA[虚析构函数]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/78148759</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/78148759</guid><author>o_bvious</author><pubDate>Sun, 01 Oct 2017 20:50:22 +0800</pubDate><description><![CDATA[虚析构函数@(C++实践)很多书里都有说过，要把基类的析构函数声明为virtual，那么为什么呢？ 
看下面这个例子：class Base
{
public:
    Base(){
        std::cout << "Base::Base()" <<  std::endl;
    }
    ~Base(){
        std::cout << "Base::~Base()" <<]]></description><category></category></item><item><title><![CDATA[C++解析多行复杂输入]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/78051706</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/78051706</guid><author>o_bvious</author><pubDate>Thu, 21 Sep 2017 14:33:56 +0800</pubDate><description><![CDATA[复杂输入解析参数
不确定行数,每行不确定输入个数，以空格为间隔的输入参数 
Unix系统以CTRL+D结束输入 ，Windows CTRL+z ??]]></description><category></category></item><item><title><![CDATA[mysql导入及导出：备份与恢复]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/77980145</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/77980145</guid><author>o_bvious</author><pubDate>Thu, 14 Sep 2017 14:36:00 +0800</pubDate><description><![CDATA[mysql导入及导出，数据备份，数据恢复]]></description><category></category></item><item><title><![CDATA[Linux账户管理]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/77772824</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/77772824</guid><author>o_bvious</author><pubDate>Fri, 01 Sep 2017 14:34:34 +0800</pubDate><description><![CDATA[Linux账户管理所有实验在centos 7下执行Linux账户管理
添加用户
快速建立一个用户
选项及其他不常用选项说明
设置密码
添加sudo权限
sudo权限有什么用处
如何给用户添加sudo权限
Linux用户账户和密码添加用户useradd [-u UID] [-g 初始群组] [-mM]  [-d 用户目录] 快速建立一个用户如果你只是想添加一个普通用户供自己使用，那么执行下面这条命令$]]></description><category></category></item><item><title><![CDATA[C语言链接Mysql，mysql API简单说明。]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/60761768</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/60761768</guid><author>o_bvious</author><pubDate>Tue, 07 Mar 2017 13:20:14 +0800</pubDate><description><![CDATA[mysql 。C语言]]></description><category></category></item><item><title><![CDATA[epoll服务器套路代码]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/59523678</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/59523678</guid><author>o_bvious</author><pubDate>Thu, 02 Mar 2017 15:18:39 +0800</pubDate><description><![CDATA[epoll服务器]]></description><category></category></item><item><title><![CDATA[如何使用ctags跳转到库函数/第三方库函数]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/55190367</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/55190367</guid><author>o_bvious</author><pubDate>Wed, 15 Feb 2017 10:52:12 +0800</pubDate><description><![CDATA[首先安装ctags，安装过程网上很多，就不多讲，安装之后执行ctags -R,就可以在本项目内实现代码跳转了，但不能跳转到不是在本项目的代码中定义的tag。 
“Ctrl+]”组合键跳转进去。然后可以按“Ctrl+O”跳转回来。 
方法一： 
如果想实现跳转到非本项目的tag，则必须让Vim知道这些tag在哪。刚才的项目在/home/user/code/目录下，现在假设又有一个项目在/home/us]]></description><category></category></item><item><title><![CDATA[来一个最简单的TCP服务器]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52663037</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52663037</guid><author>o_bvious</author><pubDate>Sun, 25 Sep 2016 17:08:02 +0800</pubDate><description><![CDATA[1 #include<stdio.h>
  2 #include<sys/types.h>
  3 #include<sys/socket.h>
  4 #include<stdlib.h>
  5 #include<netinet/in.h>
  6 #include<errno.h>
  7 
  8 
  9 
 10 int init(const char* ip,int port)
 11]]></description><category></category></item><item><title><![CDATA[字符串的全排]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52575393</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52575393</guid><author>o_bvious</author><pubDate>Sun, 18 Sep 2016 16:16:05 +0800</pubDate><description><![CDATA[全排列问题]]></description><category></category></item><item><title><![CDATA[单例模式的两种线程安全并且效率的写法]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52557750</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52557750</guid><author>o_bvious</author><pubDate>Fri, 16 Sep 2016 21:18:00 +0800</pubDate><description><![CDATA[单例模式]]></description><category></category></item><item><title><![CDATA[分享两道CVTE面试题]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52541772</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52541772</guid><author>o_bvious</author><pubDate>Wed, 14 Sep 2016 22:09:56 +0800</pubDate><description><![CDATA[cvte面试题]]></description><category></category></item><item><title><![CDATA[crontab]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52497746</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52497746</guid><author>o_bvious</author><pubDate>Sat, 10 Sep 2016 23:05:49 +0800</pubDate><description><![CDATA[crontab]]></description><category></category></item><item><title><![CDATA[细说死锁]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52497472</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52497472</guid><author>o_bvious</author><pubDate>Sat, 10 Sep 2016 22:31:15 +0800</pubDate><description><![CDATA[死锁]]></description><category></category></item><item><title><![CDATA[Linux进程间通信之共享内存]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52476217</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52476217</guid><author>o_bvious</author><pubDate>Thu, 08 Sep 2016 23:07:02 +0800</pubDate><description><![CDATA[进程间通信 共享内存]]></description><category></category></item><item><title><![CDATA[linux下进程的状态，创建，替换，等待，终止]]></title><link>https://blog.youkuaiyun.com/o_bvious/article/details/52444693</link><guid>https://blog.youkuaiyun.com/o_bvious/article/details/52444693</guid><author>o_bvious</author><pubDate>Mon, 05 Sep 2016 23:04:09 +0800</pubDate><description><![CDATA[进程的状态，创建，替换，等待，终止。]]></description><category></category></item></channel></rss>