转:Windows版本判断大全
/*****************************************************************************Operating System Version PlatformIDWindows 8 6.2 VER_PLATFORM_WIN32_NT (=2)Windows 7 6.1 VER_PLATFORM_WIN32_NTWindows Server 2008 R2 6.1 VER_PLATFORM_WIN32_NTWindows Server 2008 6.0 VER_PLATFORM_WIN32_NTWindows Vista 6.0 VER_PLATFORM_WIN32_NTWindows Server 2003 R2 5.2 VER_PLATFORM_WIN32_NTWindows Server 2003 5.2 VER_PLATFORM_WIN32_NTWindows XP 64-Bit Edition 5.2 VER_PLATFORM_WIN32_NTWindows XP 5.1 VER_PLATFORM_WIN32_NTWindows 2000 5.0 VER_PLATFORM_WIN32_NTWindows NT 4.0 4.0 VER_PLATFORM_WIN32_NTWindows NT 3.51 3.51 ? VER_PLATFORM_WIN32_NTWindows Millennium Edition 4.90 VER_PLATFORM_WIN32_WINDOWS (=1)Windows 98 4.10 VER_PLATFORM_WIN32_WINDOWSWindows 95 4.0 VER_PLATFORM_WIN32_WINDOWSWindows 3.1 3.1 ? VER_PLATFORM_WIN32s (=0)*****************************************************************************/#include "stdafx.h"#include<windows.h>//#include<tchar.h>//#include <stdio.h>#include<strsafe.h>#pragma comment(lib,"User32.lib")#pragma comment(lib,"Advapi32.lib")//VS2005 Express needed#define BUFSIZE 256#define PRODUCT_ULTIMATE 0x00000001#define PRODUCT_HOME_BASIC 0x00000002#define PRODUCT_HOME_PREMIUM 0x00000003#define PRODUCT_ENTERPRISE 0x00000004#define PRODUCT_HOME_BASIC_N 0x00000005#define PRODUCT_BUSINESS 0x00000006#define PRODUCT_STANDARD_SERVER 0x00000007#define PRODUCT_DATACENTER_SERVER 0x00000008#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009#define PRODUCT_ENTERPRISE_SERVER 0x0000000A#define PRODUCT_STARTER 0x0000000B#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F#define PRODUCT_BUSINESS_N 0x00000010#define PRODUCT_WEB_SERVER 0x00000011#define PRODUCT_CLUSTER_SERVER 0x00000012#define PRODUCT_HOME_SERVER 0x00000013#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019#define PRODUCT_HOME_PREMIUM_N 0x0000001A#define PRODUCT_ENTERPRISE_N 0x0000001B#define PRODUCT_ULTIMATE_N 0x0000001C#define PRODUCT_WEB_SERVER_CORE 0x0000001D#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020#define PRODUCT_SMALLBUSINESS_SERVER_PRIME 0x00000021#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023#define PRODUCT_STANDARD_SERVER_V 0x00000024#define PRODUCT_DATACENTER_SERVER_V 0x00000025#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029#define PRODUCT_HYPERV 0x0000002A#define PRODUCT_PROFESSIONAL 0x00000030#define SM_TABLETPC 86#define SM_MEDIACENTER 87#define SM_STARTER 88#define SM_SERVERR2 89/*#define VER_SERVER_NT 0x80000000#define VER_WORKSTATION_NT 0x40000000#define VER_SUITE_SMALLBUSINESS 0x00000001#define VER_SUITE_ENTERPRISE 0x00000002#define VER_SUITE_BACKOFFICE 0x00000004#define VER_SUITE_COMMUNICATIONS 0x00000008#define VER_SUITE_TERMINAL 0x00000010#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020#define VER_SUITE_EMBEDDEDNT 0x00000040#define VER_SUITE_DATACENTER 0x00000080#define VER_SUITE_SINGLEUSERTS 0x00000100#define VER_SUITE_PERSONAL 0x00000200#define VER_SUITE_BLADE 0x00000400#define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800#define VER_SUITE_SECURITY_APPLIANCE 0x00001000#define VER_SUITE_STORAGE_SERVER 0x00002000#define VER_SUITE_COMPUTE_SERVER 0x00004000*/#define VER_SUITE_WH_SERVER 0x00008000typedef void(WINAPI *PGNSI)(LPSYSTEM_INFO);typedef BOOL (WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD);BOOL GetOSDisplayString( LPTSTR pszOS){OSVERSIONINFOEX osvi;SYSTEM_INFO si;PGNSI pGNSI;PGPI pGPI;BOOL bOsVersionInfoEx;DWORD dwType;ZeroMemory(&si,sizeof(SYSTEM_INFO));ZeroMemory(&osvi,sizeof(OSVERSIONINFOEX));osvi.dwOSVersionInfoSize =sizeof(OSVERSIONINFOEX);bOsVersionInfoEx =GetVersionEx((OSVERSIONINFO*)&osvi);if(!bOsVersionInfoEx)return FALSE;// Call GetNativeSystemInfo if supported or GetSystemInfo otherwise.pGNSI =(PGNSI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")),"GetNativeSystemInfo");if(NULL != pGNSI)pGNSI(&si);elseGetSystemInfo(&si);if( VER_PLATFORM_WIN32_NT==osvi.dwPlatformId &&osvi.dwMajorVersion >4){StringCchCopy(pszOS, BUFSIZE, TEXT("Microsoft "));// Test for the specific product.if( osvi.dwMajorVersion >=6){if( osvi.dwMajorVersion >6|| osvi.dwMinorVersion >2){StringCchCat(pszOS, BUFSIZE, TEXT("Windows 8 Later "));// for new OS}elseif( osvi.dwMinorVersion ==0){if( osvi.wProductType == VER_NT_WORKSTATION )StringCchCat(pszOS, BUFSIZE, TEXT("Windows Vista "));elseStringCchCat(pszOS, BUFSIZE, TEXT("Windows Server 2008 "));}elseif( osvi.dwMinorVersion ==1){if( osvi.wProductType == VER_NT_WORKSTATION )StringCchCat(pszOS, BUFSIZE, TEXT("Windows 7 "));elseStringCchCat(pszOS, BUFSIZE, TEXT("Windows Server 2008 R2 "));}elseif( osvi.dwMinorVersion ==2){StringCchCat(pszOS, BUFSIZE, TEXT("Windows 8 "));}pGPI =(PGPI)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")),"GetProductInfo");pGPI( osvi.dwMajorVersion, osvi.dwMinorVersion,0,0,&dwType);switch( dwType ){case PRODUCT_ULTIMATE:StringCchCat(pszOS, BUFSIZE, TEXT("Ultimate Edition"));break;case PRODUCT_PROFESSIONAL:StringCchCat(pszOS, BUFSIZE, TEXT("Professional"));break;case PRODUCT_HOME_PREMIUM:StringCchCat(pszOS, BUFSIZE, TEXT("Home Premium Edition"));break;case PRODUCT_HOME_BASIC:StringCchCat(pszOS, BUFSIZE, TEXT("Home Basic Edition"));break;case PRODUCT_ENTERPRISE:StringCchCat(pszOS, BUFSIZE, TEXT("Enterprise Edition"));break;case PRODUCT_BUSINESS:StringCchCat(pszOS, BUFSIZE, TEXT("Business Edition"));break;case PRODUCT_STARTER:StringCchCat(pszOS, BUFSIZE, TEXT("Starter Edition"));break;case PRODUCT_CLUSTER_SERVER:StringCchCat(pszOS, BUFSIZE, TEXT("Cluster Server Edition"));break;case PRODUCT_DATACENTER_SERVER:StringCchCat(pszOS, BUFSIZE, TEXT("Datacenter Edition"));break;case PRODUCT_DATACENTER_SERVER_CORE:StringCchCat(pszOS, BUFSIZE, TEXT("Datacenter Edition (core installation)"));break;case PRODUCT_ENTERPRISE_SERVER:StringCchCat(pszOS, BUFSIZE, TEXT("Enterprise Edition"));break;case PRODUCT_ENTERPRISE_SERVER_CORE:StringCchCat(pszOS, BUFSIZE, TEXT("Enterprise Edition (core installation)"));break;case PRODUCT_ENTERPRISE_SERVER_IA64:StringCchCat(pszOS, BUFSIZE, TEXT("Enterprise Edition for Itanium-based Systems"));break;case PRODUCT_SMALLBUSINESS_SERVER:StringCchCat(pszOS, BUFSIZE, TEXT("Small Business Server"));break;case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM:StringCchCat(pszOS, BUFSIZE, TEXT("Small Business Server Premium Edition"));break;case PRODUCT_STANDARD_SERVER:StringCchCat(pszOS, BUFSIZE, TEXT("Standard Edition"));break;case PRODUCT_STANDARD_SERVER_CORE:StringCchCat(pszOS, BUFSIZE, TEXT("Standard Edition (core installation)"));break;case PRODUCT_WEB_SERVER:StringCchCat(pszOS, BUFSIZE, TEXT("Web Server Edition"));break;}}elseif(/*osvi.dwMajorVersion == 5 &&*/ osvi.dwMinorVersion ==2){if(GetSystemMetrics(SM_SERVERR2))StringCchCat(pszOS, BUFSIZE, TEXT("Windows Server 2003 R2, "));elseif( osvi.wSuiteMask & VER_SUITE_STORAGE_SERVER )StringCchCat(pszOS, BUFSIZE, TEXT("Windows Storage Server 2003"));elseif( osvi.wSuiteMask & VER_SUITE_WH_SERVER )StringCchCat(pszOS, BUFSIZE, TEXT("Windows Home Server"));elseif( osvi.wProductType == VER_NT_WORKSTATION &&si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64){StringCchCat(pszOS, BUFSIZE, TEXT("Windows XP Professional x64 Edition"));}elseStringCchCat(pszOS, BUFSIZE, TEXT("Windows Server 2003, "));// Test for the server type.if( osvi.wProductType != VER_NT_WORKSTATION ){if( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_IA64 ){if( osvi.wSuiteMask & VER_SUITE_DATACENTER )StringCchCat(pszOS, BUFSIZE, TEXT("Datacenter Edition for Itanium-based Systems"));elseif( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )StringCchCat(pszOS, BUFSIZE, TEXT("Enterprise Edition for Itanium-based Systems"));}elseif( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64 ){if( osvi.wSuiteMask & VER_SUITE_DATACENTER )StringCchCat(pszOS, BUFSIZE, TEXT("Datacenter x64 Edition"));else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )StringCchCat(pszOS, BUFSIZE, TEXT("Enterprise x64 Edition"));elseStringCchCat(pszOS, BUFSIZE, TEXT("Standard x64 Edition"));}else{if( osvi.wSuiteMask & VER_SUITE_COMPUTE_SERVER )StringCchCat(pszOS, BUFSIZE, TEXT("Compute Cluster Edition"));else if( osvi.wSuiteMask & VER_SUITE_DATACENTER )StringCchCat(pszOS, BUFSIZE, TEXT("Datacenter Edition"));else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )StringCchCat(pszOS, BUFSIZE, TEXT("Enterprise Edition"));else if( osvi.wSuiteMask & VER_SUITE_BLADE )StringCchCat(pszOS, BUFSIZE, TEXT("Web Edition"));elseStringCchCat(pszOS, BUFSIZE, TEXT("Standard Edition"));}}}elseif(/*osvi.dwMajorVersion == 5 &&*/ osvi.dwMinorVersion ==1){StringCchCat(pszOS, BUFSIZE, TEXT("Windows XP "));if( osvi.wSuiteMask & VER_SUITE_PERSONAL )StringCchCat(pszOS, BUFSIZE, TEXT("Home Edition"));elseStringCchCat(pszOS, BUFSIZE, TEXT("Professional"));}elseif(/*osvi.dwMajorVersion == 5 &&*/ osvi.dwMinorVersion ==0){StringCchCat(pszOS, BUFSIZE, TEXT("Windows 2000 "));if( osvi.wProductType == VER_NT_WORKSTATION ){StringCchCat(pszOS, BUFSIZE, TEXT("Professional"));}else{if( osvi.wSuiteMask & VER_SUITE_DATACENTER )StringCchCat(pszOS, BUFSIZE, TEXT("Datacenter Server"));elseif( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )StringCchCat(pszOS, BUFSIZE, TEXT("Advanced Server"));elseStringCchCat(pszOS, BUFSIZE, TEXT("Server"));}}// Include service pack (if any) and build number.if( _tcslen(osvi.szCSDVersion)>0){StringCchCat(pszOS, BUFSIZE, TEXT(" "));StringCchCat(pszOS, BUFSIZE, osvi.szCSDVersion);}TCHAR buf[80];StringCchPrintf( buf,80, TEXT(" (build %d)"), osvi.dwBuildNumber);StringCchCat(pszOS, BUFSIZE, buf);if( osvi.dwMajorVersion >=6){if( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64 )StringCchCat(pszOS, BUFSIZE, TEXT(", 64-bit"));elseif(si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_INTEL )StringCchCat(pszOS, BUFSIZE, TEXT(", 32-bit"));}return TRUE;}else{return FALSE;}}BOOL GetOldOSVer(LPSTR pszOldOS){OSVERSIONINFOEXA osvi;BOOL bOsVersionInfoEx;ZeroMemory(&osvi,sizeof(OSVERSIONINFOEXA));// Try calling GetVersionEx using the OSVERSIONINFOEX structure.// If that fails, try using the OSVERSIONINFO structure.osvi.dwOSVersionInfoSize =sizeof(OSVERSIONINFOEXA);bOsVersionInfoEx =GetVersionExA((OSVERSIONINFOA *)&osvi);if(!bOsVersionInfoEx ){osvi.dwOSVersionInfoSize =sizeof(OSVERSIONINFOA);if(!GetVersionExA((OSVERSIONINFOA *)&osvi)){StringCchCatA(pszOldOS, BUFSIZE,"Unknow Windows?");return FALSE;}}switch(osvi.dwPlatformId){// Test for the Windows NT product family.case VER_PLATFORM_WIN32_NT:if(osvi.dwMajorVersion <=4){StringCchCatA(pszOldOS, BUFSIZE,"Microsoft Windows NT ");}else{return FALSE;}break;// Test for the Windows Me/98/95.case VER_PLATFORM_WIN32_WINDOWS:if(osvi.dwMajorVersion ==4){switch(osvi.dwMinorVersion){case 0:StringCchCatA(pszOldOS, BUFSIZE,"Microsoft Windows 95 ");if(osvi.szCSDVersion[1]=='C'|| osvi.szCSDVersion[1]=='B')StringCchCatA(pszOldOS, BUFSIZE,"OSR2 ");break;case 3://??StringCchCatA(pszOldOS, BUFSIZE,"Microsoft Windows 95 OSR2 ");case 10:StringCchCatA(pszOldOS, BUFSIZE,"Microsoft Windows 98 ");if( osvi.szCSDVersion[1]=='A'|| osvi.szCSDVersion[1]=='B')StringCchCatA(pszOldOS, BUFSIZE,"SE ");break;case 90:StringCchCatA(pszOldOS, BUFSIZE,"Microsoft Windows Millennium Edition ");break;}}break;case VER_PLATFORM_WIN32s:StringCchCatA(pszOldOS, BUFSIZE,"Microsoft Win32s ");break;default:return FALSE;}if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT){// Test for specific product on Windows NT 4.0 SP6 and later.if( bOsVersionInfoEx ){// Test for the workstation type.if( osvi.wProductType == VER_NT_WORKSTATION){if( osvi.dwMajorVersion ==4)StringCchCatA(pszOldOS, BUFSIZE,"Workstation 4.0 ");elseif( osvi.wSuiteMask & VER_SUITE_PERSONAL )StringCchCatA(pszOldOS, BUFSIZE,"Home Edition ");elseStringCchCatA(pszOldOS, BUFSIZE,"Professional ");}// Test for the server type.elseif( osvi.wProductType == VER_NT_SERVER ||osvi.wProductType == VER_NT_DOMAIN_CONTROLLER ){// Windows NT 4.0if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )StringCchCatA(pszOldOS, BUFSIZE,"Server 4.0, Enterprise Edition ");elseStringCchCatA(pszOldOS, BUFSIZE,"Server 4.0 ");}}// Test for specific product on Windows NT 4.0 SP5 and earlierelse{HKEY hKey;TCHAR szProductType[BUFSIZE];DWORD dwBufLen=BUFSIZE*sizeof(TCHAR);LONG lRet =RegOpenKeyEx( HKEY_LOCAL_MACHINE,TEXT("SYSTEM\\CurrentControlSet\\Control\\ProductOptions"),0, KEY_QUERY_VALUE,&hKey );if( lRet != ERROR_SUCCESS )return FALSE;lRet =RegQueryValueEx( hKey, TEXT("ProductType"),NULL, NULL,(LPBYTE) szProductType,&dwBufLen);RegCloseKey( hKey );if((lRet != ERROR_SUCCESS)||(dwBufLen > BUFSIZE*sizeof(TCHAR)))return FALSE;if( lstrcmpi( TEXT("WINNT"), szProductType)==0)StringCchCatA(pszOldOS, BUFSIZE,"Workstation ");if( lstrcmpi( TEXT("LANMANNT"), szProductType)==0)StringCchCatA(pszOldOS, BUFSIZE,"Server ");if( lstrcmpi( TEXT("SERVERNT"), szProductType)==0)StringCchCatA(pszOldOS, BUFSIZE,"Advanced Server ");char szVer[20];StringCchPrintfA(szVer,sizeof(szVer),"%d.%d ", osvi.dwMajorVersion, osvi.dwMinorVersion );StringCchCatA(pszOldOS, BUFSIZE, szVer);}// Display service pack (if any) and build number.char sp6[]="Service Pack 6";char szBuf[40];if( osvi.dwMajorVersion ==4&&lstrcmpiA( osvi.szCSDVersion, sp6 )==0){HKEY hKey;LONG lRet;// Test for SP6 versus SP6a.lRet =RegOpenKeyEx( HKEY_LOCAL_MACHINE,TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Hotfix\\Q246009"),0, KEY_QUERY_VALUE,&hKey );if( lRet == ERROR_SUCCESS ){StringCchPrintfA(szBuf,sizeof(szBuf),"Service Pack 6a (Build %d)", osvi.dwBuildNumber &0xFFFF);StringCchCatA(pszOldOS, BUFSIZE, szBuf);}else// Windows NT 4.0 prior to SP6a{StringCchPrintfA(szBuf,sizeof(szBuf),"%s (Build %d)", osvi.szCSDVersion, osvi.dwBuildNumber &0xFFFF);StringCchCatA(pszOldOS, BUFSIZE, szBuf);}RegCloseKey( hKey );}else// not Windows NT 4.0{StringCchPrintfA(szBuf,sizeof(szBuf),"%s (Build %d)", osvi.szCSDVersion, osvi.dwBuildNumber &0xFFFF);StringCchCatA(pszOldOS, BUFSIZE, szBuf);}}return TRUE;}int __cdecl _tmain()int _tmain(int argc, _TCHAR* argv[]){TCHAR szOS[BUFSIZE];if(GetOSDisplayString( szOS )){_tprintf( TEXT("\n%s\n"), szOS );}else{char szOldOS[BUFSIZE]={0};if(GetOldOSVer(szOldOS)){printf("\n%s\n", szOldOS);}}}
转:Windows版本判断大全的更多相关文章
- Windows 系统版本判断
Windows 系统版本判断 博客分类: C/C++ 很多情况下,需要软件判断操作系统,其实网上写的都很少,我希望这篇文章能给大家帮助 首先我们要在.h中定义下面的东西 #define PRODU ...
- Windows CMD命令大全(转)
Windows CMD命令大全 命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行 ...
- Windows窗口消息大全(转)
Windows窗口消息大全,全不全自己看 ////////////////////////////////////////////////////////////////////////// #inc ...
- Windows API函数大全(完整)
Windows API函数大全,从事软件开发的朋友可以参考下 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一 ...
- [windows菜鸟]Windows API函数大全(完整)
Windows API函数大全,从事软件开发的朋友可以参考下 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一 ...
- Windows 窗体消息大全(速查)
Windows窗口消息大全,全不全自己撸 通用窗口消息 WM_NULL:--------->空消息,可检测程序是否有响应等 WM_CREATE:--------->新建一个窗口 WM_DE ...
- Windows CMD命令大全
http://greatverve.cnblogs.com/archive/2011/12/09/windows-cmd.html 命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机 ...
- Windows CMD命令大全【转】
命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...
- windows cmd 命令大全
原文: http://www.cnblogs.com/greatverve/archive/2011/12/09/windows-cmd.html 命令简介 cmd是command的缩写.即命令行 . ...
随机推荐
- vue-persist 为 vuex 持久化!!
npm install --save vuex-persist import VuexPersistence from 'vuex-persist' const vuexLocal = new Vue ...
- LeetCode268.缺失数字
268.缺失数字 描述 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数. 示例 示例 1: 输入: [3,0,1] 输出: 2 示例 ...
- codeforces 1068d Array Without Local Maximums dp
题目传送门 题目大意:给出一个长度为n的数组,这个数组有的数是给出的,有的数是固定的,且范围都在[1,200]之间,要求这个数组中,每一个数字都小于等于 前后两个数字的最大值,求方案数mod p. 思 ...
- [转] Linux命令——timeout
[From] https://blog.csdn.net/xiaqunfeng123/article/details/54315390 Linux命令——timeout 命令简介 运行指定的命令,如果 ...
- [转] JavaScript中的Truthy和Falsy介绍
[From] http://www.jb51.net/article/59285.htm 与大多数编程语言一样,JavaScript中存在boolean类型,以供逻辑判断使用.不过,和很多其它编程语言 ...
- poj3187
一.题意:给定n,求1~n的一个排列,这个排列需要满足以下两个要求:1.杨辉三角最后的和为sum 2.字典序最小 二.思路:暴力枚举每一个排列,然后计算和并与sum进行比较.这里我比较费解的是为什么 ...
- Linux设备驱动开发基础--阻塞型设备驱动
1. 当一个设备无法立刻满足用户的读写请求时(例如调用read时,设备没有数据提供),驱动程序应当(缺省的)阻塞进程,使它进入等待(睡眠)状态,知道请求可以得到满足. 2. Linux内核等待队列:在 ...
- python学习10-内置函数 迭代 二分法/面向对象初识(转载)
一.匿名函数 形式: lambda 形参:返回值 lambda表示的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数.匿名函数不是说一定没名字,而是他们的名字统一称为“lambda”, ...
- docker 创建容器时遇到的坑
坑一.时区问题 在创建系统镜像时,比如centos,会默认最小安装,并且时区默认的是UTC 所以在下好centos的原始镜像后,最好再重新构建一个新的镜像 # 命令 docker pull cento ...
- pycharm + git实现两台电脑代码同步
说明:此篇文章是作者方便日后查阅所有,请不要按本文的方法搭建 1.下载msysygit,https://git-for-windows.github.io/ 点击download获取下载链接,可能由于 ...