runcluvfy.sh运行结果
$ ./runcluvfy.sh stage -pre crsinst -n rac11g1,rac11g2 -verbose Performing pre-checks for cluster services setup Checking node reachability... Check: Node reachability from node "rac11g1"
Destination Node Reachable?
------------------------------------ ------------------------
rac11g1 yes
rac11g2 yes
Result: Node reachability check passed from node "rac11g1" Checking user equivalence... Check: User equivalence for user "oragrid"
Node Name Status
------------------------------------ ------------------------
rac11g2 passed
rac11g1 passed
Result: User equivalence check passed for user "oragrid" Checking node connectivity... Checking hosts config file...
Node Name Status
------------------------------------ ------------------------
rac11g2 passed
rac11g1 passed Verification of the hosts config file successful Interface information for node "rac11g2"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.56.122 192.168.56.0 0.0.0.0 192.168.56.254 :::3E:7A:
eth1 192.168.57.122 192.168.57.0 0.0.0.0 192.168.56.254 ::::: Interface information for node "rac11g1"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.56.121 192.168.56.0 0.0.0.0 192.168.56.254 ::::8E:FF
eth1 192.168.57.121 192.168.57.0 0.0.0.0 192.168.56.254 :::::9E Check: Node connectivity of subnet "192.168.56.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rac11g2[192.168.56.122] rac11g1[192.168.56.121] yes
Result: Node connectivity passed for subnet "192.168.56.0" with node(s) rac11g2,rac11g1 Check: TCP connectivity of subnet "192.168.56.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rac11g1:192.168.56.121 rac11g2:192.168.56.122 passed
Result: TCP connectivity check passed for subnet "192.168.56.0" Check: Node connectivity of subnet "192.168.57.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rac11g2[192.168.57.122] rac11g1[192.168.57.121] yes
Result: Node connectivity passed for subnet "192.168.57.0" with node(s) rac11g2,rac11g1 Check: TCP connectivity of subnet "192.168.57.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rac11g1:192.168.57.121 rac11g2:192.168.57.122 passed
Result: TCP connectivity check passed for subnet "192.168.57.0" Interfaces found on subnet "192.168.56.0" that are likely candidates for VIP are:
rac11g2 eth0:192.168.56.122
rac11g1 eth0:192.168.56.121 Interfaces found on subnet "192.168.57.0" that are likely candidates for a private interconnect are:
rac11g2 eth1:192.168.57.122
rac11g1 eth1:192.168.57.121
Checking subnet mask consistency...
Subnet mask consistency check passed for subnet "192.168.56.0".
Subnet mask consistency check passed for subnet "192.168.57.0".
Subnet mask consistency check passed. Result: Node connectivity check passed Checking multicast communication... Checking subnet "192.168.56.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "192.168.56.0" for multicast communication with multicast group "230.0.1.0" passed. Checking subnet "192.168.57.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "192.168.57.0" for multicast communication with multicast group "230.0.1.0" passed. Check of multicast communication passed. Checking ASMLib configuration.
Node Name Status
------------------------------------ ------------------------
rac11g2 passed
rac11g1 passed
Result: Check for ASMLib configuration passed. Check: Total memory
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 .7506GB (.0KB) .5GB (.0KB) passed
rac11g1 .7506GB (.0KB) .5GB (.0KB) passed
Result: Total memory check passed Check: Available memory
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 .4864GB (.0KB) 50MB (.0KB) passed
rac11g1 .4514GB (.0KB) 50MB (.0KB) passed
Result: Available memory check passed Check: Swap space
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 .9375GB (.0KB) .7506GB (.0KB) passed
rac11g1 .9375GB (.0KB) .7506GB (.0KB) passed
Result: Swap space check passed Check: Free disk space for "rac11g2:/tmp"
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/tmp rac11g2 /tmp .0605GB 1GB passed
Result: Free disk space check passed for "rac11g2:/tmp" Check: Free disk space for "rac11g1:/tmp"
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/tmp rac11g1 /tmp .3135GB 1GB passed
Result: Free disk space check passed for "rac11g1:/tmp" Check: User existence for "oragrid"
Node Name Status Comment
------------ ------------------------ ------------------------
rac11g2 passed exists()
rac11g1 passed exists() Checking for multiple users with UID value
Result: Check for multiple users with UID value passed
Result: User existence check passed for "oragrid" Check: Group existence for "oinstall"
Node Name Status Comment
------------ ------------------------ ------------------------
rac11g2 passed exists
rac11g1 passed exists
Result: Group existence check passed for "oinstall" Check: Group existence for "dba"
Node Name Status Comment
------------ ------------------------ ------------------------
rac11g2 passed exists
rac11g1 passed exists
Result: Group existence check passed for "dba" Check: Membership of user "oragrid" in group "oinstall" [as Primary]
Node Name User Exists Group Exists User in Group Primary Status
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 yes yes yes yes passed
rac11g1 yes yes yes yes passed
Result: Membership check for user "oragrid" in group "oinstall" [as Primary] passed Check: Membership of user "oragrid" in group "dba"
Node Name User Exists Group Exists User in Group Status
---------------- ------------ ------------ ------------ ----------------
rac11g2 yes yes yes passed
rac11g1 yes yes yes passed
Result: Membership check for user "oragrid" in group "dba" passed Check: Run level
Node Name run level Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 , passed
rac11g1 , passed
Result: Run level check passed Check: Hard limits for "maximum open file descriptors"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac11g2 hard passed
rac11g1 hard passed
Result: Hard limits check passed for "maximum open file descriptors" Check: Soft limits for "maximum open file descriptors"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac11g2 soft passed
rac11g1 soft passed
Result: Soft limits check passed for "maximum open file descriptors" Check: Hard limits for "maximum user processes"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac11g2 hard passed
rac11g1 hard passed
Result: Hard limits check passed for "maximum user processes" Check: Soft limits for "maximum user processes"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac11g2 soft passed
rac11g1 soft passed
Result: Soft limits check passed for "maximum user processes" Check: System architecture
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 x86_64 x86_64 passed
rac11g1 x86_64 x86_64 passed
Result: System architecture check passed Check: Kernel version
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 2.6.-.el6.x86_64 2.6. passed
rac11g1 2.6.-.el6.x86_64 2.6. passed
Result: Kernel version check passed Check: Kernel parameter for "semmsl"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "semmsl" Check: Kernel parameter for "semmns"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "semmns" Check: Kernel parameter for "semopm"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "semopm" Check: Kernel parameter for "semmni"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "semmni" Check: Kernel parameter for "shmmax"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "shmmax" Check: Kernel parameter for "shmmni"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "shmmni" Check: Kernel parameter for "shmall"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "shmall" Check: Kernel parameter for "file-max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "file-max" Check: Kernel parameter for "ip_local_port_range"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 passed
rac11g1 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 passed
Result: Kernel parameter check passed for "ip_local_port_range" Check: Kernel parameter for "rmem_default"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "rmem_default" Check: Kernel parameter for "rmem_max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "rmem_max" Check: Kernel parameter for "wmem_default"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "wmem_default" Check: Kernel parameter for "wmem_max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "wmem_max" Check: Kernel parameter for "aio-max-nr"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac11g2 passed
rac11g1 passed
Result: Kernel parameter check passed for "aio-max-nr" Check: Package existence for "make"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 make-3.81-.el6 make-3.80 passed
rac11g1 make-3.81-.el6 make-3.80 passed
Result: Package existence check passed for "make" Check: Package existence for "binutils"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 binutils-2.20.51.0.-5.36.el6 binutils-2.15.92.0. passed
rac11g1 binutils-2.20.51.0.-5.36.el6 binutils-2.15.92.0. passed
Result: Package existence check passed for "binutils" Check: Package existence for "gcc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 gcc(x86_64)-4.4.-.el6 gcc(x86_64)-3.4. passed
rac11g1 gcc(x86_64)-4.4.-.el6 gcc(x86_64)-3.4. passed
Result: Package existence check passed for "gcc(x86_64)" Check: Package existence for "libaio(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 libaio(x86_64)-0.3.-.el6 libaio(x86_64)-0.3. passed
rac11g1 libaio(x86_64)-0.3.-.el6 libaio(x86_64)-0.3. passed
Result: Package existence check passed for "libaio(x86_64)" Check: Package existence for "glibc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 glibc(x86_64)-2.12-1.107.el6 glibc(x86_64)-2.3.-2.41 passed
rac11g1 glibc(x86_64)-2.12-1.107.el6 glibc(x86_64)-2.3.-2.41 passed
Result: Package existence check passed for "glibc(x86_64)" Check: Package existence for "compat-libstdc++-33(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 compat-libstdc++-(x86_64)-3.2.-.el6 compat-libstdc++-(x86_64)-3.2. passed
rac11g1 compat-libstdc++-(x86_64)-3.2.-.el6 compat-libstdc++-(x86_64)-3.2. passed
Result: Package existence check passed for "compat-libstdc++-33(x86_64)" Check: Package existence for "elfutils-libelf(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 elfutils-libelf(x86_64)-0.152-.el6 elfutils-libelf(x86_64)-0.97 passed
rac11g1 elfutils-libelf(x86_64)-0.152-.el6 elfutils-libelf(x86_64)-0.97 passed
Result: Package existence check passed for "elfutils-libelf(x86_64)" Check: Package existence for "elfutils-libelf-devel"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 elfutils-libelf-devel-0.152-.el6 elfutils-libelf-devel-0.97 passed
rac11g1 elfutils-libelf-devel-0.152-.el6 elfutils-libelf-devel-0.97 passed
Result: Package existence check passed for "elfutils-libelf-devel" Check: Package existence for "glibc-common"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 glibc-common-2.12-1.107.el6 glibc-common-2.3. passed
rac11g1 glibc-common-2.12-1.107.el6 glibc-common-2.3. passed
Result: Package existence check passed for "glibc-common" Check: Package existence for "glibc-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 glibc-devel(x86_64)-2.12-1.107.el6 glibc-devel(x86_64)-2.3. passed
rac11g1 glibc-devel(x86_64)-2.12-1.107.el6 glibc-devel(x86_64)-2.3. passed
Result: Package existence check passed for "glibc-devel(x86_64)" Check: Package existence for "glibc-headers"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 glibc-headers-2.12-1.107.el6 glibc-headers-2.3. passed
rac11g1 glibc-headers-2.12-1.107.el6 glibc-headers-2.3. passed
Result: Package existence check passed for "glibc-headers" Check: Package existence for "gcc-c++(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 gcc-c++(x86_64)-4.4.-.el6 gcc-c++(x86_64)-3.4. passed
rac11g1 gcc-c++(x86_64)-4.4.-.el6 gcc-c++(x86_64)-3.4. passed
Result: Package existence check passed for "gcc-c++(x86_64)" Check: Package existence for "libaio-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 libaio-devel(x86_64)-0.3.-.el6 libaio-devel(x86_64)-0.3. passed
rac11g1 libaio-devel(x86_64)-0.3.-.el6 libaio-devel(x86_64)-0.3. passed
Result: Package existence check passed for "libaio-devel(x86_64)" Check: Package existence for "libgcc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 libgcc(x86_64)-4.4.-.el6 libgcc(x86_64)-3.4. passed
rac11g1 libgcc(x86_64)-4.4.-.el6 libgcc(x86_64)-3.4. passed
Result: Package existence check passed for "libgcc(x86_64)" Check: Package existence for "libstdc++(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 libstdc++(x86_64)-4.4.-.el6 libstdc++(x86_64)-3.4. passed
rac11g1 libstdc++(x86_64)-4.4.-.el6 libstdc++(x86_64)-3.4. passed
Result: Package existence check passed for "libstdc++(x86_64)" Check: Package existence for "libstdc++-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 libstdc++-devel(x86_64)-4.4.-.el6 libstdc++-devel(x86_64)-3.4. passed
rac11g1 libstdc++-devel(x86_64)-4.4.-.el6 libstdc++-devel(x86_64)-3.4. passed
Result: Package existence check passed for "libstdc++-devel(x86_64)" Check: Package existence for "sysstat"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 sysstat-9.0.-.el6 sysstat-5.0. passed
rac11g1 sysstat-9.0.-.el6 sysstat-5.0. passed
Result: Package existence check passed for "sysstat" Check: Package existence for "pdksh"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 pdksh-5.2.-.el5 pdksh-5.2. passed
rac11g1 pdksh-5.2.-.el5 pdksh-5.2. passed
Result: Package existence check passed for "pdksh" Check: Package existence for "expat(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac11g2 expat(x86_64)-2.0.-.el6_2 expat(x86_64)-1.95. passed
rac11g1 expat(x86_64)-2.0.-.el6_2 expat(x86_64)-1.95. passed
Result: Package existence check passed for "expat(x86_64)" Checking for multiple users with UID value
Result: Check for multiple users with UID value passed Check: Current group ID
Result: Current group ID check passed Starting check for consistency of primary group of root user
Node Name Status
------------------------------------ ------------------------
rac11g2 passed
rac11g1 passed Check for consistency of root user's primary group passed Starting Clock synchronization checks using Network Time Protocol(NTP)... NTP Configuration file check started...
Network Time Protocol(NTP) configuration file not found on any of the nodes. Oracle Cluster Time Synchronization Service(CTSS) can be used instead of NTP for time synchronization on the cluster nodes
No NTP Daemons or Services were found to be running Result: Clock synchronization check using Network Time Protocol(NTP) passed Checking Core file name pattern consistency...
Core file name pattern consistency check passed. Checking to make sure user "oragrid" is not in "root" group
Node Name Status Comment
------------ ------------------------ ------------------------
rac11g2 passed does not exist
rac11g1 passed does not exist
Result: User "oragrid" is not part of "root" group. Check passed Check default user file creation mask
Node Name Available Required Comment
------------ ------------------------ ------------------------ ----------
rac11g2 passed
rac11g1 passed
Result: Default user file creation mask check passed
Checking consistency of file "/etc/resolv.conf" across nodes Checking the file "/etc/resolv.conf" to make sure only one of domain and search entries is defined
File "/etc/resolv.conf" does not have both domain and search entries defined
Checking if domain entry in file "/etc/resolv.conf" is consistent across the nodes...
domain entry in file "/etc/resolv.conf" is consistent across nodes
Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...
search entry in file "/etc/resolv.conf" is consistent across nodes
Checking file "/etc/resolv.conf" to make sure that only one search entry is defined
All nodes have one search entry defined in file "/etc/resolv.conf"
Checking all nodes to make sure that search entry is "example.com" as found on node "rac11g2"
All nodes of the cluster have same value for 'search'
Checking DNS response time for an unreachable node
Node Name Status
------------------------------------ ------------------------
rac11g2 failed
rac11g1 failed
PRVF- : The DNS response time for an unreachable node exceeded "" ms on following nodes: rac11g2,rac11g1 File "/etc/resolv.conf" is not consistent across nodes Check: Time zone consistency
Result: Time zone consistency check passed Pre-check for cluster services setup was unsuccessful on all the nodes.
runcluvfy.sh运行结果的更多相关文章
- source sh运行脚本的差别
主要有两种方式运行shell脚本 1)source test.bsh 2)sh test.bsh 1)souce运行脚本文件会在父程序中运行.各项动作都会在原本的bash内生效.运行过程不另开进程.脚 ...
- 使用sh运行bash脚本的奇怪问题
在同一个文件夹下有两个脚本.a.sh和b.sh,脚本内容例如以下: a.sh: echo "test for a" source b.sh b.sh: echo "tes ...
- 在linux下通过sh运行java程序
1.导出jar包放在目录下,如/home 2.通过vi创建sh文件如:test.sh,内容如:java -jar test1.jar com.wzh.test.test & 3.运行命令:sh ...
- tomcat启动后 项目运行缓慢,要几十到几百秒不等 怎么样./startup.sh 运行加快
修改 linux系统中 /usr/local/jdk1.8.0_11/jre/lib/security/java.security 借力 好文章.我们新的Linux系统,部署了多个 Tomca,同时重 ...
- rac_进行grid自检时提示运行runfixup.sh脚本一例
原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
- lispbox 安装运行.sh的时候出现 lispbox.sh: 2: lispbox.sh: Bad substitution
安装lispbox时使用tar命令将压缩文件解压之后cd进入之后在运行.sh文件时出现了如下情况. $ sh lispbox.sh lispbox.: lispbox.sh: Bad substitu ...
- linux运行.sh命令
# chmod +x AAA.sh 授权 # ./AAA.sh 运行
- cocos2d-x for android配置 & 运行 Sample on Linux OS
1.从http://www.cocos2d-x.org/download下载稳定版 比如cocos2d-x-2.2 2.解压cocos2d-x-2.2.zip,比如本文将其解压到 /opt 目录下 3 ...
- Ubuntu下shell脚本运行异常:bash和dash的区别
Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\n ...
随机推荐
- PHP 单例模式代码片段
<?php error_reporting(E_ALL | E_STRICT); class single{ public $hash; static protected $ins = null ...
- 匈牙利命名法,骆驼命名法(camel),帕斯卡(Pascal)命名法(转)
一.匈牙利命名法 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) ...
- JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...
- QT5中文显示
- 20145235 《Java程序设计》第9周学习总结
第十六章 整合数据库 JDBC Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Ja ...
- WPF 最大化最小化窗口
public static void FullOrMin(this Window window) { //如果是全屏,则最小化 if (win ...
- BlueDroid介绍
目录 1. 基本结构 2. 代码区 自从Android 4.2开始,Android开始使用自己的蓝牙协议栈BlueDroid,而不是bluez BlueDroid可分为两层: - BTE: Bluet ...
- js中!!的作用
js中!!的作用是: !!一般用来将后面的表达式转换为布尔型的数据(boolean) ===表示类型什么的全部相等(自己写一个if测试一下就好了)!==表示要全部不想等包括类型(一样写一个if)||或 ...
- Visual Mingw
Visual-MinGW 是一个专门为MinGW所设计的IDE.如果,你曾经用过VC++ 6.0这个IDE,你的第一感觉就是,Visual-MinGW和VC++ 6.0非常相似.所以,对于曾经用惯VC ...
- 设计模式:简单工厂(Simple Factory)
定义:根据提供的数据或参数返回几种可能类中的一种. 示例:实现计算器功能,要求输入两个数和运算符号,得到结果. 结构图: HTML: <html xmlns="http://www.w ...