http://blog.csdn.net/linuxcumt/article/details/8580123
http://www.open-open.com/doc/view/ed3926107f60425aad2659e4bd73ca07