http://www.blogkid.net/archives/1331.html http://www.cnblogs.com/liunx/archive/2010/05/12/1733885.html