windows 版本 http://www.cppblog.com/aurain/archive/2014/01/23/205534.aspx
linux 版本 https://blog.csdn.net/wilsonke/article/details/78922545