## 基于signal的测试方式
#define USE_FILTER
#ifdef USE_FILTER
VOID installFliter();
VOID do_filter(int num);
#endif
#ifdef USE_FILTER
//[4]-install signal
installFliter();
#endif
#ifdef USE_FILTER
VOID installFliter(){
signal(SIGTSTP, do_filter);
}
VOID test1(CSnmpReply msg){
cout << "++++++++++++++++++++++++++++++++++++++++++++process snmp replu++++++++++++++++" << endl;
msg.output();
IPC_MSG_S reply;
reply.uiCmdMark = msg.iCmdMark;
strcpy(reply.msgPara ,"<version>12</version>");
reply.uiGetResult = 0; // maybe snmp can use this code to express the error by snmp
CCUpgradeHelper::getInstance()->onReply(&reply);
}
VOID do_filter(int num){
cout << "********************************Send Snmp Request****************************************" << endl;
CSnmpMsg msg;
msg.devSite = "4-1";
msg.devType = 4;
msg.cbFunction = CSnmpReplyHandle::handle_getVersion;
msg.sOid = msg.sOid = OidManager::getOid(MSG_CMD_GET_VERSION ,msg.devType);
msg.iRespFlag = 1;
msg.iCmdMark = 12;
HandleSnmpMsgThread::getInstance()->addSnmpMsg(msg);
cout << "*****************************************************************************************" << endl;
}
#endif
本文详细阐述了基于signal的测试方式及其在信号处理中的应用,包括安装过滤器、处理信号中断以及通过SNMP协议进行消息处理的流程。
810

被折叠的 条评论
为什么被折叠?



