<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[吖漆]]></title>
	  <link>http://lvdbing.blog.163.com</link>
	  <description><![CDATA[Welcome to lvDbing&apos;s Blog ]]></description>
	  <language>zh-CN</language>
	  <pubDate>Thu, 3 Jul 2008 16:55:45 +0800</pubDate>
	  <lastBuildDate>Thu, 3 Jul 2008 16:55:45 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[lvdbing]]></managingEditor>
	  <webMaster><![CDATA[lvDbing]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[吖漆]]></title>
	  	<url>http://ava.blog.163.com/photo/SIcb1ZLynMHr_gMtdcl7wg==/170573835888498285.jpg</url>
	  	<link>http://lvdbing.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[Perl运算符优先级表]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/5580152920084422223706</link>
    <description><![CDATA[<div><TABLE style="WIDTH: 98%" cellSpacing=0>
<TBODY>
<TR>
<TD><FONT color=red>运算符</FONT></TD>
<TD><FONT color=red>结合性</FONT></TD></TR>
<TR>
<TD>项目和左向表运算</TD>
<TD>左 </TD></TR>
<TR>
<TD>-&gt;&nbsp;&nbsp;</TD>
<TD>左</TD></TR>
<TR>
<TD>++&nbsp; &nbsp;--</TD>
<TD>n/a</TD></TR>
<TR>
<TD>**</TD>
<TD>右</TD></TR>
<TR>
<TD>! ~ \&nbsp; &nbsp;一元+&nbsp;&nbsp;一元减</TD>
<TD>右</TD></TR>
<TR>
<TD>=~&nbsp;&nbsp;!~</TD>
<TD>左</TD></TR>
<TR>
<TD>*&nbsp;&nbsp;/&nbsp;&nbsp;%&nbsp;&nbsp;x</TD>
<TD>左</TD></TR>
<TR>
<TD>+&nbsp;&nbsp;-&nbsp;&nbsp;.</TD>
<TD>左</TD></TR>
<TR>
<TD>&lt;&lt;&nbsp;&nbsp;&gt;&gt;</TD>
<TD>左</TD></TR>
<TR>
<TD>命名的一元运算符，文件测试运算符</TD>
<TD>n/a</TD></TR>
<TR>
<TD>&lt;&gt;&nbsp;&nbsp;&lt;=&nbsp;&nbsp;&gt;=&nbsp;&nbsp;lt&nbsp;&nbsp;gt&nbsp;&nbsp;le&nbsp;&nbsp;ge</TD>
<TD>n/a</TD></TR>
<TR>
<TD>==&nbsp;&nbsp;!=&nbsp;&nbsp;&lt;=&nbsp;&nbsp;&gt;&nbsp;&nbsp;eq&nbsp;&nbsp;ne&nbsp;&nbsp;cmp </TD>
<TD>n/a</TD></TR>
<TR>
<TD>&amp;</TD>
<TD>左</TD></TR>
<TR>
<TD>|&nbsp;&nbsp;^</TD>
<TD>左</TD></TR>
<TR>
<TD>&amp;&amp;</TD>
<TD>左</TD></TR>
<TR>
<TD>||</TD>
<TD>左</TD></TR>
<TR>
<TD>..&nbsp; &nbsp;...</TD>
<TD>n/a</TD></TR>
<TR>
<TD>?:</TD>
<TD>右</TD></TR>
<TR>
<TD>=&nbsp;&nbsp;+=&nbsp;&nbsp;-=&nbsp;&nbsp;*=&nbsp;&nbsp;等</TD>
<TD>右</TD></TR>
<TR>
<TD>， =&gt;</TD>
<TD>左</TD></TR>
<TR>
<TD>右向表运算符</TD>
<TD>n/a</TD></TR>
<TR>
<TD>not</TD>
<TD>右</TD></TR>
<TR>
<TD>and </TD>
<TD>左</TD></TR>
<TR>
<TD>or&nbsp;&nbsp;xor</TD>
<TD>左</TD></TR></TBODY></TABLE></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/5580152920084422223706</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/5580152920084422223706</guid>
    <pubDate>Sun, 4 May 2008 14:22:23 +0800</pubDate>
    <dcterms:modified>2008-05-04T14:22:23+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Perl中关于IP排序的问题]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/55801529200833054226907</link>
    <description><![CDATA[<div>[root@as4server perl]# <FONT color=red>cat ip.txt</FONT><BR>202.168.1.2<BR>192.168.5.1<BR>192.172.2.2<BR>202.172.1.3<BR>192.168.3.5<BR>[root@as4server perl]#<FONT color=red> perl 1.pl</FONT><BR>192.168.3.5<BR>192.168.5.1<BR>192.172.2.2<BR>202.168.1.2<BR>202.172.1.3<BR>[root@as4server perl]# <FONT color=red>cat 1.pl</FONT><BR>#!/usr/bin/perl -w<BR>open (FILE,"&lt;","ip.txt") or die "Can't open the file. $!";<BR>@line = &lt;FILE&gt;;<BR>sub myfunction()<BR>{<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;return ($a cmp $b);<BR>}<BR>print sort myfunction @line;<BR></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/55801529200833054226907</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/55801529200833054226907</guid>
    <pubDate>Wed, 30 Apr 2008 17:42:26 +0800</pubDate>
    <dcterms:modified>2008-04-30T17:42:26+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[在Windows下搭建Perl编程环境]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/55801529200833054137436</link>
    <description><![CDATA[<div>1） 首先到<A href="http://www.skycn.com/soft/1211.html" target=_blank>http://www.skycn.com/soft/1211.html</A>下载比较新版本的ActivePerl for Windows。<BR><BR>2） 接着当然就是安装，按默认的路径安装就可以了。（当然，也可以指定安装路径）<BR><BR>3） 默认安装是在C:\Perl目录下的，然后把Perl.exe加入到环境变量中。<BR><BR>
<P align=center><SPAN 0, 1)" style="DISPLAY: none; LEFT: 401px; ; TOP: 433px"><IMG src="http://images.5d6d.com/dz60/default/attachimg.gif" border=0></SPAN> <IMG 'attach_16', 1);attachimg(this, 'mouseover')" 'attach_16', 0, event)" alt="" src="http://kk.a.5d6d.net/userdirs/c/c/04jiben/attachments/forumid_24/20080429_35328d56cd486318e2c5U2zpjb2kCDHU.jpg" 'load')" border=0> </P>
<P></P><BR><BR>
<P align=center><SPAN 0, 1)" style="DISPLAY: none; "><IMG src="http://images.5d6d.com/dz60/default/attachimg.gif" border=0></SPAN> <IMG 'attach_17', 1);attachimg(this, 'mouseover')" 'attach_17', 0, event)" alt="" src="http://kk.a.5d6d.net/userdirs/c/c/04jiben/attachments/forumid_24/20080429_52f65335ab52ec0d918cTjo0UTEUMLfs.jpg" 'load')" border=0> </P>
<P></P><BR>
<P align=left>4）测试安装：</P>
<P align=center><SPAN 0, 1)" style="LEFT: 316px; ; TOP: 1062px"><IMG src="http://images.5d6d.com/dz60/default/attachimg.gif" border=0></SPAN> <IMG 'attach_18', 1);attachimg(this, 'mouseover')" 'attach_18', 0, event)" alt="" src="http://kk.a.5d6d.net/userdirs/c/c/04jiben/attachments/forumid_24/20080429_50f4d8b0844240989e1bzUYiXIJlLhn3.jpg" 'load')" border=0> </P>
<P></P><BR></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/55801529200833054137436</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/55801529200833054137436</guid>
    <pubDate>Wed, 30 Apr 2008 17:41:37 +0800</pubDate>
    <dcterms:modified>2008-04-30T17:41:37+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[chop()函数和chomp()函数的区别]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/55801529200833054036692</link>
    <description><![CDATA[<div><DIV >在看Perl代码的时候，会发现作者有时会用chop()函数来去掉&lt;&gt;输入的换行符"\n"，有时候使用chomp()函数。<BR><BR>其实上面的用法都可以达到预期的效果，它们也有细微的差别。<BR>chop()函数，只是去除最后一个字符。<BR>chomp()函数，就要首先判断最后一个字符是不是为"\n"，他才去除。</DIV></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/55801529200833054036692</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/55801529200833054036692</guid>
    <pubDate>Wed, 30 Apr 2008 17:40:36 +0800</pubDate>
    <dcterms:modified>2008-04-30T17:40:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Perl使用的所有前缀及用法]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/5580152920083305407612</link>
    <description><![CDATA[<div><UL>
<LI>$------标量 
</LI><LI>%-----哈希表（也就是关联数组） 
</LI><LI>@-----数组 
</LI><LI>&amp;------子程序 
</LI><LI>通配量------如*Value代表Value的每种类型，如@Value,%Value等</LI></UL></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/5580152920083305407612</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/5580152920083305407612</guid>
    <pubDate>Wed, 30 Apr 2008 17:40:07 +0800</pubDate>
    <dcterms:modified>2008-04-30T17:40:07+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[教你如何查看已安装的Perl模块]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/55801529200833053931759</link>
    <description><![CDATA[<div><DIV >因为Perl模块大多数都是以.pm结尾的，所以只要做个查找命令就可以了。<BR><BR>[root@localhost perl]# <FONT color=darkorange>find / -name *.pm</FONT><BR>/usr/lib/perl5/vendor_perl/5.8.8/LWP.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/PPD.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/DB.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/Defaults.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/Foomatic/UIElem.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/Escape.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/mms.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/ldap.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_login.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/rlogin.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/ldaps.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/http.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_userpass.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/ftp.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/ldapi.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/telnet.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_query.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/Heuristic.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/pop.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/URL.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/https.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/tn3270.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/sips.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/sip.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/gopher.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/urn/oid.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/urn/isbn.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file/OS2.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file/FAT.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Unix.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file/QNX.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Base.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Win32.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/file/Mac.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_server.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/nntp.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/QueryParam.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/Split.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/WithBase.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/rtspu.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/rsync.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/ssh.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_generic.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/urn.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_foreign.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_segment.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/news.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/snews.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/data.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/rtsp.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/_ldap.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/URI/mailto.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/HTML/Form.pm<BR>/usr/lib/perl5/vendor_perl/5.8.8/HTML/Tagset.pm<BR>... ... ...<BR><BR>当然你也可以用locate来查找，记得先更新你的索引数据库哦。<BR>[root@localhost perl]# <FONT color=darkorange>updatedb; locate *.pm</FONT><BR>/usr/share/automake-1.7/Automake/Struct.pm<BR>/usr/share/automake-1.7/Automake/XFile.pm<BR>/usr/share/automake-1.9/Automake/ChannelDefs.pm<BR>/usr/share/automake-1.9/Automake/Channels.pm<BR>/usr/share/automake-1.9/Automake/Condition.pm<BR>/usr/share/automake-1.9/Automake/Config.pm<BR>/usr/share/automake-1.9/Automake/Configure_ac.pm<BR>/usr/share/automake-1.9/Automake/DisjConditions.pm<BR>/usr/share/automake-1.9/Automake/FileUtils.pm<BR>/usr/share/automake-1.9/Automake/General.pm<BR>/usr/share/automake-1.9/Automake/Item.pm<BR>/usr/share/automake-1.9/Automake/ItemDef.pm<BR>/usr/share/automake-1.9/Automake/Location.pm<BR>/usr/share/automake-1.9/Automake/Options.pm<BR>/usr/share/automake-1.9/Automake/Rule.pm<BR>/usr/share/automake-1.9/Automake/RuleDef.pm<BR>/usr/share/automake-1.9/Automake/Struct.pm<BR>/usr/share/automake-1.9/Automake/VarDef.pm<BR>/usr/share/automake-1.9/Automake/Variable.pm<BR>/usr/share/automake-1.9/Automake/Version.pm<BR>/usr/share/automake-1.9/Automake/Wrap.pm<BR>/usr/share/automake-1.9/Automake/XFile.pm<BR>/usr/share/logwatch/lib/Logwatch.pm<BR>... ... ...</DIV></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/55801529200833053931759</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/55801529200833053931759</guid>
    <pubDate>Wed, 30 Apr 2008 17:39:31 +0800</pubDate>
    <dcterms:modified>2008-04-30T17:39:31+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Perl使用Net::SMTP_auth发邮件]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/55801529200832111630600</link>
    <description><![CDATA[<div><P>使用<STRONG>Net::SMTP_auth</STRONG>发邮件，首先要先安装<STRONG>Net::SMTP_auth</STRONG>模块。</P>
<P><STRONG>1. Windows Operating System</STRONG>：如果是在windows操作系统使用的ActivePerl的话，则进入ActivePerl的安装目录的可执行程序目录，也就是bin目录。（例如：C:\Perl\bin）执行命令ppm-shell ，(PPM：<FONT color=#000000>Perl Package Manager </FONT></P>
<P><FONT color=#000000>Perl包管理器），然后执行命令：</FONT></P>
<P><FONT color=#000000>C:\Perl\bin&gt;<FONT color=#333399><STRONG>ppm-shell</STRONG><BR></FONT>ppm 4.01<BR>Copyright (C) 2007 ActiveState Software Inc.&nbsp; All rights reserved.<BR>ppm&gt;</FONT><FONT color=#333399><STRONG>install Net::SMTP_auth</STRONG></FONT></P>
<P><STRONG></STRONG>&nbsp;</P>
<P><STRONG>2. Linux Operating System：</STRONG>如果是在linux操作系统使用Perl的话，则使用命令cpan后面跟要安装的模块就可以了。（如果是第一次使用cpan的话，会要求先配置cpan的一些信息，一直按默认的设置就可以了）。</P>
<P>&nbsp;[root@lvdbing.net ~]#<STRONG> <FONT color=#333399>cpan Net::SMTP_auth</FONT></STRONG></P>
<P><FONT color=#000000>（Net::SMTP_auth使用说明：</FONT><A href="http://search.cpan.org/~apleiner/Net-SMTP_auth-0.08/SMTP_auth.pm"><FONT color=#000000>http://search.cpan.org/~apleiner/Net-SMTP_auth-0.08/SMTP_auth.pm</FONT></A><FONT color=#000000>）</FONT></P>
<P><STRONG><FONT color=#333399></FONT></STRONG>&nbsp;</P>
<P></P>
<HR>

<P>&nbsp;</P>
<P>接下来就是要编写Perl程序，测试发信。</P>
<P>程序名称：SMTP.pl</P>
<P>
<TABLE style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid" cellSpacing=1 cellPadding=1 width="100%" border=1>
<TBODY>
<TR>
<TD>
<P>#!c:\perl\bin\perl.exe -w&nbsp; </P>
<P>#如果你的是Linux环境下的话，则使用（#!/usr/bin/perl -w）</P>
<P>use Net::SMTP_auth;<BR>$smtp = Net::SMTP_auth-&gt;new('smtp.qq.com',<BR>Hello =&gt; 'qq.com',<BR>Debug =&gt; 1);</P>
<P>$smtp-&gt;auth('LOGIN', '您的QQ号码', ‘您的QQ密码');</P>
<P>$smtp-&gt;mail('您的QQ号码@qq.com');<BR>$smtp-&gt;to('<FONT color=#000000>您的QQ号码</FONT>@qq.com');</P>
<P>$smtp-&gt;data();<BR>$smtp-&gt;datasend("From:您的QQ号码\@qq.com \n");<BR>$smtp-&gt;datasend("To: 您的QQ号码\@qq.com \n");<BR>$smtp-&gt;datasend("Subject: Test Mail \n");<BR>$smtp-&gt;datasend("\n");<BR>$smtp-&gt;datasend("这是一封测试邮件 \n");<BR>$smtp-&gt;dataend();</P>
<P>$smtp-&gt;quit;</P></TD></TR></TBODY></TABLE></P><FONT size=3>
<P>&nbsp;</P>
<P>
</P></FONT><HR>

<P>&nbsp;测试结果：</P>
<P>
<TABLE style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid" cellSpacing=1 cellPadding=1 width="100%" border=1>
<TBODY>
<TR>
<TD>C:\test&gt;perl smtp.pl<BR>Net::SMTP_auth&gt;&gt;&gt; Net::SMTP_auth(0.08)<BR>Net::SMTP_auth&gt;&gt;&gt;&nbsp;&nbsp; Net::SMTP(2.31)<BR>Net::SMTP_auth&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Net::Cmd(2.29)<BR>Net::SMTP_auth&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exporter(5.60)<BR>Net::SMTP_auth&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; IO::Socket::INET(1.31)<BR>Net::SMTP_auth&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO::Socket(1.30)<BR>Net::SMTP_auth&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IO::Handle(1.27)<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 220 smtp.qq.com ESMTP QQMail Ver 2.2<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; EHLO qq.com<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250-smtp.qq.com<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250-PIPELINING<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250-SIZE 52428800<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250-AUTH LOGIN<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250-AUTH=LOGIN<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250 8BITMIME<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; AUTH LOGIN<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 334 VXNlcm5hbWU6<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; NDcyNTU0OTc3<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 334 UGFzc3dvcmQ6<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; W3dhbnl4eTc4OTIwNTld<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 235 Authentication successful<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; MAIL FROM:&lt;您的QQ号码@qq.com&gt;<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250 Ok<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; RCPT TO:&lt;您的QQ号码@qq.com&gt;<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250 Ok<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; DATA<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; From: 您的QQ号码@qq.com<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; To: 您的QQ号码@qq.com<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; Subject: Test Mail<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; 这是一封测试邮件<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; .<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 250 Ok: queued as<BR>Net::SMTP_auth=GLOB(0x1a196c4)&gt;&gt;&gt; QUIT<BR>Net::SMTP_auth=GLOB(0x1a196c4)&lt;&lt;&lt; 221 Bye</TD></TR></TBODY></TABLE></P></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/55801529200832111630600</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/55801529200832111630600</guid>
    <pubDate>Mon, 21 Apr 2008 13:16:30 +0800</pubDate>
    <dcterms:modified>2008-04-21T13:54:45+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Linux进程控制-基础知识]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/55801529200831531916804</link>
    <description><![CDATA[<div><P><STRONG><FONT color=#000000>1. 进程的组成部分</FONT></STRONG></P>
<P>&nbsp;&nbsp;&nbsp; 一个进程由一个地址空间和内核内部的一组数据结构组成。地址空间是由内核标记出来供进程使用的一组内存页面。它包含进程正在执行的代码和库、进程标量、进程堆栈以及在进程运行的同时内核所需要的各种其他信息。<BR>内核的内部数据结构记录了有关每个进程的各种信息，其中一些非常重要的信息有：</P>
<UL>
<LI>进程的地址空间映射</LI>
<LI>进程的当前状态（睡眠状态、停止状态、可运行状态等）</LI>
<LI>进程执行的优先级</LI>
<LI>进程已经使用的资源信息</LI>
<LI>进程的信号掩码（一个记录，确定要封锁哪些信号）</LI>
<LI>进程的属主</LI></UL>
<P><FONT color=#ff9900><STRONG><FONT color=#000000></FONT></STRONG></FONT>&nbsp;</P>
<P><FONT color=#ff9900><STRONG><FONT color=#000000>2. PID：进程的ID号</FONT></STRONG></FONT></P>
<P>&nbsp;&nbsp;&nbsp; 内核给每个进程分配一个独一无二的ID号。控制进程的大多数命令和系统调用需要用户指定PID来标识操作的目标。PID按照创建进程的顺序来分配，当内核用光了PID时，它就再次从1开始，并跳过任何仍然在使用的PID。</P>
<P><FONT color=#ff9900><STRONG><FONT color=#000000></FONT></STRONG></FONT>&nbsp;</P>
<P><FONT color=#ff9900><STRONG><FONT color=#000000>3. PPID：父PID</FONT></STRONG></FONT></P>
<P>&nbsp;&nbsp;&nbsp; Linux没有提供创建新进程去运行某个特定程序的系统调用。相反，现有进程必须克隆自身去创建一个新进程。克隆进程能够把正在运行的那个程序替换成另外一个程序。<BR>当一个进程被克隆时，原来的进程就叫做夫进程，而副本则叫子进程。进程的PPID属性就是克隆它的父进程的PID。</P>
<P><FONT color=#ff9900><STRONG><FONT color=#000000></FONT></STRONG></FONT>&nbsp;</P>
<P><FONT color=#ff9900><STRONG><FONT color=#000000>4. UID和EUID：实际的和有效的用户ID AND GID和EGID：实际的和有效的组ID</FONT></STRONG>&nbsp;</FONT></P>
<P>&nbsp;&nbsp; 进程的UID就是其创建者的用户标识号，或者更确切地说，它是父进程的EUID值得副本。通常只运行创建者（即属主）和超级用户对进程进行操作。<BR>&nbsp;&nbsp;&nbsp; EUID是“有效（effective）”的用户ID，这是一个特别的UID，用来确定进程在任何给定的时刻对哪些资源和文件具有访问权限。对于大多数进程来说，UID和EUID是一样的，例外的情况是setuid程序（也就是这个程序设置了stick位）。<BR>&nbsp;&nbsp;&nbsp; GID就是进程的组标识号。EGID和GID的关系跟EUID与UID的关系相同，因为它可以由一个setgid程序来“实现”。<BR>&nbsp;&nbsp;&nbsp; 举个例子说明：在/etc/passwd和/etc/group里面每个用户都有对应的一个UID和GID。每一个文件有一个UID，也就是拥有这个文件的用户的UID。<BR>&nbsp;&nbsp;&nbsp; 每个用户运行一个程序时是以自己的UID作为身份的，如果这个程序被设置了stick位（setuid程序），则这个程序以程序拥有者的uid作为身份，程序运行时的这个身份(UID)就是EUID, 表示这个程序以那个用户的身份运行（这样就拥有那个用户的权限，比如读取属于他的文件）。 <BR>&nbsp;&nbsp;&nbsp; password命令可以给任何普通用户用来修改自己的密码，而密码是保存在/etc/passwd，/etc/shadow 这两个文件中的，而普通用户对这两个文件没有写权限（文件属主是root用户的），当普通用户修改密码要写/etc/passwd和/etc/shadow文件时，EUID则变为root的UID（root的UID为0），写完了后，普通用户EUID又变回了自己本身的UID。这个过程就实现了对/etc/passwd,，/etc/shadow 的受控访问，普通用户只允许按照passwd程序定义好的方式修改这两个文件。 </P></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/55801529200831531916804</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/55801529200831531916804</guid>
    <pubDate>Tue, 15 Apr 2008 15:19:16 +0800</pubDate>
    <dcterms:modified>2008-04-20T14:39:46+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Linux环境进程间通信-信号]]></title>	
    <link>http://lvdbing.blog.163.com/blog/static/55801529200831531358200</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><FONT color=#000000><STRONG>1. 信号及信号来源</STRONG></FONT></P>
<P style="TEXT-INDENT: 2em">信号本质 </P>
<P style="TEXT-INDENT: 2em">信号是在软件层次上对中断机制的一种模拟，在原理上，一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的，一个进程不必通过任何操作来等待信号的到达，事实上，进程也不知道信号到底什么时候到达。</P>
<P style="TEXT-INDENT: 2em">信号是进程间通信机制中唯一的异步通信机制，可以看作是异步通知，通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后，功能更加强大，除了基本通知功能外，还可以传递附加信息。</P>
<P style="TEXT-INDENT: 2em">信号来源 </P>
<P style="TEXT-INDENT: 2em">信号事件的发生有两个来源：硬件来源(比如我们按下了键盘或者其它硬件故障)；软件来源，最常用发送信号的系统函数是kill, raise, alarm和setitimer以及sigqueue函数，软件来源还包括一些非法运算等操作。 </P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em" align=right>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html" target=_blank>http://查看原文（原文链接地址）</A></P></div>]]></description>
	    <author><![CDATA[lvDbing]]></author>
	    <comments>http://lvdbing.blog.163.com/blog/static/55801529200831531358200</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://lvdbing.blog.163.com/blog/static/55801529200831531358200</guid>
    <pubDate>Tue, 15 Apr 2008 15:13:58 +0800</pubDate>
    <dcterms:modified>2008-04-20T14:40:20+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>