<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[forestLight的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/forestLight</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; forestLight]]></copyright><item><title><![CDATA[腾讯VS百度]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7188382</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7188382</guid><author>forestLight</author><pubDate>Mon, 09 Jan 2012 20:05:40 +0800</pubDate><description><![CDATA[送给那些即将找工作的人
1 文化
百度提倡“简单，可依赖”，我的理解是做出来的产品要靠谱，要有很好的用户体验。以搜索起家的百度，对产品质量相当看中，因为当用户认定你做得不好，没口碑后可立马更换搜索引擎。公司设有专门的质量部门，各个产品都会配备有QA人员，负责产品质量。从每年校招也能看出来，做测试的比例大概是研发的二分之一。
而腾讯提倡“拿来主义”、“微创新”。腾讯很多产品都是抄袭别人的，然后]]></description><category></category></item><item><title><![CDATA[堆和栈的区别]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7188360</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7188360</guid><author>forestLight</author><pubDate>Mon, 09 Jan 2012 19:55:14 +0800</pubDate><description><![CDATA[一、预备知识—程序的内存分配  
  一个由C/C++编译的程序占用的内存分为以下几个部分  
  1、栈区（stack）—   由编译器自动分配释放   ，存放函数的参数值，局部变量的值等。其  
  操作方式类似于数据结构中的栈。  
  2、堆区（heap）   —   一般由程序员分配释放，   若程序员不释放，程序结束时可能由OS回  
  收   。注意它与数据结构中的堆是两]]></description><category></category></item><item><title><![CDATA[广播]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7174651</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7174651</guid><author>forestLight</author><pubDate>Wed, 04 Jan 2012 13:05:31 +0800</pubDate><description><![CDATA[1. 广播在传输层只能是UDP协议，显然是不能用Tcp协议的。
2.广播在子网内进行；
3.广播地址是：子网号+全1的主机号（如子网为192.168.1.0，则广播地址为192.168.1.255）]]></description><category></category></item><item><title><![CDATA[抽象基类的构造函数和析构函数]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7166262</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7166262</guid><author>forestLight</author><pubDate>Fri, 30 Dec 2011 21:35:48 +0800</pubDate><description><![CDATA[一直以为抽象函数由于不能创建对象，所以不应该有构造函数和析构函数。今天才知道不是这样的。
     抽象基类只是不生成对象实例，但派生类仍然需要其构造函数来构造抽象类的数据部分，所以需要有构造函数，如果没有，会生成一个默认的。

      析构函数仍然是释放对象的作用，如果不用多态，不显式声明也可以；
      只不过很多抽象基类没有过多的成员函数来声明为纯虚函数，所以就用析构函数比较]]></description><category></category></item><item><title><![CDATA[与代码无关]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7090997</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7090997</guid><author>forestLight</author><pubDate>Wed, 21 Dec 2011 13:40:47 +0800</pubDate><description><![CDATA[一直很委屈……
原本相信爱情，原本以为一心一意的对别人好，就应该扛下所有的委屈与难过……
直到有一天，发现她变了；她的回忆里原来的影子不是我，而是别人……
她把爱情当成了游戏，而我太认真……
她只是想找个人帮帮她，永远都是以她为中心，别人没有什么感受。她要的不是爱情，不是相互的关心彼此，她只是在想着每天都有人追她，每天都是别人的付出……
或许她曾经喜欢过我，或许是我认为她曾经喜欢过我而已]]></description><category></category></item><item><title><![CDATA[do{}while(false)]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7077649</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7077649</guid><author>forestLight</author><pubDate>Fri, 16 Dec 2011 15:16:55 +0800</pubDate><description><![CDATA[看代码时，发现奇怪的写法。do{}while(false);觉得有点奇怪，网上查了一下，做个记录。多向高手学习。
 
// setup int status = 0; do {   // preconditions    status = doSomething();    if (status) break;       status = doSomethingElse();     if]]></description><category></category></item><item><title><![CDATA[DOMtree简介]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7032551</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7032551</guid><author>forestLight</author><pubDate>Thu, 01 Dec 2011 22:14:17 +0800</pubDate><description><![CDATA[很早就听过大名鼎鼎的DOMTree，但一直不知道这是何物。今天查了下wiki，这里对它做个小说明。算是读书笔记吧。
       1.重点1
        The Document Object Model (DOM) is a
cross-platform and

language-independent convention for representing and intera]]></description><category></category></item><item><title><![CDATA[写Spider中遇到的问题]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/7028559</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/7028559</guid><author>forestLight</author><pubDate>Wed, 30 Nov 2011 20:18:41 +0800</pubDate><description><![CDATA[1.静态成员变量定义问题：
   在类中声明了静态成员变量，必须在相应的Cpp中定义。因为一般成员变量是在定义类的时候分配空间的，而静态成员变量在没有定义类之前，即可以使用；所以要找个地方分配空间给他。
 
2. 模板函数声明和定义（.h和.cpp）要放在一起（一个.h）问题
    如果分开写，编译器会在链接的时候出错。这是因为在编译模板类的定义.obj时候，还不知道模板元素T的类型，所]]></description><category></category></item><item><title><![CDATA[int的取值范围]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6987362</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6987362</guid><author>forestLight</author><pubDate>Fri, 18 Nov 2011 10:18:24 +0800</pubDate><description><![CDATA[以前习惯了看书，然后发现int的取值范围应该是-32768到32767，unsigned int的取值0到65535。
    今天写larbin，突然发现他居然用了size_t存储64000000/8，写程序测试，发现居然能通过。
    原来上面那个数据是16位机的范围，书过时了，知识也过时了。。。。勉励一下。
   unsigned int是一个字节，在32位机上位0x0-----0x]]></description><category></category></item><item><title><![CDATA[[linux程序设计笔记]第7章：数据管理(省略了后面的数据库那个)]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6946971</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6946971</guid><author>forestLight</author><pubDate>Tue, 08 Nov 2011 10:22:12 +0800</pubDate><description><![CDATA[数据管理
A 内存：
  1. 内存的分配：
    (void *) malloc(size_t size)
    size_t在32位机上被解释为unsiged int,size是分配的内存大小(按字节算)。
    返回的是空指针。你可以用任意方式操作这段内存。接收变量会记录其首地址，并规定操作方式。
    如：
       char * s;
       s=(ch]]></description><category></category></item><item><title><![CDATA[[Linux程序设计笔记]第12章：管道]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6946956</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6946956</guid><author>forestLight</author><pubDate>Tue, 08 Nov 2011 10:19:23 +0800</pubDate><description><![CDATA[管道：完成两个进程间的通讯（数据流）。
      如shell中的： cmd1 | cmd2
1. 程序与shell（或其他程序）之间通讯：[命令可以是启动其他进程的命令]
     #include 
     FILE * popen(const char * comand, const char *open_mode);
     int    pclose(FILE * str]]></description><category></category></item><item><title><![CDATA[[Linux程序设计笔记]14章：套接字Socket]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6946937</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6946937</guid><author>forestLight</author><pubDate>Tue, 08 Nov 2011 10:15:53 +0800</pubDate><description><![CDATA[A 套接字：socket用于本机的两个程序通讯或者两个在不同机器上的进程通讯。
   1.创建套接字
        int socket(int domian, int type, int protocol);
        
        头文件：#include
               #include
      
        domian  : 域，包括AF_]]></description><category></category></item><item><title><![CDATA[关于程序可移植性的问题]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6933811</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6933811</guid><author>forestLight</author><pubDate>Thu, 03 Nov 2011 22:03:43 +0800</pubDate><description><![CDATA[《linux程序设计》最后一部分提到了关于程序的可移植性问题，这里做一下总结。
            可移植性是针对编译器、操作系统和硬件三个层次来说的。一般如果一个工程有特定依赖于某种系统的代码，则应该设计为独立的部分。
             1.从程序的角度看，主要是注意limits.h里面设置的最大值。 
             2. 从硬件的角度看，主要是注意数据长度，字节顺]]></description><category></category></item><item><title><![CDATA[[笔试题]struct内存对齐]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6933676</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6933676</guid><author>forestLight</author><pubDate>Thu, 03 Nov 2011 21:21:21 +0800</pubDate><description><![CDATA[结构体的内存对齐实际上是硬件工程师的事，但是由于笔试经常考，而且我们在实际项目中由于设置的对齐方式不对曾经导致过在不同机器上不能移植的问题。所以有必要了解一下。
         1.为什么需要内存对齐：因为计算机一次处理数据的单元不是字节，而是块。(即1 2 4  8 16字节)
         2.struct是怎样进行内存布局的;
         总体来说就是，某一中类型要在其尺寸]]></description><category></category></item><item><title><![CDATA[[笔试题] 如何判断主机是大端还是小端（字节序）]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6933528</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6933528</guid><author>forestLight</author><pubDate>Thu, 03 Nov 2011 20:32:51 +0800</pubDate><description><![CDATA[今天看《linux程序设计》中关于跨平台需要注意的事项，看到了大端小端的问题。突然想起实验室一同学的笔试题，如何判断主机的大端还是小端。
        所谓大端就是指高位值在内存中放低位地址，所谓小端是指低位值在内存中放低位地址。比如0x12345678在大端机上是12345678，在小端机上是78564312，而一个主机是大端还是小端要看cpu类型以及运行在上面的操作系统。同一款cpu在不同]]></description><category></category></item><item><title><![CDATA[Larbin: Webserver]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6927797</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6927797</guid><author>forestLight</author><pubDate>Wed, 02 Nov 2011 11:26:53 +0800</pubDate><description><![CDATA[花了一个月，没有搞完Larbin，实在不应该。检讨一下。尽快搞完吧！
Webserver:
   在主程序中，以线程的方式启动，得到爬虫的运行状态。
   startWebserver : 线程入口程序，完成socket的相关工作，并且监听80端口。
                                 当有数据包到来的时候，调用manageAns进行响应。
   readR]]></description><category></category></item><item><title><![CDATA[傻宝宝论坛：头文件和cpp文件]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6913377</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6913377</guid><author>forestLight</author><pubDate>Fri, 28 Oct 2011 10:52:13 +0800</pubDate><description><![CDATA[一个工程往往有头文件和cpp文件。那么什么是头文件，什么是include函数呢，我这里解释一下。
     先看一段代码:     
#include
using namespace std;

void main()
{
	printA();
	printB();
}

void printA()
{
	print('A');
}

void printB()]]></description><category></category></item><item><title><![CDATA[Larbin:hashDup]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6911306</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6911306</guid><author>forestLight</author><pubDate>Thu, 27 Oct 2011 16:49:19 +0800</pubDate><description><![CDATA[hashDup:
   功能:对于内容判重。hashTable是对URL判重。即文件内容相同的同一html，并不爬取两次，即便他们的url不同。
   实现：
       hashDup  ：构造函数，建立hash表；包括建立空表和导入已建立的表。
       ~hashDup : 析构函数，删除表。
       testSet  : 测试某个文件是否已经在hashTable中。]]></description><category></category></item><item><title><![CDATA[Larbin中涉及的HTML知识，以及强烈推荐的一个网站]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6894787</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6894787</guid><author>forestLight</author><pubDate>Fri, 21 Oct 2011 18:16:15 +0800</pubDate><description><![CDATA[:链接一个外部样式表。
       样式表：用来进行网页风格设计的。比如，如果想让链接字未点击时是蓝色的，当鼠标移上去后字变成红色的且有下划线，这就是一种风格。
       参数：
              href    : 定义被链接文档的位置。
              rel     : 定义当前文档与被链接文档之间的关系。
              type    :]]></description><category></category></item><item><title><![CDATA[HTML标签详解]]></title><link>https://blog.youkuaiyun.com/forestLight/article/details/6893228</link><guid>https://blog.youkuaiyun.com/forestLight/article/details/6893228</guid><author>forestLight</author><pubDate>Fri, 21 Oct 2011 10:50:55 +0800</pubDate><description><![CDATA[-- HTML标签详解
HTML指令详解
结构
＜html＞
＜head＞
＜title＞标题＜title＞
＜/head＞
＜body＞..........文件内容..........
＜/body＞
＜/html＞
1.文件标题
＜title＞..........＜/title＞
2.文件更新--＜meta＞
【1】10秒后自动更新一次
＜meta http-equ]]></description><category></category></item></channel></rss>