{"id":828,"date":"2012-02-08T13:46:25","date_gmt":"2012-02-08T05:46:25","guid":{"rendered":"http:\/\/www.awaysoft.com\/taor\/?p=828"},"modified":"2013-12-23T11:04:22","modified_gmt":"2013-12-23T03:04:22","slug":"%e6%af%95%e8%ae%be%e7%ac%94%e8%ae%b0-%e8%8e%b7%e5%8f%96%e7%b3%bb%e7%bb%9f%e7%89%88%e6%9c%ac%e5%8f%b7","status":"publish","type":"post","link":"https:\/\/actom.me\/blog\/%e6%af%95%e8%ae%be%e7%ac%94%e8%ae%b0-%e8%8e%b7%e5%8f%96%e7%b3%bb%e7%bb%9f%e7%89%88%e6%9c%ac%e5%8f%b7.html","title":{"rendered":"\u6bd5\u8bbe\u7b14\u8bb0 \u83b7\u53d6\u7cfb\u7edf\u7248\u672c\u53f7"},"content":{"rendered":"<p>\u83b7\u53d6\u7cfb\u7edf\u7248\u672c\u662f\u4e00\u4e2a\u5f88\u57fa\u7840\u7684\u529f\u80fd\u5427\uff0c\u56e0\u4e3a\u8981\u8de8\u5e73\u53f0\uff0c\u6240\u4ee5\u5c31\u67e5\u4e86\u4e0b\u8d44\u6599\uff0c\u76f8\u5bf9\u6765\u8bf4\uff0cLinux\u6bd4\u8f83\u7b80\u5355\u3002<\/p>\n<pre class=\"lang:c decode:true crayon-selected\">#ifdef WIN32\r\n#include &lt;windows.h&gt;\r\nstatic char * _T(char *s){return s;}\r\n\r\nstatic char *const_getSystemVersion()\r\n{\r\nSYSTEM_INFO info;                                   \/\/\u7528SYSTEM_INFO\u7ed3\u6784\u5224\u65ad64\u4f4dAMD\u5904\u7406\u5668\r\nGetSystemInfo(&amp;info);                               \/\/\u8c03\u7528GetSystemInfo\u51fd\u6570\u586b\u5145\u7ed3\u6784\r\nOSVERSIONINFOEX os;\r\nos.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);  \/*\u5728\u8c03\u7528\u51fd\u6570\u524d\u5fc5\u987b\u7528sizeof(OSVERSIONINFOEXA)\u586b\u5145dwOSVersionInfoSize\u7ed3\u6784\u6210\u5458*\/\r\nif(GetVersionEx((OSVERSIONINFO *)&amp;os))                  \/*\u8c03\u7528GetVersionEx\u51fd\u6570OSVERSIONINFOEX\u7ed3\u6784\u5fc5\u987b\u5c06\u6307\u9488\u7c7b\u578b\u5f3a\u5236\u8f6c\u6362*\/\r\n{\r\nchar * vname;\r\n\r\n\/\/\u4e0b\u9762\u6839\u636e\u7248\u672c\u4fe1\u606f\u5224\u65ad\u64cd\u4f5c\u7cfb\u7edf\u540d\u79f0\r\n\r\nswitch(os.dwMajorVersion){                        \/\/\u5224\u65ad\u4e3b\u7248\u672c\u53f7\r\ncase 4:\r\nswitch(os.dwMinorVersion){                \/\/\u5224\u65ad\u6b21\u7248\u672c\u53f7\r\ncase 0:\r\nif(os.dwPlatformId==VER_PLATFORM_WIN32_NT)\r\nvname=_T(\"Microsoft Windows NT 4.0\");                \/\/1996\u5e747\u6708\u53d1\u5e03\r\nelse if(os.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)\r\nvname=_T(\"Microsoft Windows 95\");\r\nbreak;\r\ncase 10:\r\nvname=_T(\"Microsoft Windows 98\");\r\nbreak;\r\ncase 90:\r\nvname=_T(\"Microsoft Windows Me\");\r\nbreak;\r\n}\r\nbreak;\r\ncase 5:\r\nswitch(os.dwMinorVersion){               \/\/\u518d\u6bd4\u8f83dwMinorVersion\u7684\u503c\r\ncase 0:\r\nvname=_T(\"Microsoft Windows 2000\");                    \/\/1999\u5e7412\u6708\u53d1\u5e03\r\nbreak;\r\ncase 1:\r\nvname=_T(\"Microsoft Windows XP\");                    \/\/2001\u5e748\u6708\u53d1\u5e03\r\nbreak;\r\ncase 2:\r\nif(os.wProductType==VER_NT_WORKSTATION &amp;&amp;\r\ninfo.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)\r\n\r\nvname=_T(\"Microsoft Windows XP Professional x64 Edition\");\r\nelse if(GetSystemMetrics(SM_SERVERR2)==0)\r\nvname=_T(\"Microsoft Windows Server 2003\");        \/\/2003\u5e743\u6708\u53d1\u5e03\r\nelse if(GetSystemMetrics(SM_SERVERR2)!=0)\r\nvname=_T(\"Microsoft Windows Server 2003 R2\");\r\nbreak;\r\n}\r\nbreak;\r\ncase 6:\r\nswitch(os.dwMinorVersion){\r\ncase 0:\r\nif(os.wProductType==VER_NT_WORKSTATION)\/*\r\n\r\nVER_NT_WORKSTATION\u662f\u684c\u9762\u7cfb\u7edf *\/\r\nvname=_T(\"Microsoft Windows Vista\");\r\nelse\r\nvname=_T(\"Microsoft Windows Server 2008\");          \/\/\u670d\u52a1\u5668\u7248\u672c\r\nbreak;\r\ncase 1:\r\nif(os.wProductType==VER_NT_WORKSTATION)\r\nvname=_T(\"Microsoft Windows 7\");\r\nelse\r\nvname=_T(\"Microsoft Windows Server 2008 R2\");\r\nbreak;\r\n}\r\nbreak;\r\ndefault:\r\nvname=_T(\"\u672a\u77e5Windows\u64cd\u4f5c\u7cfb\u7edf\");\r\n}\r\nreturn vname;\r\n}\r\nelse\r\nreturn _T(\"\u83b7\u53d6\u7cfb\u7edf\u7248\u672c\u5931\u8d25\uff01\");\r\n}\r\n#endif\r\n\r\n#ifdef __linux__\r\nstatic char *const_getSystemVersion()\r\n{\r\nstatic char *version = NULL;\r\n\r\nif (version) return version;\r\n\r\nFILE *fp = fopen(\"\/etc\/issue\", \"r\");\r\nif (!fp) {\r\nversion = \"\u672a\u77e5\u7684Linux\u64cd\u4f5c\u7cfb\u7edf\";\r\nreturn version;\r\n}\r\nversion = g_new(char, 100);\r\nmemset(version, 0, sizeof(char) * 100);\r\nfgets(version, 99, fp);\r\nfclose(fp);\r\nreturn version;\r\n}\r\n#endif<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u83b7\u53d6\u7cfb\u7edf\u7248\u672c\u662f\u4e00\u4e2a\u5f88\u57fa\u7840\u7684\u529f\u80fd\u5427\uff0c\u56e0\u4e3a\u8981\u8de8\u5e73\u53f0\uff0c\u6240\u4ee5\u5c31\u67e5\u4e86\u4e0b\u8d44\u6599\uff0c\u76f8\u5bf9\u6765\u8bf4\uff0cLi &#8230; <a class=\"more-link\" href=\"https:\/\/actom.me\/blog\/%e6%af%95%e8%ae%be%e7%ac%94%e8%ae%b0-%e8%8e%b7%e5%8f%96%e7%b3%bb%e7%bb%9f%e7%89%88%e6%9c%ac%e5%8f%b7.html\">Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,1,6],"tags":[],"_links":{"self":[{"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/posts\/828"}],"collection":[{"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/comments?post=828"}],"version-history":[{"count":4,"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/posts\/828\/revisions"}],"predecessor-version":[{"id":909,"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/posts\/828\/revisions\/909"}],"wp:attachment":[{"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/media?parent=828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/categories?post=828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actom.me\/blog\/wp-json\/wp\/v2\/tags?post=828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}