template<class EXC> void parent_throw_if() { if(-1 != m_write_end) { close(m_write_end); m_write_end = -1; } if(read(m_read_end, &m_errno, sizeof(m_errno))) { close(m_read_end); if(m_errno) throw EXC(boost::system::error_code(m_errno, boost::system::get_system_category())); } close(m_read_end); }
int main(void) { int num1 = 0; int num2 = 0; int temp = 0; printf("请输入两个整数:"); scanf("%d%d", &num1, &num2); EXC(num1, num2); printf("num1 = %d\nnum2 = %d\n", num1, num2); return 0; }
template<class EXC> void join() const { if(join()) throw EXC(); }
void initGLFunctions() { #define EXT_SUFFIX "" GL_20_FUN; /* Determine GL version */ const char *ver = (const char*) gl.GetString(GL_VERSION); /* Assume single digit */ int glMajor = *ver - '0'; if (glMajor < 2) throw EXC("At least OpenGL 2.0 is required"); BoostSet<std::string> ext; if (glMajor >= 3) parseExtensionsCore(gl.GetIntegerv, ext); else parseExtensionsCompat(gl.GetString, ext); #define HAVE_EXT(_ext) ext.contains("GL_" #_ext) if (!HAVE_EXT(ARB_framebuffer_object)) { if (!(HAVE_EXT(EXT_framebuffer_object) && HAVE_EXT(EXT_framebuffer_blit))) throw EXC("No FBO extensions available"); #undef EXT_SUFFIX #define EXT_SUFFIX "EXT" GL_FBO_FUN; } else { #undef EXT_SUFFIX #define EXT_SUFFIX "" GL_FBO_FUN; } if (!HAVE_EXT(ARB_vertex_array_object)) { if (!HAVE_EXT(APPLE_vertex_array_object)) throw EXC("No VAO extensions available"); #undef EXT_SUFFIX #define EXT_SUFFIX "APPLE" GL_VAO_FUN; } else { #undef EXT_SUFFIX #define EXT_SUFFIX "" GL_VAO_FUN; } if (HAVE_EXT(KHR_debug)) { #undef EXT_SUFFIX #define EXT_SUFFIX "" GL_DEBUG_KHR_FUN; } else if (HAVE_EXT(ARB_debug_output)) { #undef EXT_SUFFIX #define EXT_SUFFIX "ARB" GL_DEBUG_KHR_FUN; } }
/***************************************************************************** 函 数 名 : NW_InquireNat 功能描述 : 查询Nat的函数 输入参数 : 无 输出参数 : 无 返 回 值 : 无 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2011年11月24日 修改内容 : 新生成函数 *****************************************************************************/ void NW_InquireNat(void) { EXC("cat /proc/net/ip_conntrack"); }/* NW_InquireNat */
/***************************************************************************** 函 数 名 : NW_InquireNetstate 功能描述 : 查询Netstate的函数 输入参数 : 无 输出参数 : 无 返 回 值 : 无 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2011年11月24日 修改内容 : 新生成函数 *****************************************************************************/ void NW_InquireNetstate(void) { /* 只查询tcp,udp,icmp连接其他协议不查询 */ EXC("netstat -t -u -w -n"); }/* NW_InquireNetstate */
/***************************************************************************** 函 数 名 : NW_InquireRoute 功能描述 : 查询Route的函数 输入参数 : 无 输出参数 : 无 返 回 值 : 无 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2011年11月24日 修改内容 : 新生成函数 *****************************************************************************/ void NW_InquireRoute(void) { EXC("route"); }/* NW_InquireRoute */
/***************************************************************************** 函 数 名 : NW_InquireArp 功能描述 : 查询Arp的函数 输入参数 : 无 输出参数 : 无 返 回 值 : 无 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2011年11月24日 修改内容 : 新生成函数 *****************************************************************************/ void NW_InquireArp(void) { EXC("arp"); }/* NW_InquireArp */
/***************************************************************************** 函 数 名 : NW_InquireIfconfig 功能描述 : 查询Ifconfig的函数 输入参数 : 无 输出参数 : 无 返 回 值 : 无 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2011年11月24日 修改内容 : 新生成函数 *****************************************************************************/ void NW_InquireIfconfig(void) { EXC("ifconfig"); }/* NW_InquireIfconfig */