http://www.cppblog.com/AutomateProgram/archive/2010/05/14/115340.aspx http://darwinux.iteye.com/blog/1037280