<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Stephan14的专栏]]></title><description><![CDATA[C/C++]]></description><link>https://blog.youkuaiyun.com/Stephan14</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Stephan14]]></copyright><item><title><![CDATA[新博客地址]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/59507899</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/59507899</guid><author>Stephan14</author><pubDate>Thu, 02 Mar 2017 14:29:00 +0800</pubDate><description><![CDATA[由于工作原因更新博客地址
新博客地址]]></description><category></category></item><item><title><![CDATA[虚拟化技术与容器技术]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/52137993</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/52137993</guid><author>Stephan14</author><pubDate>Sat, 06 Aug 2016 19:16:47 +0800</pubDate><description><![CDATA[作为一种部署应用程序的全新方式，容器技术在短时间内获得了广泛关注，但是这种技术同样存在某些限制，并且和虚拟机存在本质上的不同。


       虚拟化技术已经改变了现代计算方式，它能够提升系统资源使用效率、消除应用程序和底层硬件之间的依赖关系，同时加强负载的可以移植性和安全性，但是hypervisor和虚拟机只是部署虚拟负载的方式之一。作为一种能够替代传统虚拟化技术的解决方案，容器虚拟化技]]></description><category></category></item><item><title><![CDATA[开源软件的安装]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/52015663</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/52015663</guid><author>Stephan14</author><pubDate>Sun, 24 Jul 2016 20:05:37 +0800</pubDate><description><![CDATA[近期在研究mesos--开源的分布式框架，在安装的时候编译时花费了很长时间，同时发现这些开源的软件安装方法都差不多，一般都遵循以下几步：
1.使用wget命令下载源代码的压缩包，一般都是.tar.gz格式的。当然，如果你已经安装了git,可以使用git clone命令从github上下载，这样可以不用解压。命令如下：
tar -zvxf XXX.atr.gz
git clone URL
2.]]></description><category></category></item><item><title><![CDATA[Linux上配置vim]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/51772491</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/51772491</guid><author>Stephan14</author><pubDate>Tue, 28 Jun 2016 00:12:03 +0800</pubDate><description><![CDATA[近期想在linux上用vim编写代码，所以现试着配置vim，在网上找了两篇教程来配置简单的vim开发环境：
linux vim配置文件
vim插件：显示树型目录插件NERDTree安装和使用
通过上面两个教程，我的.vimrc文件如下：
"""""""""""""""""""
" 显示相关 
"""""""""""""""""""
"set shortmess=atI " 启动的时候不显示]]></description><category></category></item><item><title><![CDATA[FTP主动模式和被动模式的区别]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/51582803</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/51582803</guid><author>Stephan14</author><pubDate>Sat, 04 Jun 2016 08:33:50 +0800</pubDate><description><![CDATA[转自：http://limssb.blog.163.com/blog/static/14730437201312582915941/




基础知识：

FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口，20端口是数据端口。当混入主动/被动模式的概念时，数据端口就有可]]></description><category></category></item><item><title><![CDATA[使用Nginx负载均衡]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/51481907</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/51481907</guid><author>Stephan14</author><pubDate>Mon, 23 May 2016 15:21:14 +0800</pubDate><description><![CDATA[近期尝试使用Nginx做负载均衡，所使用的服务器一个是我自己的腾讯云服务器，另一个是吉林大学的服务器，采用默认的轮询算法实现负载均衡。
配置文件设置如下：
#用户组　用户
#user  nobody;

#工作进程，根据硬件调整
worker_processes  1;

#错误日志
#error_log  logs/error.log;
#error_log  logs/error.log]]></description><category></category></item><item><title><![CDATA[使用Nginx缓存网页]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/51307822</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/51307822</guid><author>Stephan14</author><pubDate>Tue, 03 May 2016 22:22:19 +0800</pubDate><description><![CDATA[这几天尝试使用Nginx服务器，查看了该服务器的用途。发现该服务器可以用来实现反向代理和负载均衡等功能，自己通过查找资料实现了缓存网页的功能，下面是我的Nginx的配置文件的设置，配置文件的路径为：/usr/local/nginx/conf/nginx.conf
下面有两篇关于nginx.conf的详细介绍：
nginx.conf的完整配置说明
Nginx安装及配置文件nginx.conf详]]></description><category></category></item><item><title><![CDATA[交换两个整数]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/51083412</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/51083412</guid><author>Stephan14</author><pubDate>Thu, 07 Apr 2016 10:36:38 +0800</pubDate><description><![CDATA[今天写程序的时候回想起曾经好像在那见过没有使用中间变量进行两个整数的交换，马马虎虎地记得那时通过加减法来实现的，所以就查了一下资料，果然存在这这种方法，代码如下：
void swap1 (int& x,int& y)
{
             x=x+y;
             y=x-y;
             x=x-y;
}
void swap2 (int &x,int &y]]></description><category></category></item><item><title><![CDATA[127.Word Ladder]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/51023839</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/51023839</guid><author>Stephan14</author><pubDate>Thu, 31 Mar 2016 11:07:23 +0800</pubDate><description><![CDATA[昨天晚上在LeetCode随便选了一道题写会儿代码，选中了Word Ladder，这道题刚开始只是有一点思路，不知道具体往下怎么做，先看看题吗要求如下:


Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequ]]></description><category></category></item><item><title><![CDATA[1.Two Sum]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/51002047</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/51002047</guid><author>Stephan14</author><pubDate>Mon, 28 Mar 2016 23:05:05 +0800</pubDate><description><![CDATA[今晚看完天下足球之后，在leetcode上最一道题，于是选择了第一道题Two Sum，题目的叙述如下：


Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input wou]]></description><category></category></item><item><title><![CDATA[179.Largest Number]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50991565</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50991565</guid><author>Stephan14</author><pubDate>Sun, 27 Mar 2016 14:34:09 +0800</pubDate><description><![CDATA[近期开始在LeetCode上开始刷题，第一道题是Largest Number，题目内容如下：


Given a list of non negative integers, arrange them such that they form the largest number.

For example, given [3, 30, 34, 5, 9], the largest for]]></description><category></category></item><item><title><![CDATA[Linux的并发套接字编程]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50973662</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50973662</guid><author>Stephan14</author><pubDate>Thu, 24 Mar 2016 18:25:54 +0800</pubDate><description><![CDATA[近期学习了并发套接字编程，通过查找资料发现，并发套接字编程可以通过三种方式来实现：
1.多线程
2.多进程
3.多路复用
在上一篇博客中，我介绍了简单的socket模型，并且利用多进程实现了并发套接字编程。但是，我发现利用多进程实现的并发套接字编程需要很多的资源并且效率也不是特别的高，所以，下面来介绍一下通过多路复用实现的并发套接字，采取这种方式系统内核缓冲I/O数据，当某个I/O准备好后]]></description><category></category></item><item><title><![CDATA[字符串匹配]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50820351</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50820351</guid><author>Stephan14</author><pubDate>Mon, 07 Mar 2016 17:08:40 +0800</pubDate><description><![CDATA[前几天看书，书中有一道联系题：编写一个函数，在该函数中的第一个参数中进行查找，并返回匹配第二个参数所包含的字符的数量。然后，第一种想法就是使用做笨的方法，从第一个参数的字符串从第一个字符开始到最后一个字符逐一进行匹配，为了写起来更简便一点，我借用了一些C语言的库函数，最终代码如下：
#include
#include

int count_chars( char const *str, char]]></description><category></category></item><item><title><![CDATA[C++中模板与用C语言中实现模板]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50807379</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50807379</guid><author>Stephan14</author><pubDate>Sat, 05 Mar 2016 10:02:16 +0800</pubDate><description><![CDATA[1、模板的概念

我们已经学过重载(Overloading)，对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如，为求两个数的最大值，我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。

//函数1.

int max(int x,int y)
{  return(x>y)?x:y ; }

//函数2.]]></description><category></category></item><item><title><![CDATA[Linux的SOCKET编程详解]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50765529</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50765529</guid><author>Stephan14</author><pubDate>Mon, 29 Feb 2016 15:00:05 +0800</pubDate><description><![CDATA[1. 网络中进程之间如何通信

进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行，为保证两个相互通信的进
程之间既互不干扰又协调一致工作，操作系统为进程通信提供了相应设施，如
UNIX BSD有：管道（pipe）、命名管道（named pipe）软中断信号（signal）
UNIX system V有：消息（message）、共享存储区（shared memory]]></description><category></category></item><item><title><![CDATA[Stack smashing detected]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50623575</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50623575</guid><author>Stephan14</author><pubDate>Tue, 02 Feb 2016 14:39:43 +0800</pubDate><description><![CDATA[今天写程序时发现一个新的错误：Stack smashing detected，这个错误以前没有遇到，所以先上网查了一下，并记录下来解决这个问题的过程。
首先这个程序的源代码如下，这个程序是用来求解1000以内的素数。
#include

#define TRUE '1'
#define FALSE '0'

int main(int argc, char const *argv[]) {]]></description><category></category></item><item><title><![CDATA[数组名和指针]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50619091</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50619091</guid><author>Stephan14</author><pubDate>Mon, 01 Feb 2016 16:06:37 +0800</pubDate><description><![CDATA[今天自己尝试写了一个小程序，但是运行时发生错误，就简单的回顾了一下C语言中的数组和指针，下面是这个小程序修改之后的正确的版本以及部分注释。
#include
int main(int argc, char const *argv[]) {
  char str[] = "sdfdsgfd";//此处不能够使用指针
  char *pstr = str;

  while ( *pstr  ) {]]></description><category></category></item><item><title><![CDATA[获取掩码]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50593394</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50593394</guid><author>Stephan14</author><pubDate>Wed, 27 Jan 2016 12:34:46 +0800</pubDate><description><![CDATA[在C语言中，可以通过调用如下的函数获取掩码int creat_mask( int starting_bit, int ending_bit )
{
  /*为保证进行逻辑移位而不是算术移位，将掩码声明为无符号类型*/
  unsigned int mask = (unsigned) - 1;
  mask >>= INI_BITS - (starting_bit - ending_bit + 1]]></description><category></category></item><item><title><![CDATA[linux与windows回车换行符的区别]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50555684</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50555684</guid><author>Stephan14</author><pubDate>Thu, 21 Jan 2016 15:44:40 +0800</pubDate><description><![CDATA[问题来源：

“回车”（carriage return）VS  “换行”（line feed）
在计算机还没有出现之前，有一种叫做电传打字机（Teletype Model 33）的玩意，每秒钟可以打10个字符。但是它有一个问题，就是打完一行换行的时候，要用去0.2秒，正好可以打两个字符。要是在这0.2秒里面，又有新的字符传过来，那么这个字符将丢失。
于是，研制人员想了个办法解决这个问题，就]]></description><category></category></item><item><title><![CDATA[scanf详解]]></title><link>https://blog.youkuaiyun.com/Stephan14/article/details/50555134</link><guid>https://blog.youkuaiyun.com/Stephan14/article/details/50555134</guid><author>Stephan14</author><pubDate>Thu, 21 Jan 2016 14:41:50 +0800</pubDate><description><![CDATA[转自：http://blog.sina.com.cn/s/blog_4d99abae0100dpxt.html


当读入发生错误，或者是到达文件尾，scanf就会返回EOF这个宏的值。
while(scanf("%d%d",&a,&b)!=EOF），这个语句就是说，当读取没有到达文件尾的话，就不停的读取。
scanf 函数的返回值反映的是按照指定的格式符正确读入的数据的个数。如果输入数]]></description><category></category></item></channel></rss>