<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ready,GO~]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/otuhacker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; otuhacker]]></copyright><item><title><![CDATA[shell变量的一点总结]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/40454675</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/40454675</guid><author>otuhacker</author><pubDate>Sat, 25 Oct 2014 17:45:47 +0800</pubDate><description><![CDATA[下午研究了下source . 命令，做下总结：
假设有脚本 test.sh,内容（比较简单，能说明问题即可）如下：


#!/bin/bash
export str_1="hi"
str_2="hello"
echo $str_1
echo $str_2

I.在当前shell环境中执行 ./test.sh  得到：
hi
hello
结果在意料中。在当前shell中再执]]></description><category></category></item><item><title><![CDATA[vim学习记录]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/39802493</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/39802493</guid><author>otuhacker</author><pubDate>Sun, 05 Oct 2014 12:46:29 +0800</pubDate><description><![CDATA[～]]></description><category></category></item><item><title><![CDATA[linux awk命令详解]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/39290437</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/39290437</guid><author>otuhacker</author><pubDate>Mon, 15 Sep 2014 11:28:01 +0800</pubDate><description><![CDATA[简介

awk是一个强大的文本分析工具，相对于grep的查找，sed的编辑，awk在其对数据分析并生成报告时，显得尤为强大。简单来说awk就是把文件逐行的读入，以空格为默认分隔符将每行切片，切开的部分再进行各种分析处理。

awk有3个不同版本: awk、nawk和gawk，未作特别说明，一般指gawk，gawk 是 AWK 的 GNU 版本。

awk其名称得自于它的创始人 Alfr]]></description><category></category></item><item><title><![CDATA[安装ubuntu]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/38796195</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/38796195</guid><author>otuhacker</author><pubDate>Sun, 24 Aug 2014 14:52:29 +0800</pubDate><description><![CDATA[1. ultra制作u盘安装ubuntu 14.04]]></description><category></category></item><item><title><![CDATA[Linux SSH 使用rsa认证方式 免输入密码]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/38781517</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/38781517</guid><author>otuhacker</author><pubDate>Sat, 23 Aug 2014 21:09:19 +0800</pubDate><description><![CDATA[1.client 
ssh-keygen -t rsa
cd ~/.ssh
将.id_rsa.pub内容 cp 至 server端 ~/.ssh/authorized_keys（需要自己touch）中


2.server
chmod -R 750 ～/.ssh
重启sshd服务 sudo service sshd restart


ok，试着在client ssh xxx]]></description><category></category></item><item><title><![CDATA[ubuntu php curl扩展安装]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/38694995</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/38694995</guid><author>otuhacker</author><pubDate>Wed, 20 Aug 2014 01:20:22 +0800</pubDate><description><![CDATA[1.进入php源码目录]]></description><category></category></item><item><title><![CDATA[源码编译nginx，php]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/38409309</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/38409309</guid><author>otuhacker</author><pubDate>Thu, 07 Aug 2014 00:28:36 +0800</pubDate><description><![CDATA[download nginx，php源码：
http://nginx.org/en/download.html]]></description><category></category></item><item><title><![CDATA[Effective C++ 笔记]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/21471025</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/21471025</guid><author>otuhacker</author><pubDate>Tue, 18 Mar 2014 17:21:33 +0800</pubDate><description><![CDATA[条款25：延迟变量定义出现
应该延迟变量定义，直到使用该变量前，甚至应该延迟至可以给该变量赋初值。


string encrptPassword(const string& password)
{
...
string encrypted(password);  //通过copy构造函数定义并初始化。
encrypt(encrypted);
return encrypted;]]></description><category></category></item><item><title><![CDATA[读书笔记]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/17993877</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/17993877</guid><author>otuhacker</author><pubDate>Wed, 08 Jan 2014 10:18:19 +0800</pubDate><description><![CDATA[p37 写时复制策略：当一个新进程被创建时，内核仅仅把父进程的页框赋给子进程的地址空间，但是把这些页框标记为只读。一旦父或子进程试图修改页中的内容时，一个异常就产生。异常处理程序把新页框赋给受影响的进程，并用原来页中的内容初始化新页框。]]></description><category></category></item><item><title><![CDATA[统计字符数]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/12153723</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/12153723</guid><author>otuhacker</author><pubDate>Sun, 29 Sep 2013 10:10:11 +0800</pubDate><description><![CDATA[#include 
#include 

using namespace std;

typedef struct node *nodeptr;
typedef struct node{
	char *word;
	int count;
	nodeptr next;
}node;

#define  NHASH 29989
#define  MULT 31

nodeptr bin[NHASH];]]></description><category></category></item><item><title><![CDATA[排序]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11908883</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11908883</guid><author>otuhacker</author><pubDate>Sun, 22 Sep 2013 21:48:26 +0800</pubDate><description><![CDATA[//堆排序
static void  swap(int &a,int &b)
{
	if (a!=b)
	{
		a=a^b;
		b=a^b;
		a=a^b;
	}
}
void siftdown(int array[],int i, int length)
{
	int j;
	for (j = 2*i+1; j < length ;)
	{
		if (j+1<length && arra]]></description><category></category></item><item><title><![CDATA[Linux命令行里的“瑞士军刀”]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11875047</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11875047</guid><author>otuhacker</author><pubDate>Sat, 21 Sep 2013 16:59:18 +0800</pubDate><description><![CDATA[这里说的“瑞士军刀”是指那些简单的一句命令就能完成其它高级语言一大片代码才能完成的工作。

下面的这些内容是Quora网站上Joshua Levy网友的总结：

通过sort/uniq获取文件内容的交集、合集和不同之处：假设有a、b两个文本文件，文件本身已经去除了重复内容。下面是效率最高的方法，可以处理任何体积的文件，甚至几个G的文件。(Sort对内存没有要求，但也许你需要用 -T 参数。]]></description><category></category></item><item><title><![CDATA[面试]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11874855</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11874855</guid><author>otuhacker</author><pubDate>Sat, 21 Sep 2013 16:56:13 +0800</pubDate><description><![CDATA[●strstr(char *str1, char
 *str2)：在字符串中查找完全匹配的子字符串。

●KMP算法：一个字符串中定位另一个串的高效算法。根据子串的最后一个字符定位，预先计算可能匹配的位置，只比较主串中与其相等的值，当然要有一个中间变量next[最后一个字符]=下一个在主串出现的下标。

●函数调用方式：1.函数表达式，如max(x,y);2.函数语句，如printf()]]></description><category></category></item><item><title><![CDATA[线程安全 单例模式]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11831417</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11831417</guid><author>otuhacker</author><pubDate>Thu, 19 Sep 2013 15:18:48 +0800</pubDate><description><![CDATA[class Sigleton
{
public:
	static Sigleton *GetInstance()
	{
		if (NULL == pInstance)
		{
			pthread_mutex_lock(&pMutex);
			if (NULL == pInstance)
			{
				pInstance = new Sigleton;
			}
			pthread_mu]]></description><category></category></item><item><title><![CDATA[hash_map和map]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11672623</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11672623</guid><author>otuhacker</author><pubDate>Sat, 14 Sep 2013 09:53:01 +0800</pubDate><description><![CDATA[这里列几个常见问题，应该对你理解和使用hash_map比较有帮助。
4.1 hash_map和map的区别在哪里？

构造函数。hash_map需要hash函数，等于函数；map只需要比较函数(小于函数).存储结构。hash_map采用hash表存储，map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不一样的。
4.2 什么时候需要用hash_map，什么时候需要用m]]></description><category></category></item><item><title><![CDATA[讨论unix进程的设置用户ID,有效用户ID，保存设置ID，文件的设置位]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11612789</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11612789</guid><author>otuhacker</author><pubDate>Thu, 12 Sep 2013 17:37:09 +0800</pubDate><description><![CDATA[目的：
       讨论unix进程的设置用户ID,有效用户ID，保存设置ID，文件的设置位在进程权限上的问题。
基础知识：
       进程关联ID：
  每个进程运行时都附带有用户ID和组ID属性，当对一个文件或设备进行操作时，内核会用进程的有效或实际用户（或组）ID去测试这个文件的3组权限位（用户，组，其他），当为真时才执行，否则保存：
  1.实际用户ID，组ID：执行这个程]]></description><category></category></item><item><title><![CDATA[练习coding~]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11515045</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11515045</guid><author>otuhacker</author><pubDate>Tue, 10 Sep 2013 08:26:29 +0800</pubDate><description><![CDATA[//@duanby 小顶堆. 选K小元素放入result数组中.
void GetLargetstNNum(int array[],int result[],int length, int K)
{
	priority_queue,greater > heap;
	int i;
	for (i=0;i<length;++i)
	{
		heap.push(array[i]);
	}

	for (]]></description><category></category></item><item><title><![CDATA[主定理]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11485191</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11485191</guid><author>otuhacker</author><pubDate>Mon, 09 Sep 2013 17:38:00 +0800</pubDate><description><![CDATA[T(n)=25T(n/5)+n^2，求T(n)？




先转网上的主定理，对照主定理，题中a=25，b=5，f（n）=n^2，符合第（2）种情况，因此时间复杂度为O(n^2*Logn)]]></description><category></category></item><item><title><![CDATA[数组分割]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11394039</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11394039</guid><author>otuhacker</author><pubDate>Sun, 08 Sep 2013 19:24:04 +0800</pubDate><description><![CDATA[一、题目概述：有一个没有排序，元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组，并使两个子数组的和最接近。
假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略，令S(k, i)表示前k个元素中任意i个元素的和的集合。显然：
S(k, 1) = {A[i] | 1
S(k, k) = {A[1]+A[2]+…+A[k]}
S(k, i) = S(]]></description><category></category></item><item><title><![CDATA[C++中的临时对象都是const类型]]></title><link>https://blog.youkuaiyun.com/otuhacker/article/details/11247315</link><guid>https://blog.youkuaiyun.com/otuhacker/article/details/11247315</guid><author>otuhacker</author><pubDate>Fri, 06 Sep 2013 17:09:53 +0800</pubDate><description><![CDATA[先看代码：


 1 #include 
 2 using namespace std;
 3 
 4 class A {};
 5 
 6 class B
 7 {
 8   public:
 9       B(){}
10       B(A& a){}
11 };
12 
13 class B1: public B
14 {
15  public:
16      B1(const ]]></description><category></category></item></channel></rss>